Anyone else frustrated with new "update" re: Inventory vs. On Hand Quantity?

Topic summary

Shopify merchants are frustrated by an inventory management update that replaced the “Available” column with “On Hand” in bulk editing views. The “On Hand” quantity represents total physical inventory (Committed + Available + Unavailable), making it difficult for merchants to see at-a-glance what’s actually available for sale.

Key Issues:

  • Bulk editing now only shows “On Hand,” requiring merchants to click into individual products to see “Available” inventory
  • Products with variants display “On Hand” first, cutting off variant names when scrolling to view “Available” quantities
  • Merchants without physical inventory (dropshippers, made-to-order businesses) find “On Hand” meaningless for their workflows
  • The change has caused overselling, incorrect stock displays, and significant time waste
  • Mobile app only shows “On Hand” with no way to view “Available”
  • Technical bugs include: page jumping to top after saving, negative inventory amounts appearing incorrectly, and save buttons disappearing

Shopify’s Response:

  • Initially defended the change, suggesting merchants use “continue selling when out of stock” settings
  • Later re-enabled editing of “Available” quantities and allowed negative inventory
  • Fixed CSV import/export workflows
  • Acknowledged bugs are being investigated but provided no timeline for fixes
  • Stated “On Hand” feature will not be removed despite widespread complaints

Merchant Reactions:
Many are considering switching platforms (WooCommerce, BigCommerce mentioned). Merchants report lost sales, angry customers, staff stress, and hours of additional work managing inventory. The update appears inadequately tested and poorly suited for diverse business models.

Summarized with AI on November 2. AI used: claude-sonnet-4-5-20250929.

@Shay The Committed/On Hand behavior also makes inventory syncing way overly complicated with a Fulfillment Service with “inventory_management: true”. Our WMS already tracks inventory with great detail and supports orders from many sources so to get an accurate inventory to show up in Shopify is almost impossible in many situations because it would require knowing about all pending orders in Shopify and/or all other pending orders in the WMS and taking that all into account.

Example:

Say there are 100 units of an item in stock. If one is sold on Shopify the sold inventory (Committed) is deducted from the On Hand as it should be. However, once the Fulfillment Order is submitted and accepted by the WMS, now the “available” reported by the WMS is also reduced so it is effectively deducted a second time by Shopify. If the WMS instead reported “available + allocated + reserved + picked + backordered” (basically everything until it is shipped) then this would work in simple cases and is what were are currently doing, but it has major problems:

  1. If there are orders from other sources, these will be added to the Shopify inventory (oversell). We would have to separate Shopify orders from non-Shopify orders so the entire inventory can no longer be summed up so simply, it has to be computed real-time aggregating data from thousands of orders.

  2. Some items are actually “virtual” inventory for which we compute an “available” amount in a very complex way based on availability of a combination of other SKUs - this completely throws a wrench in this system since it computes what should be “available” and now we have to know what amount Shopify is going to subtract from it.

  3. We support a very complex allocation system that can, among other things, “lock” orders to warehouses so an item can be in-stock in one warehouse but still backordered at the same time. The pre-computed “available” amount takes all of this into account but having to re-do all of this on the fly based on all of the orders in the system and Shopify’s orders is again a huge burden and also impossible to do without introducing more race conditions.

I suggest a flag for Fulfillment Service (FS) that determines if the inventory reported should be inclusive of pending orders (On Hand - the current behavior) or exclusive of pending orders (Available - the old behavior). For example, a flag like “fetch_inventory_mode” with “available” or “on_hand” as options to determine the behavior of the numbers received by the “fetch_stock” callback.

With Fulfillment Order (FO) mode there is a very definitive moment at which Shopify knows the FS is aware of the order - that is when the FO “request_status” changes to accepted (The fulfillment service accepted the merchant’s fulfillment request). So it makes sense to no longer assume the inventory needs to be subtracted automatically.

Thanks for your consideration. We have many merchants that are very frustrated by inventory syncing issues and it is clear Shopify is trying to make the inventory management more robust but this assumption that everyone wants to (or can feasibly) report On Hand instead of Available was a terrible mistake.

At a bare minimum please return the “committed” amount in the response for the “Retrieves a list of inventory levels” API. This would make it possible to at least have visibility into what number Shopify has on record for the Committed amount without having to fetch every single pending order.

4 Likes