question

thetwistergroup avatar image
0 Likes"
thetwistergroup asked

GetMyeBaySelling call return wrong number of items and pages

 

This call was working fine for a while but a couple of days ago it started acting out: while we currently have over 37,000 listings GetMyeBaySelling now returns exactly 25,000 "totalnumberofentries" and consequently 125 "totalnumberofpages". GetSellerList call returns 37,406 items which is just a few listing short of total active listings in the eBay store. Because of this tiny "shortage" we were forced to use a different call in addition to this to avoid duplicate listing penalty: with shorted list of items our system may inadvertently add items already listed but not returned by GetSellerList API call.

 

So we opted to use two calls: GetMyeBaySelling and GetSellerList, to gather all our listings and then update the inventory, pricing, descriptions, titles, etc based on the correct information of our current offerings on eBay.

 

Not so fats. As I mentioned, not GetMyeBaySelling returns grossly incorrect information. Changing version number, altering request code didn't help. Now we are stuck unable to update our store.

 

eBay: any help here???

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

thetwistergroup avatar image
0 Likes"
thetwistergroup answered

 

Additional info.

 

There is warning with the code 21366 with class RequestError:

 

Partial data or invalid summary data is returned due to system limit. Please narrow your requested data and try again.

 

 

Here is the request:

 

<?xml version="1.0" encoding="utf-8"?>

<GetMyeBaySellingRequest xmlns="urn:ebay:apis:eBLBaseComponents">

<RequesterCredentials>

<eBayAuthToken>***</eBayAuthToken>

</RequesterCredentials>

<ActiveList>

<Include>1</Include>

        <IncludeNotes>0</IncludeNotes>

<Pagination>

<EntriesPerPage>200</EntriesPerPage>

<PageNumber>1</PageNumber>

</Pagination>

</ActiveList>

<OutputSelector>ActiveList.ItemArray.Item.ItemID</OutputSelector>

<OutputSelector>ActiveList.ItemArray.Item.SKU</OutputSelector>

<OutputSelector>ActiveList.ItemArray.Item.Quantity</OutputSelector>

<OutputSelector>ActiveList.ItemArray.Item.SellingStatus.CurrentPrice</OutputSelector>

<OutputSelector>ActiveList.ItemArray.Item.TimeLeft</OutputSelector>

<OutputSelector>ActiveList.ItemArray.Item.ListingDetails.StartTime</OutputSelector>

<OutputSelector>ActiveList.ItemArray.Item.WatchCount</OutputSelector>

<OutputSelector>ActiveList.PaginationResult.TotalNumberOfPages</OutputSelector>

<OutputSelector>ActiveList.PaginationResult.TotalNumberOfEntries</OutputSelector>

<DetailLevel>ReturnAll</DetailLevel>

<HideVariations>1</HideVariations>

<BidList>

<Include>0</Include>

</BidList>

<DeletedFromSoldList>

<Include>0</Include>

</DeletedFromSoldList>

<ScheduledList>

<Include>0</Include>

</ScheduledList>

<SellingSummary>

<Include>0</Include>

</SellingSummary>

<SoldList>

<Include>0</Include>

</SoldList>

<UnsoldList>

<Include>0</Include>

</UnsoldList>

</GetMyeBaySellingRequest>

 

I tried narrowing down to just one field, itemid, limiting to just one item per page: nothing works. That warning appears and number of items returned is wrong.

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

dnedwards avatar image
0 Likes"
dnedwards answered

I am also getting incorrect results from GetMyeBaySelling. It doesn't return certain out-of-stock fixed-price items, even while GetItem shows they are still active (OutOfStockControl=true). But it does return some of them.

 

How else can I get a list of ACTIVE out-of-stock items?

 

Does anyone from eBay monitor this forum?

 

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

shulmani_developer.support avatar image
0 Likes"
shulmani_developer.support answered

Hi,

 

