Shopify Inventory States & Webhooks

Shopify Inventory States & Webhooks

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: 
  1. Available = The number of units you have currently in stock in your inventory
  2. Committed = The number of units you have set aside as part of placed orders that have not yet fulfilled
  3. 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.)
  4. On Hand = Available + Committed + Unavailable as a total
  5. 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). 

You can see this confirmed here in their API documentation: 



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
  1. We have 10 units On Hand for Product A - 8 Available, 2 Committed
  2. A customer places an order for Product A. This means we now have 7 Available, 3 Committed
  3. Shopify sends the webhook update, because Available Quantity has changed (from 8 to 7). 
  4. You then fulfill the order. This means you now have 7 Available, 2 Committed
  5. Shopify does NOT send a webhook update (as Available is still at 7)
    1. Report Toaster will say 7 Available, 3 Committed
    2. 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. 
  1. We have 10 units On Hand for Product A - 10 Available, 0 Incoming.
  2. We submit a purchase order/transfer for 5 more units of Product A. This means we have 10 Available, 5 Incoming. 
  3. Shopify does NOT send a webhook update (as Available is still at 10)
    1. Report toaster will say 10 Available, 0 Incoming
    2. Shopify will say 10 Available, 5 Incoming.
  4. The inventory arrives. So now we have 15 Available
  5. 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 ?


Contact Shopify!


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).
According to Shopify's documentation - https://shopify.dev/docs/apps/build/orders-fulfillment/inventory-management-apps#inventory-states, webhook updates are only sent when something changes the Available quantity

(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. 

    • Related Articles

    • Premium Reports - Inventory History

      Inventory History Inventory history reports are used for tracking changes to inventory at either a given point in time (e.g. Today) or over a select period (e.g. Last 30 Days). You can customize this time period via the date range (top right). ...
    • What Do I Get In Report Toaster (that I don't get in Shopify?)

      What do I get out of Report Toaster that I don't get in Shopify? I already get reports in Shopify - why do I need Report Toaster? Why should I upgrade my Report Toaster Account? In fact, questions like this are so commonplace that we have an entire ...
    • Premium Reports - Shopify Bundles

      Shopify Bundles Much like our reports for Simple Bundles (which you can read about in more detail here), we're able to Shopify Bundles customers two reports that make it easier to track their bundle sales. These reports are split into the following - ...
    • Premium Reports - Inventory Turnover

      Inventory Turnover These reports are used for measuring how much inventory has been sold and replaced over a given period of time. You can customize this time period via the date range (top right). Inventory History needs to be enabled by our Report ...
    • Premium Report - Inventory Value by Location

      Inventory Value by Location Inventory Value Reports are used by merchants to see how much the amounts and value of their current stock. For merchants who store inventory at multiple locations however, sometimes it's important to see your stock on a ...

     Suggestion Box

    Didn't find what you were looking for in our knowledge base? Click here to suggest an article, and we'll try to put something together for you.