本文要点
- Shopify 会把活动草稿订单、开放调拨和发货占用从 reserved 一次性迁到 committed,使 committed 表示所有已占用但未履约库存。
- available、on_hand 和总库存不变,买家可购买数量不因此改变;变化发生在两个不可用状态之间。
- reserved 和 committed 字段都保留且可查询,没有字段删除或重命名,但依赖 reserved 判断特定占用的逻辑需要调整。
- 迁移只处理运行时仍持有库存的活动记录;已完成、取消或释放的占用不会被改写,历史数据保持原样。
- 上线前后要同时读取两种状态,按地点与 SKU 对账,并为一次性 correction 记录和告警跳变设置迁移窗口。
先说结论:这是口径迁移,不是可售库存减少
如果你的应用读取 InventoryLevel 的 reserved 或 committed、按状态做库存报表,或据此触发补货告警,就需要处理这次变化。核心是占用从一个不可用状态桶移动到另一个状态桶。
available、on_hand 和总库存不变,因此不能看到 reserved 降低或 committed 增加就判断库存丢失、释放或新增。只关注可售库存且不拆分占用来源的系统通常无需改业务规则。
哪些记录会变化,哪些不会
活动草稿订单、开放调拨和发货在迁移时仍持有的库存会从 reserved 移到 committed。订单库存原本已在 committed,因此新口径让所有已占用但未履约的库存集中表示。
已完成、已取消或已经释放的占用不会修改,因为它们不再持有库存。迁移是一次性的,历史时间序列不会全部重算;报表可能看到迁移时点的状态跳变。
API 和字段并没有被删除
InventoryLevel.quantities(names: [...]) 仍可查询 reserved 与 committed,字段名没有删除或改名。现有查询不会仅因 schema 变化而报错,但返回值的业务含义已经改变。
如果系统用 reserved 专门识别草稿订单或调拨占用,迁移后应读取 committed,并结合业务对象或其他证据区分来源。不要假设 committed 只代表普通订单。
先盘点四类依赖
检索代码、SQL、仪表盘和告警中对 reserved、committed、available 与 on_hand 的使用。标记哪些只是展示,哪些参与可售计算、补货、风控或财务对账。
特别检查把 reserved 与 committed 相加后再次从 available 扣除的逻辑。官方说明 available 已不受影响,重复扣减会制造虚假的缺货;任何自定义公式都应先用完整状态守恒关系验证。
迁移前后的对账步骤
迁移前按商店、地点和 SKU 保存 reserved、committed、available、on_hand 及时间戳;迁移后以同一维度重取。预期是受影响记录的 reserved 下降、committed 对应上升,而 available、on_hand 与总量保持。
同时抽查活动草稿订单、开放调拨和发货,确认占用仍存在。报表中的一次性 correction 应单独标记,不要把它计为真实补货、销售或损耗。
灰度、告警与停手条件
先让旧、新口径并行输出,不立即删除 reserved。迁移窗口内对状态桶跳变降噪,但继续监控 available、on_hand 和总量;这些稳定量异常时不能用官方迁移解释。
若出现 available 改变、总量不守恒、同一占用重复计入或大量未知对象,立即停止发布与自动调整,保存 InventoryLevel 响应、对象 ID、地点、SKU 和时间,向 Shopify 支持核验。
接口错误与网络错误分开排查
GraphQL 字段或权限错误先核对 API 版本、scope、query 与响应 errors;只有 DNS、TLS、连接超时或代理认证证据明确时,才转到<a href="/resources/proxy-connection-troubleshooting-checklist">代理连接失败排查清单</a>。
团队需要稳定访问 Shopify 文档和管理后台时,可以 <a href="/" target="_blank" rel="noopener noreferrer">访问 PuppyIP 官网</a>了解固定网络出口。网络路径不能改变库存状态、迁移批次或商户权限。
资料来源
常见问题
这次迁移会减少 available 库存吗?
不会。Shopify 明确说明 available 与 on_hand 不受影响,数量只在 reserved 和 committed 两个不可用状态间移动。
reserved 字段会被删除吗?
不会。reserved 与 committed 都保留且可查询;变化的是受影响占用的归类。
哪些记录会被迁移?
迁移时仍持有库存的活动草稿订单、开放调拨和发货会受影响;已完成、取消或释放的记录不会修改。
历史报表会全部重算吗?
不会。官方说明这是一次性迁移,历史数据保持原样,库存调整报表会出现一次 correction 记录。
现有查询需要立刻改吗?
查询语法通常仍能工作,但如果业务逻辑用 reserved 识别这些占用,就需要改为读取 committed 并重新验证口径。
迁移期间哪些异常应该停手?
available 或 on_hand 改变、总量不守恒、同一占用重复计入或无法对应业务对象时,应停止自动调整并保留证据。