Is it possible to partial complete a fulfillment requested for a specific fulfillment service?

New Member
1 0 0


I am facing an issue and might need some advice for following situation:

We are a logistic service provider and one of our customers use Shopify and wants us to fulfill his orders. Therefore we have developed a fulfillment service (REST) according to the documentation

When using a fulfillment service, as we do then according to this, Shopify creates fulfillments automatically. If Shopify creates the fulfillment however all items that are ordered are grouped by the location into one fulfillment. After shipping the items we mark the fulfillment as completed.


Now here is the problem:

Our customer wants to use some backorder functionality for products that are not available yet. After Shopify created the fulfillment we are only able to complete the whole fulfillment. We cannot change the item count in the fulfillment if the backorder is requested. However Shopify does also not know how many shippings will be created. According to this documentation
>> Each fulfillment supports a single tracking number. If you need to use multiple tracking numbers, then you should create separate fulfillments. <<


Now an other solution might be we creating also the fulfillment. I thought about that but in the end this faces other problems. Using this approach we can create a fulfillment first after we know how many shipments we create. Therefore Shopify will be informed about processing the order very late in the logistic process. This creates some lack of transparency. Also we might not be able to use the fulfillment service any more this means we do not know which products and orders should be fulfilled by us directly.

I hope I described our Problem clear enough.




TL;DR; Is it possible to partial complete a fulfillment requested for a specific fulfillment service?

Replies 3 (3)
Shopify Staff (Retired)
Shopify Staff (Retired)
624 104 171

Hey @miziegler ,


It is not possible from what I can tell for a FulfillmentService to partially complete a Fulfillment. Once a Fulfillment request is created, it can be a status of either 'pending', 'open', 'success', 'completed', 'cancelled', 'failure', or 'error' - it cannot be partially completed. As well, as you mentioned, since the 2020-01 API Version a Fulfillment can only have a single tracking number. So in order to do what you are looking to do, you either need to 1) keep your fulfillment as "open" until all items are fulfilled and constantly update the tracking numbers every time you are ready to ship a new item, or 2) have multiple Fulfillments created for each set of items that will be shipped at different times. 


For option 2, what you are looking to accomplish might be made easier by a new Shopify concept called "FulfillmentOrders". A FulfillmentOrder 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.


So with this in mind, the merchant can set up their store's inventory so that the products that are on 'backorder'/'not available yet' are simply set to a different location. That way when orders come with these products, the order will split into multiple FulfillmentOrders based on the different locations (so products on "backorder"/'not available yet' will be in their own separate FulfillmentOrder). Then for each FulfillmentOrder, a separate Fulfillment can be made with its own status and tracking number, so that your Fulfillment Service can properly complete the fulfillment request for the products that can be fulfilled now, and then for the products that are on "backorder" you can keep that fulfillment as "pending" until the products are ready.


Hassain | Developer Support Specialist @ Shopify
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Click Accept as Solution 

New Member
2 0 1

Hi @hassain , 


I am troubleshooting a similar issue so hoping I understand your suggestion. Currently we're out of stock of several items with various ship by dates depending on the SKU. 


Originally we had one general "backorder" location where items that were out of stock would be assigned to. This way any in stock items would flow through to our warehouse normally and out of stock items would be held at the "backorder" warehouse. This created some issues though as items were coming back into stock at different times since we could not move them by SKU from the "backorder" warehouse to our regular warehouse. It was either move all the backorder items or don't move anything. 


I then created different "backorder" locations for each SKU/product depending on the estimated shipping date. This is solving for the previous issue we were experiencing however it's exceedingly tedious for our warehouse. Since the order was partially fulfilled the system is not picking up the same order number again without human intervention. This means I need to manually move each order from the "backorder X product" warehouse to our regular warehouse and our partners need to do the same thing in order for the system to see the same order number and know it needs to be picked up again by the system. 


Do you know of any solutions that can solve for that? Ideally there would be a way to create a logic that adds a suffix or something to the order number. 


Thank you! 


New Member
1 0 0

Hi There, 

I am just wondering if there is any update coming for partial order fulfilment from Admin api or is it already available by now. I know that we can do it manually from admin portal. But we are looking to do it from Admin API.