Manage reverse fulfillment orders
A reverse fulfillment order represents the work that's required to process a return. It includes one or more items in a return that will be processed by the merchant or third-party fulfillment service.
This guide shows you how to manage reverse fulfillment orders with the GraphQL Admin API.
RequirementsAnchor link to section titled "Requirements"
- Your app can make authenticated requests to the GraphQL Admin API.
- Your app has the
write_returnsaccess scopes. For more information on requesting access scopes when your app is installed, refer to Getting started with OAuth.
- Your store has existing orders that have been fulfilled. You can return only items that have been fulfilled. If you need to make changes to an unfulfilled item, then you can edit an order.
- You're using API version 2023-01 or higher.
You've met Shopify's protected customer data requirements.
You're familiar with creating and managing returns.
Step 1: Query a reverse fulfillment orderAnchor link to section titled "Step 1: Query a reverse fulfillment order"
A reverse fulfillment order is a group of one or more items in a return that will be processed by a merchant or a third-party fulfillment service. Creating a return or approving a return creates a reverse fulfillment order. There can be more than one reverse fulfillment order for a return at a given location.
To retrieve the details associated with a reverse fulfillment order, provide the ID of the reverse fulfillment order in the
reverseFulfillmentOrder query. The response returns the IDs of the reverse fulfillment order line items, which you'll use as input in the next step.
Step 2: Dispose a reverse fulfillment order's line itemsAnchor link to section titled "Step 2: Dispose a reverse fulfillment order's line items"
When a merchant or third-party fulfillment service receives a returned item, they can inspect the product to determine whether it's in sellable condition. For example, the product might be stained or missing components.
For health and safety reasons, some products can only be restocked if they are in unopened or brand new condition. If the products are returned in an opened or used condition, then the products are disposed of during inspection.
If you want to dispose items with no deliveries involved, then you can use the
reverseFulfillmentOrderDispose mutation. The
reverseFulfillmentOrderDispose mutation enables you to dispose reverse fulfillment order line items for a reverse fulfillment order on the same shop. This mutation enhances the existing restocking capability for refunds.
You can only dispose reverse fulfillment orders once on every unit of each item. For example, if there's a hat with a quantity of four, then you can do four dispositions at most, not one disposition for all four items.
After a disposition is made, your app can't update the disposition. To learn about the available disposition types, refer to the
Your app can subscribe to the
reverse_fulfillment_orders/dispose webhook to get notified when a disposition has been made on a reverse fulfillment order. This includes dispositions made on reverse deliveries that are associated with the reverse fulfillment order.
The following example shows the JSON response for the
reverse_fulfillment_orders/dispose webhook. To learn how to set up and consume webhooks, refer to Webhooks configuration overview.
- Learn how to manage reverse deliveries with the GraphQL Admin API.