This article presents possible use cases and corresponding sample flows that you can support. It provides a useful starting point as you plan your implementation.
Some eCommerce functionality is accessible by using an order's ID and passing it to other eCommerce APIs.
You can retrieve all orders placed by a specific customer using their email address.
Call Search Orders with a filter on buyerInfo.email. For example:
The response contains an array of orders matching the filter. Use the metadata.cursors object to paginate through results if needed.
To get transaction details for a specific order, pass the order id to List Transactions For Single Order.
If you want to ensure that only your app can edit orders it creates, you can restrict edit access at creation time. This is useful, for example, to prevent other apps from modifying imported orders.
To create an order that only your app can edit:
Call Create Order and add the following to the request body's settings field:
The order is created with edit access restricted to your app. Any other app that attempts to edit the order receives an ORDER_CANNOT_BE_EDITED error.
You can retrieve fulfillment details for an order and update tracking information. An order that was manually marked as fulfilled has no fulfillments. To find when it was fulfilled, see Get the date an order was fulfilled.
Call List Fulfillments For Single Order with the order ID to get existing fulfillments.
To add a new fulfillment with tracking information, call Create Fulfillment. For example:
To update tracking information on an existing fulfillment, call Update Fulfillment with the order ID, fulfillment ID, and updated tracking details.
You can build a report of orders based on the date they were fulfilled. Where the date is stored depends on how the order was fulfilled:
ORDER_FULFILLED activity is added to the order. No fulfillment is created.createdDate.When a paid order has no shipping info, it's fulfilled automatically and the date isn't recorded. Don't use an order's updatedDate as the fulfillment date, because it changes with every update to the order.
To get the date each order was fulfilled:
Call Search Orders with a filter on fulfillmentStatus. For example:
Use metadata.cursors.next to page through all results.
For each order in the response, find the most recent activity in activities with an activityType of ORDER_FULFILLED. Its createdDate is the date and time the order was marked as fulfilled.
Call List Fulfillments For Multiple Orders with the IDs of the orders that have no ORDER_FULFILLED activity. You can specify up to 100 order IDs per call. For each order, use the createdDate of its most recent fulfillment.
Filter or group the orders by these dates in your code. Search Orders doesn't support filtering or sorting by activities.
Last updated: 5 October 2026