Shopify just announced a behind‑the‑scenes change that re‑categorizes how in‑progress inventory holds are tracked. Previously, draft orders, inventory transfers and shipment holds were recorded under the *reserved* quantity state. Starting with the latest migration, those same holds will now appear under *committed*. The shift aligns these objects with how regular orders already report inventory, making the “committed” bucket the single source of truth for any stock that’s spoken for but not yet fulfilled.
What Changed
Who Is Affected
Actionable Steps for Developers
quantities(names: ["reserved"]). If you only needed the total unavailable stock, you can keep the query as‑is; the numbers will simply move to the committed bucket. If you used reserved as a flag for draft‑order or transfer holds, replace it with "committed".Impact on Merchant Reporting
Merchants who generate inventory adjustment reports (for example, via the “Inventory adjustments” CSV) will see a single migration row that subtracts from reserved and adds to committed. The total on_hand and available columns stay constant, so financial reconciliation is unaffected. However, historical analytics that segment by reserved vs. committed will show a spike on the migration date – plan your dashboards accordingly.
Sample GraphQL Query Adjustments
Below is a minimal GraphQL snippet that fetches both committed and reserved values. After the migration, you can drop the reserved field if you no longer need it.
graphql
query GetInventoryLevels($inventoryItemId: ID!) {
inventoryLevel(inventoryItemId: $inventoryItemId) {
quantities(names: ["committed", "reserved"]) {
name
quantity
}
}
}
If your app only cares about holds, simplify to:
graphql
query GetCommitted($inventoryItemId: ID!) {
inventoryLevel(inventoryItemId: $inventoryItemId) {
quantities(names: ["committed"]) {
quantity
}
}
}
Conclusion & Next Steps
Shopify’s move of draft‑order, transfer and shipment holds from reserved to committed streamlines inventory reporting and puts all “spoken‑for” stock under a single banner. For developers, the change is low‑risk—no schema changes, only a value shift. Updating any logic that explicitly checks the reserved bucket will ensure your apps stay accurate. Merchants can rest easy knowing the buyable stock remains unchanged, though they should be aware of the one‑time migration line in their reports.
Take action today: review your code for reserved‑quantity queries, test the migration in a sandbox shop, and update any internal documentation. Doing so now prevents surprise inventory mismatches when Shopify completes the migration.

