You can now view and update current on-hand inventory even at locations that don't fulfill that variant. A quiet but useful improvement that lets you keep count of "inventory that isn't for sale"—warehouses, showrooms, items awaiting inspection—right inside Shopify.
At locations that don't fulfill that variant, you couldn't view or update on-hand inventory. Inventory in warehouses, on display, or awaiting inspection had to be managed outside of Shopify.
On-hand can now be viewed and updated at any active location. However, "Available" quantity is not shown for locations not used for fulfillment (it appears as "—" or blank).
This change is about "which numbers are visible and which aren't." Get a handle on Shopify's 4 inventory states and it clicks instantly.
The article is split into New(what you can newly do) and Changed(clarification of behavior). Here we organize only what the article actually states.
= it has "just become visible"; the fulfillment logic itself stays the same.
Here we reproduce how it appears on the two screens described in the article. The warning text is kept as in the article.
| Variant | Unavailable | Committed | Available | On-hand |
|---|---|---|---|---|
| Sample / Display A Non-fulfillment location |
2 | 1 | — ⚠ Location doesn't fulfill this variant |
20 (editable) |
| Location | Unavailable | Committed | Available | On-hand |
|---|---|---|---|---|
| Tokyo Storage Warehouse Location that doesn't ship |
2 | 1 | (blank) ⚠ Location doesn't fulfill this variant |
20 (editable) |
| Item | Before | After |
|---|---|---|
| On-hand inventory at non-shipping locations | Can't be viewed or edited | Can be viewed and edited |
| Committed / unavailable quantities | — | Stay visible until they reach zero |
| Available quantity | — | Hidden(inventory page '—' / variant page blank) |
| Use for fulfilling new orders | Not used | Still not used |
| Fulfilling existing committed orders | Can be used | Can still be used |
| Applicable locations | — | Any active location |
Essentially, this opens up visibility and editing of On-hand inventory. Whether or not this inventory is used to fulfill new ordersremains unchanged from before. Processes that rely on allocation logic should not be affected.
Rather than having 0 entered, the available quantity isn't displayed at all('—' / blank). Processes that read Available via reports or scraping should check their null/empty handling. Don't confuse 0 with empty.
Existing committed / unavailable quantitiesremains visible until it hits zero. Given that the numbers linger until past commitments are cleared, keep an eye on "when it will reach zero" during stocktaking and discrepancy investigations.
It won't be assigned to new orders, butit can still be used to fulfill orders already committed at this location. This behavior is designed for cases where you need to work through commitments left over mid-migration or during location consolidation.
This article only explains how things appear in the admin (the inventory page / variant page).There is no mention of how this is handled in the Admin GraphQL (such as InventoryLevel's quantities) or via Webhooks, nor of the applicable plans or whether there is a staged rollout. If you have automated integrations, verify the On-hand / Available values for non-fulfilling locations against real data.