此更新日志涉及并发保护功能。
我们增强了inventorySetQuantities突变中的比较并交换(compare-and-swap)功能,使并发库存更新更加直观。您现在可以在InventoryQuantityInput中使用新的changeFromQuantity字段来显式选择是否执行数量比较检查。
compareQuantity和ignoreCompareQuantity的使用将被弃用。
此次2026-01更改不被视为破坏性变更,因为如果用户未为changeFromQuantity传入值,该突变将回退使用compareQuantity和ignoreCompareQuantity的值。
如何使用该字段
以前,要绕过比较检查,您需要将ignoreCompareQuantity设置为true。
现在,要绕过比较检查,您需要向changeFromQuantity字段显式传递null;要启用检查,请传递一个整数,该整数表示在更新到目标值之前的初始数量。
向changeFromQuantity传递任何值(包括null)都将覆盖传递给compareQuantity和ignoreCompareQuantity字段的任何值。在以下示例中,仅当当前可用数量为5时,操作才能成功将新的可用数量设置为12。如果在中间过程中其他进程修改了数量,您将收到错误提示,并可以使用更新后的值重试。
mutation { inventorySetQuantities( input: { quantities: [ { quantity: 12, inventoryItemId: "gid://shopify/InventoryItem/2", locationId: "gid://shopify/Location/1", changeFromQuantity: 5 } ], reason: "correction", name: "available" } ) { inventoryAdjustmentGroup { id } userErrors { code message } } }弃用旧版字段
compareQuantity和ignoreCompareQuantity字段将在版本2026-01中被弃用。我们计划从版本2026-04开始完全移除它们。
有关比较并交换以及何时应选择不进行数量比较检查的更多信息,请参阅我们的文档。我们鼓励用户在有正当理由的情况下才选择不进行数量比较检查。

