Find the answer to your question
Advanced Search
Question
Why should I reconcile a seller's inventory and what is the best way keep my listing application database current?
Answer
Summary
There are several reasons why a listing application's database could get out of sync with what is actually currently active on eBay:
- The seller could have manually ended the item via the site
- The item could have been removed if there is a listing violation
The best way to reconcile the inventory is to make a call to GetSellerList periodically with the EndTimeFilter ranging from the last time you made the call to the current time, with no DetailLevel. This will return the ItemID, StartTime and EndTime, based on which you can update your database.
Detailed Description
Here is a sample GetSellerList request with no DetailLevel or GranularityLevel:
<?xml version="1.0" encoding="utf-8"?>
<GetSellerListRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<Version>1123</Version>
<EndTimeFrom>2022-08-01T12:35:21.627</EndTimeFrom>
<EndTimeTo>2022-08-03T12:35:21.627</EndTimeTo>
<Pagination>
<EntriesPerPage>200</EntriesPerPage>
<PageNumber>1</PageNumber>
</Pagination>
<RequesterCredentials>
<eBayAuthToken>*****</eBayAuthToken>
</RequesterCredentials>
</GetSellerListRequest>
It returns a response similar to the following:
<?xml version="1.0" encoding="utf-8"?>
<GetSellerListResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2022-08-01T12:35:21.627</Timestamp>
<Ack>Success</Ack>
<Version>1123</Version>
<Build>E1173_CORE_APISELLING_19187371_R1</Build>
<PaginationResult>
<TotalNumberOfPages>1</TotalNumberOfPages>
<TotalNumberOfEntries>3</TotalNumberOfEntries>
</PaginationResult>
<HasMoreItems>false</HasMoreItems>
<ItemArray>
<Item>
<ItemID>150106416603</ItemID>
<ListingDetails>
<StartTime>2022-07-02T10:35:21.627</StartTime>
<EndTime>2022-08-02T12:35:21.627</EndTime>
</ListingDetails>
</Item>
<Item>
<ItemID>150106694354</ItemID>
<ListingDetails>
<StartTime>2022-07-01T01:37:19.627</StartTime>
<EndTime>2022-08-01T18:39:21.621</EndTime>
</ListingDetails>
</Item>
<Item>
<ItemID>150106695548</ItemID>
<ListingDetails>
<StartTime>2022-07-22T11:03:11.347</StartTime>
<EndTime>2022-08-01T19:35:11.634</EndTime>
</ListingDetails>
</Item>
</ItemArray>
<ItemsPerPage>3</ItemsPerPage>
<PageNumber>1</PageNumber>
<ReturnedItemCountActual>3</ReturnedItemCountActual>
<Seller>
<AboutMePage>true</AboutMePage>
....
</Seller>
</GetSellerListResponse>
You can compare the ItemIDs in your database and mark them as ended with the ListingDetails.EndTime, if it is not already marked as ended. You can run this daily, as a background scheduled process at an off peak time for your application and do the necessary reconciliation.
Note:
It is very strongly recommended to not use any DetailLevel for the fastest response time. However, if you need additional item information, then consider using a lower GranularityLevel first.
Version Info
The code example above was based on the versions specified below:
API Schema Version | 1123 |
Additional Resources
- Documentation: GetSellerList API Call
GranularityLevel for GetSellerList