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:
- Changing inventory via CSV for both Available and On-Hand
- Allowing API calls to control both Available and On-Hand
- Both 1 and 2
- 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).