Inventory / Improvement

Inventory you don't sell or ship, too
Now visible and updatable "at any location"

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.

What's on this page
  1. What's changing, exactly (understand it in 30 seconds)
  2. Background: the 4 inventory states (On-hand / Committed / Unavailable / Available)
  3. What's "New" and what's "Changed"
  4. UI changes: the inventory page and the variant page
  5. Before vs. after comparison
  6. 5 points developers should know
  7. 3 use cases you can apply to your operations
  8. A one-line summary you can use in proposals

1What's changing, exactly

Until now, the on-hand inventory of "a variant not fulfilled at that location" wasneither viewable nor updatable.
From now on,you can view and update on-hand inventory at any active locationnow you can.
= You can now track "inventory that isn't for sale or shipping but is physically present there" as a number in Shopify.

Before: you couldn't touch inventory at locations that don't ship

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.

Now: on-hand inventory is visible at any active location

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

2Background: the 4 inventory states

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.

On-hand
The total physically present at that location.This is what becomes visible and updatable now
Committed
Tied to an order and reserved. Until it reaches zero,it stays displayed
Unavailable
Damaged, on hold, or otherwise not sellable. Until it reaches zero,it stays displayed
Available
Because this is a location not used for fulfillment,it isn't shown ("—" / blank)
Key point: The reason "Available isn't shown" is that the location isn't used to fulfill new orders. You can see the actual On-hand count, but it deliberately carries no meaning as a sellable quantity.

3What's "New" and what's "Changed"

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.

New

Even at locations for variants that aren't fulfilled,

  • On-hand inventory isshown and can be updated
  • Existing Committed / Unavailable quantitiesremain shown until they reach zero
  • Available isnot shown(because the location isn't used to fulfill new orders)
Changed

How it's used for fulfillment doesn't change

  • The on-hand inventory at these locationsstill isn't used to fulfill new orders
  • However,it can still be used to fulfill existing committed orders

= it has "just become visible"; the fulfillment logic itself stays the same.

4Changes in the on-screen display

Here we reproduce how it appears on the two screens described in the article. The warning text is kept as in the article.

① Inventory page: Available shows "—" + warning
VariantUnavailableCommittedAvailableOn-hand
Sample / Display A
Non-fulfillment location
2 1
⚠ Location doesn't fulfill this variant
20 (editable)
② Product variant page: Available shows "blank" + warning
LocationUnavailableCommittedAvailableOn-hand
Tokyo Storage Warehouse
Location that doesn't ship
2 1 (blank)
⚠ Location doesn't fulfill this variant
20 (editable)
Note that 'Available' looks different across the two screens: Inventory page = '—'/Variant page = blank. In both cases, the warning reads "Location doesn't fulfill this variant"(This location doesn't ship this variant).

5Before vs. after

ItemBeforeAfter
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

65 points engineers should keep in mind

1. This is about visibility, not a change to fulfillment logic

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.

2. Available is 'hidden,' not 'zero'

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.

3. Committed / Unavailable leave 'remnants' behind

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.

4. Still usable for fulfilling orders with existing commitments

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.

API ?

5. The article makes "no mention" of API / Webhook specifications

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.

7Three use cases you can put to work

USE CASE 1

Managing "just the count" for showroom, exhibition, and in-store display inventory

The challenge
Physical stock for showrooms or in-store displays is "not for sale / not fulfilled from there," but you still want to know how many units you have. Until now, Shopify couldn't hold this count, so it was managed in a separate spreadsheet.
The approach
Register the display location as an active location, and enter and update On-hand while keeping it excluded from fulfillment. The available quantity stays "—," so there's no risk of accidentally selling it.
The result
Display inventory becomes visible in one place within Shopify, eliminating the double entry of separate management. It can be folded into stocktaking.
Technical note
Because Available isn't shown, there's little risk of inventory accidentally being exposed to sales channels. The warning "Location doesn't fulfill this variant" acts as a safety valve.
USE CASE 2

Tracking inventory awaiting inspection, returns, and quarantine

The challenge
Returned, damaged, or inspection-pending stock piles up at a specific location but can't be assigned to fulfillment. The quantities couldn't be tracked in Shopify, so the data backing disposal and resale decisions was fragmented.
The approach
Run the quarantine location with fulfillment turned off, and update On-hand to record the physical count. Move stock that passes inspection back to a fulfilling location via an inventory transfer.
The result
The total volume by location, including "non-sellable inventory," becomes visible, so analysis of stagnant stock and disposal loss is completed entirely within Shopify.
Technical note
Since existing Committed / Unavailable values linger until they reach zero, investigating discrepancies once past commitments have cleared reduces noise.
Old location New location
USE CASE 3

Stocktaking "remaining inventory" during location consolidation and migration phases

The challenge
During the transition of closing or merging locations, physical stock and committed orders remain at the old location. You want to route new fulfillment to the new location, but you can't complete the final cleanup if you can't see the old location's counts.
The approach
Even after excluding the old location from fulfillment, you can still display and update On-hand, and it remains usable for fulfilling orders with existing commitments. Move stock to the new location gradually while watching the remaining inventory.
The result
Even during migration, you can see "what and how much remains at the old location," preventing missed shipments and inventory discrepancies caused by leftover commitments.
Technical note
Since new orders aren't routed to the old location, you can safely work through only the existing commitments while switching over your fulfillment flow. Use Committed reaching 0 as the marker for completion.

8A one-line summary you can use in proposals

"Even at locations that don't ship,you can now view and update On-hand inventory—an inventory visibility update.
Available-to-sell quantity isn't shown ("—"/blank + warning); shipping logic is unchanged; it can still be used to fulfill existing allocations.
You can now track showroom stock, items awaiting inspection, and leftover inventory during location migrations as numbers in Shopify."