Draft order and transfer/shipment inventory is moving from reserved to committed
We're consolidating how in-progress inventory holds are represented. Inventory that was previously tracked under the reserved quantity state for draft orders, transfers, and shipments is being moved to the committed quantity state.
This change aligns these holds with how order inventory is already represented, so that committed reflects all inventory that is spoken for but not yet fulfilled.
What's changing
- For draft orders, transfers, and shipments, quantities that previously appeared under
reservedwill now appear undercommitted. - This is a one-time data migration that applies only to active draft orders and open transfers/shipments that are still holding inventory when the change runs.
- Completed, cancelled, or already-released holds are not modified, because they no longer hold reserved inventory.
What's not changing
availableandon_handquantities are unaffected. Total inventory is unchanged, and quantities are only moving between two “unavailable” buckets.- Both
reservedandcommittedremain valid, queryable quantity names. No fields are removed or renamed. - Sellable inventory (
available) is not affected, so this does not change what buyers can purchase.
What you may need to do
- If your app reads
InventoryLevel.quantities(names: ["reserved"]), expectreservedvalues to decrease for affected shops, with a corresponding increase incommitted. - If you currently rely on
reservedto detect draft-order or transfer/shipment holds specifically, you should readcommittedinstead going forward. - No code changes are required to keep existing queries working; only the values shift between the two states.
Reporting note
Merchants using inventory adjustment reports (for example, reports that break out adjustments by inventory state) will see reserved values migrate to committed, plus a one-time correction entry when the migration runs. This correction only covers active draft orders and open transfers/shipments at the time of migration. on_hand and available totals are unchanged, and historical data before the migration remains as-is.
Related docs
- InventoryLevel — the
quantities(names: [...])field: https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryLevel - InventoryQuantity — the object returned per name: https://shopify.dev/docs/api/admin-graphql/latest/objects/InventoryQuantity
Fetched August 10, 2026

