A space to discuss GraphQL queries, mutations, troubleshooting, throttling, and best practices.
Currently our Shopify API uses the old Fulfillment API which is in the process of being removed. With the old API, our app's flow was:
1. Import orders from Shopify into our ERP system.
2. In our ERP system, users can assign each order line item to any location. Fulfillments must be from the line's location, so users can't get too creative and fulfill a single line item from multiple locations, but a single order can contain fulfillments from multiple locations.
3. Export these fulfillments to Shopify (along with tracking numbers).
We would like to keep step 2 the same and only change our implementation of step 3. In order for that to happen, the most straightforward solution would be for Fulfillment Orders to have endpoints for creating Fulfillment Orders, updating the location on Fulfillment Orders, and so on. However, it appears that the Fulfillment Order API is designed around the assumption that location selection should be an automated process in Shopify and any third party fulfillment integrations shouldn't have much say in which locations Shopify uses for fulfillment.
Can I get some guidance on which endpoints we can use to fulfill orders from multiple locations of our choosing like before?
I did some playing around in Postman, and it looks like something like the following can maybe work:
1. Load fulfillment orders. Ideally there's just one.
2. Move it to a location which the ERP system has fulfillments from.
3. Fulfill lines from that location.
4. Move the fulfillment order to another location. This will actually split the fulfillment order into the fulfilled part and the unfulfilled part.
5. Fulfill to the new fulfillment order.
6. Keep repeating until all of the fulfillments are sent over.
I think that can work for simpler setups. But it could become a disaster for more complex situations, like if the original fulfillment order was already split when we started the export we'd have to hunt down which lines are where each step of the way.
Hi @JonathonMinard, Thats great that you are seeing some progress in developing workflow for your Fulfillments in Postman. We do have a recommended procedure for REST users outlined here. The current workflow expectations is that order management apps are intended to check inventory levels before moving fulfilment order line items. If you feel you need more granular control over the process you could check out if using GraphQL is a better alternative. , since you can fulfill line by line with GraphQL, where as with REST its necessary to move the “entire fulfilment order” strategically after checking the inventory levels at each location. Our developers and product teams are actively working in this space so if you have any issues with the process or feedback we are always happy to hear it and will pass them on to our product teams. It really does help to improve our product offering and we're grateful for all of it.. Hopefully those suggestions will help for now.
Developer Support @ Shopify
- Was this reply helpful? Click Like to let us know!
- Was your question answered? Mark it as an Accepted Solution
- To learn more visit Shopify.dev or the Shopify Web Design and Development Blog