Skip to main content
Log inSign up
object

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.

Mutations

You can work with the FulfillmentService object with the fulfillmentServiceCreate, fulfillmentServiceUpdate, and fulfillmentServiceDelete mutations.

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 callbackUrl parameter in the fulfillmentServiceCreate mutation.

  • Shopify sends POST requests to the <callbackUrl>/fulfillment_order_notification endpoint to notify the fulfillment service about fulfillment requests and fulfillment cancellation requests.

    For more information, refer to Receive fulfillment requests and cancellations.

  • Shopify sends GET requests to the <callbackUrl>/fetch_tracking_numbers endpoint to retrieve tracking numbers for orders if trackingSupport is set to true.

    For more information, refer to Enable tracking support.

    Fulfillment services can also update tracking information using the fulfillmentTrackingInfoUpdate mutation, rather than waiting for Shopify to ask for tracking numbers.

  • Shopify sends GET requests to the <callbackUrl>/fetch_stock endpoint to retrieve on hand inventory levels for the fulfillment service location if inventoryManagement is set to true.

    For more information, refer to Sharing inventory levels with Shopify.

To make sure you have everything set up correctly, you can test the callbackUrl-prefixed endpoints in your development store.

Resources and webhooks

There are a variety of objects and webhooks that enable a fulfillment service to work. To exchange fulfillment information with Shopify, fulfillment services use the FulfillmentOrder, Fulfillment and Order objects and related mutations. To act on fulfillment process events that happen on the Shopify side, besides awaiting calls to callbackUrl-prefixed endpoints, fulfillment services can subscribe to the fulfillment order and order webhooks.

•

The callback URL that the fulfillment service has registered for requests. The following considerations apply:

  • Shopify queries the <callbackUrl>/fetch_tracking_numbers endpoint to retrieve tracking numbers for orders, if trackingSupport is set to true.
  • Shopify queries the <callbackUrl>/fetch_stock endpoint to retrieve inventory levels, if inventoryManagement is set to true.
  • Shopify uses the <callbackUrl>/fulfillment_order_notification endpoint to send fulfillment and cancellation requests.
•
String!non-null

Human-readable unique identifier for this fulfillment service.

•
ID!non-null

The ID of the fulfillment service.

•
Boolean!non-null

Whether the fulfillment service tracks product inventory and provides updates to Shopify.

•

Location associated with the fulfillment service.

•
Boolean!non-null

Whether the fulfillment service can stock inventory alongside other locations.

•
String!non-null

The name of the fulfillment service as seen by merchants.

•

Type associated with the fulfillment service.

Show
deprecated fields Deprecated
Anchor to fulfillmentOrdersOptInfulfillmentOrdersOptIn
•
Boolean!non-nullDeprecated

Whether the fulfillment service uses the fulfillment order based workflow for managing fulfillments.

As the migration is now finished, the fulfillmentOrdersOptIn property is deprecated and is always set to true on correctly functioning fulfillment services. Migration period ended. All correctly functioning fulfillment services have fulfillmentOrdersOptIn set to true.

•
Boolean!non-nullDeprecated

Whether the fulfillment service supports local deliveries. Non product based fulfillment services are no longer supported.

•
[ShippingMethod!]!non-nullDeprecated

Shipping methods associated with the fulfillment service provider. Applies only to Fulfill By Amazon fulfillment service. The Fulfillment by Amazon feature will no longer be supported from March 30, 2023. To continue using Amazon fulfillment, merchants need to set up a Multi-Channel Fulfillment solution recommended by Amazon: https://help.shopify.com/manual/shipping/fulfillment-services/amazon#activate-fulfillment-by-amazon


Was this section helpful?

•
query

Returns a FulfillmentService resource by ID.


Was this section helpful?

•
mutation

Creates a fulfillment service.

Fulfillment service location

When creating a fulfillment service, a new location will be automatically created on the shop and will be associated with this fulfillment service. This location will be named after the fulfillment service and inherit the shop's address.

If you are using API version 2023-10 or later, and you need to specify custom attributes for the fulfillment service location (for example, to change its address to a country different from the shop's country), use the LocationEdit mutation after creating the fulfillment service.

•
mutation

Updates a fulfillment service.

If you are using API version 2023-10 or later, and you need to update the location managed by the fulfillment service (for example, to change the address of a fulfillment service), use the LocationEdit mutation.


Was this section helpful?