Fulfillment API migration - Fulfillment with Open status

Fulfillment API migration - Fulfillment with Open status

Shopify Partner
123 3 27

We are working to migrate to the new Fulfillment API after the deprecation of the REST fulfillment.
At the moment we cannot find a way to implement the following use case:
- assign a tracking number to an order/fulfillment, without marking the order as Fulfilled (which triggers the 'Shipping confirmation' notification).
By doing this, the order shows a "In progress" fulfillment status, which is important to tell the merchant that the fulfillment process started, but the order is not yet shipped.
The merchants need to mark the order as fulfilled after the order is shipped.

With the REST API this is done by creating a fulfillment with "OPEN" status.
However, in the new Fulfillment API (GraphQL) this does not seem to be an option.

The input for the fulfillmentCreateV2 mutation (FulfillmentV2Input) does not have a 'status'.
With fulfillmentCreateV2, the fulfillment is always created with status "SUCCESS" (which means that the order is Fulfilled).

Any idea how to do this with the new Fulfillment API?

Bogdan | WebShopAssist
User friendly apps with top-rated support
- SKUGen the SKU generator
- DPD Integration
Reply 1 (1)

Shopify Staff (Retired)
7 2 2

To be able to do something similar with new API end points, you would:

Call https://shopify.dev/docs/api/admin-graphql/2022-07/mutations/fulfillmentCreateV2 with notify_customer set to false and no tracking information.  This would create the fulfillment but not notify the customer.


You can then call 
https://shopify.dev/docs/api/admin-graphql/2022-07/mutations/fulfillmentTrackingInfoUpdateV2 to add tracking information, which will notify the customer.  You can also chose not to notify the customer at this point either.

You could then use Flow to automate sending emails via mass email third parties (e.g. dotdigitial) based on fulfillment events

Or possibly the simplest option:
You can edit the shipping confirmation template to say something else e.g. order is in progress rather than fulfilled, and it will automatically be sent when you call fulfillmentCreateV2 so long as you don't set notify__customer to false.





To learn more visit the Shopify Help Center or the Community Blog.