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>.