At Report Toaster, we frequently get asked questions by merchants about the accuracy of certain values for
Shopify's Inventory States (Available, Committed, Unavailable,
On Hand, Incoming) in our app.
What are Inventory States
As a quick refresher - here is what each of those values mean:
Available = The number of units you have currently in stock in your inventory
- Committed = The number of units you have set aside as part of placed orders that have not yet fulfilled
- Unavailable = The number of units you have reserved for draft orders, set aside by apps, or are marked as unavailable for any miscellaneous reason (damaged, safety stock, control stock etc.)
- On Hand = Available + Committed + Unavailable as a total
- Incoming = The number of units you have marked as Incoming (usually inventory transfers or purchase orders).
The Problem
Unfortunately, there is a known issue here - Shopify only passes webhook updates to third-party apps when something happens that changes the Available quantity**.
**This includes both automatic changes to Available (like a customer placing an order, stock being received) and manual changes (like adjusting the available quantity in Shopify for an item +1/-1).
So what does all this mean?
Inventory States Don't Update (properly)
We've done numerous tests on this issue covering a wide range of scenarios - but the problem can essentially be summarized like this
- Shopify only passes webhooks when the Available quantity changes
- Therefore, if something changes one of the other states (e.g. Committed) without affecting the Available quantity, we don't get an update and the values are out of date.
This is easiest to illustrate with a couple of examples:
1.) First let's look at Committed:
- We have 10 units On Hand for Product A - 8 Available, 2 Committed
- A customer places an order for Product A. This means we now have 7 Available, 3 Committed
- Shopify sends the webhook update, because Available Quantity has changed (from 8 to 7).
- You then fulfill the order. This means you now have 7 Available, 2 Committed
- Shopify does NOT send a webhook update (as Available is still at 7)
- Report Toaster will say 7 Available, 3 Committed
- Shopify will say 7 Available, 2 Committed.
The problem, essentially is Step 5 - Shopify doesn't send a webhook when you fulfill the order because nothing has changed the Available quantity - only Committed).
2.) The same problem can happen with Incoming inventory as well.
- We have 10 units On Hand for Product A - 10 Available, 0 Incoming.
- We submit a purchase order/transfer for 5 more units of Product A. This means we have 10 Available, 5 Incoming.
- Shopify does NOT send a webhook update (as Available is still at 10)
- Report toaster will say 10 Available, 0 Incoming
- Shopify will say 10 Available, 5 Incoming.
- The inventory arrives. So now we have 15 Available
- THEN Shopify sends the webhook update because Available Quantity has changed (from 10 to 15).
Again we run into the same problem. Shopify only sends the update when Available Quantity changes, so we don't get a notification that any inventory is Incoming at Step 3.
So... what can you do ?
Numerous users have already raised their concerns with Shopify about this issue
(in fact, you can see numerous discussions on the forum about this very topic!)
But by far the best way to make your voice heard is to submit a ticket directly with Shopify support through their Partner portal.
The more merchants request that this issue be resolved, the more likely they are to update these webhooks!
All you have to do is login
here and submit a ticket. You can explain the issue like this:
"The webhooks are not updating when the quantities for Shopify's Inventory States change (e.g. Incoming Inventory quantity is changed due to a Purchase Order or Transfer order being initiated).
(for example, a Sale, or manually adjusting the stock levels +1/-1 .)
I would like to request that Shopify amend the webhooks so that an update is sent when a change happens to Inventory States other than Available" .
Here is a response that one of our merchants received recently (June 2024) directly from Shopify discussing this very issue:
Make Manual Adjustments
Until Shopify resolves this issue, the only thing you can really do is wait for something to happen that changes the Available Quantity (e.g. a Sale, or manually adding new stock).
Otherwise your only other option is to manually adjust Available quantities for an item yourself in Shopify (e.g. +1 unit, -1 unit). This causes a webhook update to be sent and we can display the updated values.
We appreciate though that this is not ideal - hence we suggest contacting Shopify to get them to address thie issue as soon as possible.
Have any questions about inventory states? Contact us at
support@cloudlab.com and we'll be glad to help you out.