We run two separate stores (same brand, different geographies) selling the same products using the same SKUs. We use the Fulfillment API to sync orders to our in-house system. Our in-house WMS is the source of truth and syncs inventory levels back to both stores every hour.
Here’s the issue:
-
We start with 100 units of a product.
-
An order is placed on STORE1 for one unit.
-
Shopify moves 1 unit to “Committed” and deducts it from “Available.”
-
The order is synced to our WMS, which correctly updates the stock level from 100 to 99.
-
The WMS syncs the updated stock level (-1) back to both Shopify stores.
-
STORE2 now shows the correct stock level of 99, but STORE1 shows 98, as one unit is still “Committed”.
-
Only when the order is marked as fulfilled in Shopify does the “Committed” status clear, and both the WMS and Shopify are synced to the correct level—until another order comes in.
This is causing major issues, especially over the weekend when hundreds of orders remain unfulfilled until Monday. Our WMS shows available stock, but one or both stores are marked as sold out because the inventory is effectively double-counted: once in “Committed” and again as an actual deduction.
Is there a workaround for this? Our WMS is custom-built, and we coded the integration ourselves. However, there seems to be no process to address this, and it appears to be the default behavior in Shopify.
Are you using REST or GraphQL API?
REST API is limited and does not allow to fetch/set quantities by name.
GraphQL, on the other hand, allows you to set/adjust other quantities.
https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#graphql-queries-and-mutations
It seams there is a mix-up between “on_hand” and “available” quantities.
What you’re describing looks like you’re fetching “available”, but setting “on_hand”.
For “5 . The WMS syncs the updated stock level (-1) back to both Shopify stores.”, I’m assuming you’re reducing the current “Available” quantity in Shopify by 1 instead of overwriting?
I’m wondering whether it would make more sense to simply overwrite/set the “Available” quantity in Shopify based on the available quantity from your WMS?
For example, if you overwrite the “Available” quantity in Shopify to 99, both stores will then have “Available” of 99, but the “On Hand” for Store1 will be 100 because of 1 committed. After fulfillment, On Hand will then be 99, and Available is still 99.
Hi there 
What you’re seeing sounds like Shopify’s standard inventory behavior rather than an issue with your integration itself.
When an order is placed, Shopify immediately moves that quantity into Committed inventory and reduces the Available quantity. At the same time, your WMS is also reducing stock and pushing the updated quantity back to Shopify. As a result, the same sale is effectively being accounted for twice until the order is fulfilled and the committed quantity is released.
Since you’re running two stores with the same SKUs, this can become especially problematic when there are many unfulfilled orders. One store may show inventory correctly, while the other appears to have less available stock because Shopify is still reserving inventory through the Committed status.
You might want to look into an automation tool like Easify Inventory Sync. It focuses specifically on the syncing aspect to keep inventory accurate across multiple stores:
-
Real-time Syncing: Inventory updates are automatically synchronized between linked products and stores, helping prevent stock discrepancies and overselling.
-
Multi-Store Inventory Management: It works particularly well when the same SKUs are being sold across multiple Shopify stores and need to stay aligned.
-
Single Source of Truth: Instead of having inventory adjustments happening independently in multiple places, it helps ensure all connected stores are working from the same inventory data.
-
Lightweight and Shopify-Focused: Useful for merchants who need reliable inventory synchronization without implementing a full ERP solution.
In your current setup, I’d also review whether your WMS is syncing On Hand inventory or Available inventory back to Shopify, as that distinction is often the root cause of double-deduction scenarios like the one you’re describing.
Hope that helps! I’d be interested to hear how you’re currently updating inventory through the API—are you pushing absolute inventory levels or inventory adjustments/deltas from the WMS?
Hi @Barracuda,
What you’re seeing is Shopify’s default inventory behavior. When an order is placed, Shopify moves inventory to Committed, and if your WMS also pushes the updated inventory back before fulfillment, the sale is effectively counted twice until the order is fulfilled.
One option to consider is Sync Inventory - GoGo, which is designed for merchants managing the same SKUs across multiple Shopify stores. It helps keep inventory synchronized across stores.
The app is easy to set up, and there’s also a Welcome Plan so you can try it out without any pressure and see if it fits your workflow.