function GetMarketItemNameId( item, callback )
	{
		const appid = item.description.appid;
		const marketHashName = encodeURIComponent( window.GetMarketHashName( item.description ) );
		const cacheKey = `${appid}_${marketHashName}`;

		GetCachedItemId( cacheKey )
			.then( ( value ) =>
			{
				if( value )
				{
					callback( value );
					return;
				}

				const xhr = new XMLHttpRequest();
				xhr.onreadystatechange = () =>
				{
					if( xhr.readyState !== 4 )
					{
						return;
					}

					if( xhr.status !== 200 )
					{
						if( xhr.status === 429 )
						{
							// If user is currently rate limited by Steam market, just disable the buttons
							hasQuickSellEnabled = false;
						}

						callback( null );
						return;
					}

					const data = xhr.response;

					const commodityID = data.match( /Market_LoadOrderSpread\(\s?(?<id>\d+)\s?\);/ );

					if( !commodityID )
					{
						callback( null );
						return;
					}

					SetCachedItemId( cacheKey, commodityID.groups.id )
						.then( () =>
						{
							callback( commodityID.groups.id );
						} )
						.catch( ( err ) =>
						{
							console.error( '[SteamDB] DB set fail', err );

							callback( commodityID.groups.id );
						} );
				};
				xhr.open( 'GET', `/market/listings/${appid}/${marketHashName}`, true );
				xhr.setRequestHeader( 'X-Requested-With', 'SteamDB' );
				xhr.send();
			} )
			.catch( ( err ) =>
			{
				console.error( '[SteamDB] DB get fail', err );

				callback( null );
			} );
	}
@param {any} item
@param {(commodityID: string|null) => void} callback