Pickup-in-Store workflow: On-hand inventory not updated after fulfillmentOrderMove

Hello,

I’m currently implementing a pickup-in-store (PUIS) API workflow and noticed some inconsistent behavior between order fulfillment and inventory movement.

Here’s what happens in our process:

  • We move the fulfillment order from our main warehouse to a store location using fulfillmentOrderMove.

  • This correctly updates the committed/reserved quantities at both locations.

  • However, the on-hand inventory is not automatically moved — the stock remains physically counted at the warehouse, not the store.

Ideally, I would like to link this process so that when the fulfillment order is moved, Shopify also transfers the on-hand quantity automatically (reflecting the real stock movement) — without having to manually adjust inventory or create a separate inventory transfer.

Additionally, when I use fulfillmentCreate, the order is immediately marked as fulfilled, which removes the option to mark it as “Ready for pickup.”

In our workflow, we want the order to remain open and only be fulfilled once the customer actually picks it up via the “Mark as picked up” button.

Could you please advise if there’s any existing (or internal) API or best-practice method to achieve this behavior — keeping the order open and updating both committed and on-hand inventory accurately for PUIS orders?

Thank you for your help!

Best regards,
Linus

1 Like

Anybody? Did somebody have a similar problem before?

Hey @Linus_Quellhorst, currently automatic on-hand inventory movement when a fulfillment order is moved isn’t posible. fulfillmentOrderMove only changes fulfillment responsibility; it never touches on-hand inventory.

This is by design. Moving a fulfillment order to a different location doesn’t mean the inventory physically moved, it just means that location is now responsible for fulfilling it. Committed inventory adjusts automatically, but on-hand inventory requires explicit management because it represents physical stock.

Alternatively, you could look in to setting up order routing rules so that the proper location is selected initially, preventing the need for the moves you’ve mentioned. If you’re on Plus, you can also look at the order routing functions to give you even more control here.

Hey @Linus_Quellhorst, did the above help clarify this at all?

Thank you for the detailed explanation and for sharing the order routing documentation. I appreciate the clarification that moving a fulfillment order only changes the fulfillment responsibility and doesn’t automatically move on-hand inventory.

That said, the suggested solution using order routing rules or functions doesn’t really address my main challenge. What I would have preferred is a direct API endpoint or mutation that allows me to fully handle a **Pickup in Store (PUIS)**flow — including both the reassignment of fulfillment responsibility and the corresponding on-hand inventory movement between locations.

Having to manually manage inventory transfers or simulate physical stock movements separately adds complexity and potential for error. A single API call designed for PUIS scenarios would make automation much cleaner and closer to how the process actually works in stores.

Appreciate the feedback @Linus_Quellhorst . It’s not currently possible, so I’ve passed this on as a feature request. Requesting a unified API operation that handles both fulfillment responsibility and on-hand inventory transfer for pickup-in-store workflows.

The developers changelog is the place to keep an eye on platform updates and new API capabilities as they’re released.

Thank you. I will have an eye out for that!

1 Like