Is it possible for you to send us the sellerID and the itemID ( which has the OutOfStockControl = true and is out of stock")?
We will check and see why it is not returned in the GetMyeBaySelling response.

 

Cheers!!!

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

brickfox avatar image
0 Likes"
brickfox answered

Hi,

 

we encounter the same problem here:

We need to synchronize the active listings between our application and ebay from time to time, to make sure there are no manually created listings in ebay (we maintain a multichannel middleware with various customers selling on ebay).

 

For merchants with more than 25000 active listings, it is impossible for us to get list of all active listings, which is essential for the synchronization process.

 

All attempts to get a list of active items for these customers end with an error code 21366 and a wrong page/listing number. Limiting the amount of data returned does not help in any way.

 

Do you have any suggestions on how to get a complete list of active listings for these customers.

 

Regards,

brickfox

 

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

fos1133 avatar image
0 Likes"
fos1133 answered

Hi,

I use Traditional API's GetSellerList to achieve this, but it doesn't work perfectly. I manage to get the best results by making the GetSellerList API call with EndTimeFrom set to today with hours, minutes, seconds zeroed (eg. 2022-04-13T00:00:00.000Z) and the EndTimeTo set to 60 days from now less one second (eg. 2022-06-11T23:59:59.000Z). This usually returns all the pages (currently 337 for us) and all the listings (if I set the time to 30 days in the future it does nota return all the items). I need to make a call to receive each page, one at a time - this takes around 25 minutes (when making calls to retrieve 20 pages simultaneously). However, with it taking so long, somehow the data in the pages must change (even though I use the same time from and time to for each page), as I receive duplicate items and often missing items so have to do a second (or third) run. There must be an easier and quicker way to retrieve all the active listings for a seller, but I have not yet found it.

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

michab2003 avatar image
0 Likes"
michab2003 answered

i am working with endto/endfrom

$endfrom = DateAndTime::nowUTC();

$endto = DateAndTime::nowUTCadd(10368000);

yes, it´s not the best, but as you said, what else is there? i don´t know anything that works better.

the only thing you can do is to run multiple pages in parallel and hope for the best to get as less changes (in the meantime) as possible. sometimes I have to read a seller's account 4times, till I get a result I am okay with ;( it´s crazy. i don´t know the details right now, but you can make the output super-fast without paging or much fewer pages when you only fetch the itemid (using the output-filter).

this is not perfect, of course, but at least you are able to make a simple and super fast comparison between ebay-itemids and those u have stored in your database.




10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

fos1133 avatar image
0 Likes"
fos1133 answered

So, you work with 120 days? I'll try UTC with 120 days to see if it improves. I do get 20 pages in parallel, but as I'm using a Raspberry Pi to do it, using many more in parallel doesn't really increase the speed, plus I was getting issues with the API call failing when running too many at the same time (never got to the bottom of it). 20 processes seems to work well.

· 4
10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

https://developer.ebay.com/devzone/xml/docs/reference/ebay/GetSellerList.html#Request.StartTimeFrom

> Specifies the earliest (oldest) date to use in a date range filter based on item start time. Each of the time ranges must be a value less than 120 days. In all calls, at least one date-range filter must be specified (i.e., you must specify either the end time range or start time range in every request).

0 Likes 0 ·

Yes, I have read this already. I'm sure I tried 120 days before (with either start or end time), but got better results with 60 days with end time. I'm actually looking into using the new Feed API to obtain a download of the active listings, but haven't written all the code yet. Seeing as I had something that was working reasonably well (after spending hours on it) I decided to leave it at that.

0 Likes 0 ·
while following the postings here over the last months, a clear picture has been created for me: either 70%(or more) of the people are too stupid to work with the new rest apis, or the rest apis are broken in so many ways, that´s impossible to get a result you rely on.... i don´t want to believe in the first option, and hey... it´s ebay we are talking about ;-)) so I will stay with the trading as long as possible till all these poor alpha-testers have given ebay enough input, till these apis finally do what they should do.....
0 Likes 0 ·
running in parallel of course has a big impact, but of course, it depends if your application has the needed limits to do this. running something on a raspberry does not sound like running this as a serious business, so of course, you have to deal with limitations....
0 Likes 0 ·
fos1133 avatar image
0 Likes"
fos1133 answered

