Order Management becomes quite complicated as there are so many APIs available. So, the best approach of getting it there is as follows-

1. Use GetOrders API with following filters

  • Set OrderStatus to Completed (if only paid orders required) or Active (if pending orders required).
  • ModTimeFrom set to the last imported time.
  • ModTimeTo set to the current Ebay Timestamp.
  • Use Pagination- If the shop is very high volume then set EntriesPerPage to maximum because there is a limit on the number of API calls every hour/day.

Keep making the request until HasMoreOrders is False.

2. Iterate through every order in <OrderArray>

  • Store PaymentMethod (OrderArray/Order/PaymentMethods), Shipping details (OrderArray/Order/ShippingServiceSelected) and most importantly SellingManagerSalesRecordNumber (OrderArray/Order/ShippingDetails/SellingManagerSalesRecordNumber). Remember there is a SellingManagerSalesRecordNumber inside every transaction, but for multiple line orders the combined record number comes in OrderArray/Order/ShippingDetails/SellingManagerSalesRecordNumber. So, its better to ignore individual record number.
  • Inside <TransactionArray>, iterate through every Transaction collecting the desired information.

3. Processing transaction

  • Use OrderArray/Order/TransactionArray/Transaction/Item/SKU  to uniquely identify the product.
  • Use OrderArray/Order/TransactionArray/Transaction/OrderLineItemID to uniquely identify each transaction.

Note- Previously, we used to use CheckoutStatus, ShippedTime and PaidTime to identify the status of order. But now we can simply put it in the request filter <OrderStatus>.