Customer does manual fulfillment - how do I mutate order to fulfilled/unfilled at order-level?

I have a small business customer who does all manual fulfillments. They sell online and those orders are created as unfulfilled…they do the work to ready the product…then they ship it themselves. This works well.

They also do fairs and shows using Shopify POS where they sell some ready-made products and some that require preparation. I created an app for them to provide a list of orders which contain at least one product that requires work before it is customer-ready. So imagine a booth where the customer orders, specifies what they want, then the customer comes back later in the show to retrieve the ready product. My app keeps a queue of those orders and (among other things) sends a text to the customer when the order is ready. I use custom tags to track orders in progress.

I would like to be able to set the “fulfillment status” of an order at the order level to be able to initially set it to “unfulfilled”, then set it to “fulfilled” when my customer clears the item from the queue in my app.

I have not found an API to do this. I see a lot of functionality for “fulfillment orders” using locations, warehousing, etc. but that is out of scope for my small business customer. They operate at the aggregate order level and have always updated the fulfillment order status using the orders list in admin API. I would like to - through and API or GraphQL - be able to make that same update as they do in the UI.

Dear Ambstrat,

i am not sure that i understand you question but from my side this is the answer:

When ever you want to fulfilled the order just send an POST request like this:

curl -X POST -H “Content-Type: application/json” -d’{“fulfillment”: { “notify_customer”: true,“location_id”: 611***603, “tracking_info”: {“number”: “00340****426530”, “company”: "" }, “line_items_by_fulfillment_order”:[{“fulfillment_order_id”:"752"}]}}’ https://*************f:s***_******************bc82@i*********.myshopify.com/admin/api/2023-10/fulfillments.json

This will make the status of an order fulfilled.

and same like this you can again make it unfulfilled.

Thanks