Skip to main content
Published: April 24 2007, 11:51:00 AMUpdated: November 28 2020, 3:38:11 PM

Why should I reconcile a seller's inventory and what is the best way keep my listing application database current?

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>509</Version>

  <EndTimeFrom>2007-04-23T00:00:00.000Z</EndTimeFrom>

  <EndTimeTo>2007-04-24T00:00:00.000Z</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>20070424T18:32:15.453Z</Timestamp>

  <Ack>Success</Ack>

  <Version>509</Version>

  <Build>e509_core_Bundled_4546291_R1</Build>

  <PaginationResult>

    <TotalNumberOfPages>1</TotalNumberOfPages>

    <TotalNumberOfEntries>3</TotalNumberOfEntries>

  </PaginationResult>

  <HasMoreItems>false</HasMoreItems>

  <ItemArray>

    <Item>

      <ItemID>150106416603</ItemID>

      <ListingDetails>

        <StartTime>2007-03-27T02:52:15.000Z</StartTime>

        <EndTime>2007-04-03T02:52:15.000Z</EndTime>

      </ListingDetails>

    </Item>

    <Item>

      <ItemID>150106694354</ItemID>

      <ListingDetails>

        <StartTime>2007-03-27T21:06:46.000Z</StartTime>

        <EndTime>2007-04-03T21:06:46.000Z</EndTime>

      </ListingDetails>

    </Item>

    <Item>

      <ItemID>150106695548</ItemID>

      <ListingDetails>

        <StartTime>2007-03-27T21:11:36.000Z</StartTime>

        <EndTime>2007-04-03T21:11:36.000Z</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 509


Additional Resources

How well did this answer your question?
Answers others found helpful