Skip to main content
Published: August 13 2010, 10:07:00 AMUpdated: November 28 2020, 1:52:12 PM

Why am I missing some transactions even though I am making calls to GetSellerTransactions at a regular interval?

Detailed Description

Here are a few recommendations to ensure that you get all of your transactions:

  • Ensure that you are using overlapping time windows in your Mod Time filters
    The ModTimeFrom should be the last time you made the call minus 2 minutes
    The ModTimeTo should be the current time
    This will ensure that you do not miss any time periods

  • Use Pagination
    You can ask for upto 200 transactions per page.  If the number of transactions exceeds the number you have specified in EntriesPerPage, you have to make the calls multiple times.  Increment the PageNumber and make the call till the field HasMoreEntries in the response is false.

  • Make the call every 15 minutes especially if you have high volume sellers to ensure that you do not have to paginate too much.

  • Ensure that you do not make any updates to your transactions while you are retrieving your transactions. 

    Here is a very simple scenario to illustrate how transactions can be "missed" by your application:

    Starting Point

    Assumptions:
    1. Users asks for 3 transactions per page and all of these transactions are for one item so we'll skip the ItemID illustration
    2. User asks for transactions modified between 2010-07-01T23:40:00.000Z and 2010-07-01T23:50:00.000Z

    This is how the tranasctions are designed to be returned:

    Page Number

    TransactionID

    LastModifiedTime

    1

    1010

    2010-07-01T23:50:00.000Z

    1009

    2010-07-01T23:49:00.000Z

    1008

    2010-07-01T23:48:00.000Z

    2

    1007

    2010-07-01T23:47:00.000Z

    1006

    2010-07-01T23:46:00.000Z

    1005

    2010-07-01T23:45:00.000Z

    3

    1004

    2010-07-01T23:44:00.000Z

    1003

    2010-07-01T23:43:00.000Z

    1002

    2010-07-01T23:42:00.000Z

    How does a change affect transactions

    While the user is in the process of retrieving page2, they make an edit to TransactionID 1008 using CompleteSale to set the shipment tracking number . The last modified time changes to current time, let's say 2010-07-01T23:51:00.000Z.

    Since the last modified time for 1008 changed, it is now outside of the users time range, and hence falls off the list.  The new position of the records is as below:

    Page Number

    TransactionID

    LastModifiedTime

    1

    1010

    2010-07-01T23:50:00.000Z

    1009

    2010-07-01T23:49:00.000Z

    1008 1007

    2010-07-01T23:48:00.000Z 2010-07-01T23:47:00.000Z

    2

    1007 1006

    2010-07-01T23:47:00.000Z 2010-07-01T23:46:00.000Z

    1006 1005

    2010-07-01T23:46:00.000Z 2010-07-01T23:45:00.000Z

    1005 1004

    2010-07-01T23:45:00.000Z 2010-07-01T23:44:00.000Z

    3

    1004 1003

    2010-07-01T23:44:00.000Z 2010-07-01T23:43:00.000Z

    1003 1002

    2010-07-01T23:43:00.000Z 2010-07-01T23:42:00.000Z

    1002

    2010-07-01T23:42:00.000Z


    Since the user had already retrieved page 2, they'll move on to page 3.

    Notice that 1004 does not get retrieved from page2 or page3. If there is never any change to last modified time for 1004, it will not be retrieved by the application. 

The effect is the same when you use GetOrders with the ModTime as your filter.  If you modify orders while you are in the process of retrieving them, just as in the case of transactions for GetSellerTransactions.


Additional Information

Documentation: 
http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetSellerTransactions.html
http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetOrders.html

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