We have been working with Shopify for around a year now.
So far we've been quite content, except for one big issue. The support for multiple fulfillment locations is quite frankly, a slap to the face. I'll explain our issues:
1) Shopify decides its own set of rules to allocate line items to locations (And Shopify creates those Fulfillment Orders). They have their own set of rules that are not configurable. Would be so great to have a rule-based system built into Shopify
2) Given that Shopify does not have a rule-based system, we had to resort to changing the fulfillment location of items within the "order paid" webhook. That's not too bad but we have 2 issues here:
a) LIne items cannot move fulfillment locations on their own, only by the FulfillmentOrder level. To work around it, we resorted to do the following; Given an order with 1 FulfillmentOrder in Location A that has 3 line items and we'd like to move item A to Location B, we have to first fulfill item B and C, then move the location to Location B, and then cancel the fulfillment. This is a crazy approach. It also created a "closed" fulfillment order forever attached to this order.
b) There are absolutely no webhooks that indicate when a fulfillment location has changed. Yes, changing a fulfillment location does trigger the order_update webhook, but does not trigger the fulfillment_update webhook, which is very strange. Why is that so?
It's important to note that our needs are mostly likey different than the average customer - We are in a business where sometimes we have to move fulfillment locations from Location A to B after the order has been paid for.
What can we do here? What did you guys do to tackle those issues?
If a Shopify Staff comes to this thread - Are there any plans to support moving fulfillment locations on the line item level? Or at least support a webhook that gets triggered when a location has changed.
Hi @Easyplant thanks for reaching out - definitely understand how frustrating this could be. My understanding is that currently it is expected that the fulfillment_update webhook won't trigger when a Fulfillment Order's location is moved/changed as you described above.
That said, I was able to reach out to our developers on your behalf to look a little deeper into this and while I can't confirm if there are future plans to deal specifically with moving fulfillment locations at the line item level, I was able to work with our team to find a potential workaround to support a webhook subscription for line item fulfillment locations and I can say there is work being done to make the Fulfillment API's functionality a bit more dynamic in the future as well.
Our developers let me know that in the current unstable version of our Admin API there is a webhook topic called "fulfillment_orders/move" which should trigger when the location for a line item within a fulfillment order is moved or updated. This could be used as a workaround at the moment, but I'm also going to go ahead and submit a report on my end just summarising the thread here so that our developers can track feedback and potentially build some features into their current work on the Fulfillment API that could help resolve some of the issues you brought up here - always happy to advocate on my end here.
Again, hope this helps and definitely keep an eye on our changelog for updates around the Fulfillment API - I do know they are working on making some adjustments and updates to it, I just can't guarantee exactly what the changes will be or a timeline on when they'd be rolled out.