The REST Admin API is a legacy API as of October 1, 2024. All apps and integrations should be built with the GraphQL Admin API. For details and migration steps, visit our migration guide.
fulfillments
access scope.
A Fulfillment Service is a third party warehouse that prepares and ships orders
on behalf of the store owner. Fulfillment services charge a fee to package and ship items
and update product inventory levels. Some well known fulfillment services with Shopify integrations
include: Amazon, Shipwire, and Rakuten. When an app registers a new FulfillmentService
on a store,
Shopify automatically creates a Location
that's associated to the fulfillment service.
To learn more about fulfillment services, refer to
Manage fulfillments as a fulfillment service app guide.
Using the FulfillmentService
resource, you can register, edit, and delete a new fulfillment service.
Hosted endpoints
Fulfillment service providers integrate with Shopify by providing Shopify with a set of hosted endpoints that
Shopify can query on certain conditions.
These endpoints must have a common prefix, and this prefix should be supplied in the callback_url
parameter
in the request that creates the fulfillment service.
- Shopify sends POST requests to the
callback_url/fulfillment_order_notification
endpoint to notify the fulfillment service about fulfillment requests and fulfillment cancellation requests.
As of the 2022-07 API version, it's mandatory for a fulfillment service to follow a fulfillment order based workflow by hosting thecallback_url/fulfillment_order_notification
endpoint, and acting on fulfillment requests and cancellations.
For more information, refer to Receive fulfillment requests and cancellations. - Shopify sends GET requests to the
callback_url/fetch_tracking_numbers
endpoint to retrieve tracking numbers for orders, iftracking_support
is set totrue
.
For more information, refer to Enable tracking support.
Fulfillment services can also update tracking information with a corresponding API, rather than waiting for Shopify to ask for tracking numbers. - Shopify sends GET requests to the
callback_url/fetch_stock
endpoint to retrieve inventory levels, ifinventory_management
is set totrue
.
For more information, refer to Sharing inventory levels with Shopify.
To make sure you have everything set up correctly, you can test the callback_url
-prefixed endpoints
in your development store.
Resources and webhooks
There are a variety of REST resources and webhooks that enable a fulfillment service to work.
To exchange fulfillment information with Shopify, fulfillment services use the
FulfillmentOrder,
FulfillmentRequest, and
CancellationRequest,
Fulfillment and
Order resources.
To act on fulfillment process events that happen on the Shopify side,
besides awaiting calls to callback_url
-prefixed endpoints,
fulfillment services can subscribe to the
fulfillment order and
order webhooks.
As of 2022-07 API version, the fulfillment order based workflow is the only way to manage fulfillments, and
fulfillment_orders_opt_in
must be set to true
.As the migration is now finished, the
fulfillment_orders_opt_in
property is deprecated and is always set to true
on correctly functioning fulfillment services.true
and false
.true
and false
.true
and false
.As the migration is now finished, the
fulfillment_orders_opt_in
property is deprecated and will be removed in the next API version. This API version defaults it to true
for a smooth migration experience. Do not set the fulfillment_orders_opt_in
argument, and you are ready for the next API version release.true
and false
.true
and false
.true
and false
.As the migration is now finished, the
fulfillment_orders_opt_in
property is deprecated.true
and false
.true
and false
.true
and false
.