Fulfillment Orders and Fulfillments Changes
With the release of the Shopify API version 2022-07 Shopify announced that the following endpoints have been removed from the Fulfillment resource in the REST Admin API:
/orders/{order_id}/fulfillments.json
/orders/{order_id}/fulfillments/{fulfillment_id}.json
/orders/{order_id}/fulfillments/{fulfillment_id}/complete.json
/orders/{order_id}/fulfillments/{fulfillment_id}/open.json
/orders/{order_id}/fulfillments/{fulfillment_id}/cancel.json
and that we should now use the the FulfillmentOrder resource instead. By API version 2023-04, all apps should be using the FulfillmentOrder object to manage fulfillments.
fmEcommerce Link (Shopify Edition) v2.1.5 now supports the FulfillmentOrder API allowing you to download Fulfillment Orders for a Shopify order and create a Fulfillment for one or more Fulfillment Orders and upload this to Shopify. The following image outlines the relationship between an Order, a Fulfillment Order and a Fulfillment:
Fulfillment orders are created automatically when an order is created. The FulfillmentOrder resource represents either an item or a group of items in an order that are to be fulfilled from the same location. There can be more than one fulfillment order for an order at a given location. Fulfillment orders are fulfilled by creating fulfillments, which represent the work that has been completed as part of a fulfillment order. You can use the Fulfillment resource to manage fulfillments for fulfillment orders.
You can get more information about using fulfillment order-based workflows here.
Update Permissions
Before you start working with the FulfillmentOrder API make sure you update your app permissions to include the following additional Admin API access scopes:
write_assigned_fulfillment_orders, read_assigned_fulfillment_orders, write_fulfillments, read_fulfillments, write_merchant_managed_fulfillment_orders, read_merchant_managed_fulfillment_orders, write_third_party_fulfillment_orders, read_third_party_fulfillment_orders
Downloading Fulfillment Orders for a Shopify Order
To download all Fulfillment Orders for a Shopify Order click on the Fulfillments tab on the Order Details layout and click the Download Fulfillment Orders button:
Any Fulfillment Orders that have not been previously downloaded will appear here:
To view the details for a Fulfillment Order click the green navigation button to the left of a Fulfillment Order to go to the Fulfillment Order Details layout:
This shows all the details for the selected Fulfillment Order, including the Location, Destination Address and Items. From this screen you can perform the following actions:
1. Create a Fulfillment for the Fulfillment Order you are viewing
2. Update the Fulfillment Order from Shopify by downloading it to get the latest version
3. Move the Fulfillment Order to a new Location by changing the Location ID. N.B. moving a fulfillment order will fail in the following events:
- The fulfillment order is closed.
- The new location doesn't have the necessary inventory available.
- The API client doesn't have the correct permissions.
Creating a New Fulfillment for a Fulfillment Order
To create a new Fulfillment for the Fulfillment Order you are viewing click the Create Fulfillment for this Fulfillment Order button which will create a new Fulfillment record and link it to the Fulfillment Order you were viewing:
If you're creating a fulfillment for a supported carrier you can send the Tracking Company and Tracking Number fields and Shopify will generate the Tracking URL for you. If you're creating a fulfillment for an unsupported carrier (not in the Tracking Company list), then send the Tracking Company, Tracking Number, and Tracking URL fields.You can also tick the Notify Customer checkbox which controls whether the customer will be notified of this update and future updates for the fulfillment.
N.B. you will not see any line items for the fulfillment at this stage. This is normal - all of the fulfillment order line items of the associated fulfillment order are fulfilled when you upload this to Shopify and will be reflected after it has been uploaded. To create the fulfillment in Shopify click the Create Fulfillment in Shopify button which will upload the fulfillment for the related fulfillment order (you can see the related fulfillment order on the fulfillment orders tab). If the upload was successful you will now have a Shopify ID for the fulfillment and the line items that were included will now be visible:
You can also perform the following actions using the buttons at the top of the screen:
1. Update the Fulfillment from Shopify by downloading it to get the latest version
2. Cancel the Fulfillment in Shopify
3. If you need to make changes to the Tracking Details (e.g. if the Tracking Number has changed) you can upload the new Fulfillment Tracking details to Shopify
You can also click on the Events tab to download any Fulfillment events. These represent tracking events that belong to a fulfillment of one or more items in an order. Fulfillment events are displayed on the order status page to update customers on the status of their shipment.
You can get more information on the Fulfillment Orders API migration at the following Shopify pages:
Your guide to the Fulfillment Orders API migration
Shopify Fulfillment Orders API: A Better Fulfillment Experience
The following video demonstrates working with Fulfillment Orders and Fulfillments in the fmEcommerce Link (Shopify Edition) file ( direct YouTube link):