You'd be surprised at how useful Raspberry Pis are at helping a business. I use one to get daily active listings data overnight which I load into a spread sheet on my computer each morning. It means I can leave the Raspberry Pi on all the time so the data is ready for my computer to use :-) I actually have 3 Raspberry Pi's that all work for me providing invaluable services that are much more complicated (and power hungry) to replicate using a PC. However, my computer can retrieve the active listings in around a quarter of the time, but then it slows down my internet when I'm trying to do other things so I leave it to the Pi.

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

fos1133 avatar image
0 Likes"
fos1133 answered

Good morning,

I have tried using the new REST Feed API createInventoryTask "LMS_ACTIVE_INVENTORY_REPORT" to obtain active listings data (https://www.developer.ebay.com/api-docs/sell/feed/resources/inventory_task/methods/createInventoryTask).


However, it is pretty useless if you need active listings data quickly. I created the task on "2022-04-14T08:36:56.000Z" and it is currently "2022-04-14T09:10:10.000Z" (over 30 minutes later) and the status is still "QUEUED".

Back to the old GetSellerList.

· 6
10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Still QUEUED at 2022-04-14T10:24:00.000Z! Come on eBay, you need to provide decent API services for sellers with 50,000+ listings so we can maintain them!

0 Likes 0 ·

To humour myself, I waited for the task to complete (eventually after 2.5 hours!) and tried to download the file. I followed the instructions on the same page to download the file but I get the error "HTTP 406 Not Acceptable". I even tried the URL "https://api.ebay.com/sell/feed/v1/inventory_task/task-1********9/download_result_file" as suggested by the tasks list, but get the error "HTTP 404 Not Found". I've now wasted too much of my time on this.

0 Likes 0 ·
It does take a little longer occasionally but I have not hit anything above 2-4 minutes for this. I am able to download LMS inventory file of all listings and process much much faster than the traditional Trading APIs thought and this is a life saver. I am now spending under 4 minutes to process all listings in comparison to 20+ minutes
0 Likes 0 ·

sing-harv, you say you are using the LMS inventory file of all listings to process all listings. Are you receiving any more detailed information for each listing than the following?

<SKUDetails>

<SKU>MY_SKU</SKU>

<Price currencyID="GBP">9.99</Price>

<Quantity>17</Quantity>

<ItemID>123456789012</ItemID>

</SKUDetails>

0 Likes 0 ·
No this is the only info I am receiving and this is enough to manage inventory for any listing. If and when you need to edit the content of the listing themselves then getItem etc calls would be better suitable. In my application I am not in need of storing any further information for all listings, so it is working very well for me.
0 Likes 0 ·
I used to also run GetSellerList to identify Site ID for each listing which in reality was not necessary. Now I just check if Currency is GBP, I consider this to be UK Site. Of course it will not be enough to identify every EU country but luckily have not hit this requirement for my application yet.
0 Likes 0 ·
fos1133 avatar image
0 Likes"
fos1133 answered

Eventually, I managed to get an active listings download. It is pretty useless as it only contains the following data for each item:

<SKUDetails>

<SKU>EXAMPLESKU</SKU>

<Price currencyID="GBP">99.99</Price>

<Quantity>17</Quantity>

<ItemID>123456789012</ItemID>

</SKUDetails>


In theory, the template should be able to be changed to one with more data, but:

"The inventory file template used to return specific types of inventory tasks. Presently not applicable for LMS_ACTIVE_INVENTORY_REPORT."

(Ref.: https://www.developer.ebay.com/api-docs/sell/feed/resources/inventory_task/methods/createInventoryTask)

Anyway, enough talking to myself now. Farewell.

10 |600

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.