Available and On-Hand Inventory in a multi-website or ERP environment

Available and On-Hand Inventory in a multi-website or ERP environment

6 0 9

As of today, 08-JUN-2023, the changes to the stock handling for Shopify have only served to hurt users across the board. Please allow for:

  1. Changing inventory via CSV for both Available and On-Hand
  2. Allowing API calls to control both Available and On-Hand
  3. Both 1 and 2
  4. Revert functionality to only show Available and get rid of On-Hand tracking (since Shopify is not and never will manage inventory like an ERP will do). This is the preferred action.

There is a key assumption in the Shopify use case that is not handled well and is completely wrong: that my one Shopify website knows all allocation. It does not, it cannot, and it never will! Further, there is no ERP environment that will ever handle the tracking the way that Shopify thinks about it today.


Here's the real example (with fake products that we don't sell):

I have two websites, and I sell paper clips on both.

On the retail website, I have 3 unfulfilled orders.

On the wholesale website, I have 7 unfulfilled order.
I have 50 units of paper clips sitting on my shelf.


What I should see:

On Hand for both sites: 50 units
Available for both sites: 40 units.


Instead, Shopify assumes that it knows ALL COMMITTED QTY (but only per each site), so we either show:
Method A)
Retail has 47 units [should be 40] available, 50 On Hand

Wholesale has 43 units [should be 40] available, 50 On Hand

or Method B)
Retail has 40 units Available, 43 units On Hand [should be 50]

Wholesale has 40 units Available, 47 units On Hand [should be 50].

Right now, our inventory control software is defaulting to use Method B (control via Available qty, due to API restrictions). This is great! Until we get down to the last few units, and then we're overselling on both platforms.

The problem is that no user interaction can override or change the values either. Switching to Method A still results in overselling!
Users also cannot use a CSV import of any logical pattern. Why? It is incredibly unreasonable to know and manage inventory at the aggregate level (50 units on hand, 40 available), but then also know PER CHANNEL how to federate out the allocation (i.e. knowing to give 3 units of allocation to Retail and 7 units of allocation to Wholesale) to then produce fictitious inventory qty (either On-Hand is wrong or Available is wrong, because neither method A nor B actually work).

Replies 4 (4)

44 1 84

We don't have a wholesale website but we would also prefer not to see the On-Hand number. 

I cannot agree more strongly that this is the preferred action.

4. Revert functionality to only show Available and get rid of On-Hand tracking (since Shopify is not and never will manage inventory like an ERP will do). This is the preferred action.


Honestly I don't know why (and I really would love to know why) we need to see the On-Hand quantity number. Has anyone seen a good (or semi-satisfactory) explanation?



Community Moderator
194 28 376

Hey @Stock_BH


Based on your feedback, our product team wanted to highlight a few features that may solve many of the issues you’re experiencing:


  • The Inventory CSV does allow you to change both Available and On hand inventory. (Learn more)
  • Apps can control both Available and On hand via our APIs. (Learn more)
  • You now have full control over which quantities (Available, On hand, etc) you see on your Inventory page, and in what order. (Learn more)


Thank you for your feedback! It truly helps us make a better inventory platform.


Please reach out to our Support Team for more specific help about your scenario, or if you have any other questions or concerns.

Jacqui | Community Moderator @ Shopify
 - Was my reply helpful? Click Like to let me know! 
 - Was your question answered? Mark it as an Accepted Solution 
- To learn more visit the Shopify Help Center or the Shopify Blog
Shopify Partner
327 25 101

@Jacqui It seems updating "On Hand" is only available in the GraphQL API.


Is there a timeline when this option will be available on the REST API.  The doc for the latest stable version only shows "available" is supported: https://shopify.dev/docs/api/admin-rest/2023-07/resources/inventorylevel

Co-Founder / Developer at Highview Apps
Our Shopify Apps: EZ Exporter | EZ Inventory | EZ Importer | EZ Notify | EZ Fulfill
1 0 0

@Jacqui Is there a workaround for the REST API? As @Jonathan-HA pointed out, we can only modify the Available value via the REST API.