库存转移 Webhook:新增来源和目的地字段
以下 Webhook 主题的负载现在包含作为 Location Global ID 的转移来源和目的地位置:
- inventory_transfers/add_items
- inventory_transfers/update_item_quantities
- inventory_transfers/remove_items
- inventory_transfers/ready_to_ship
- inventory_transfers/cancel
- inventory_transfers/complete
每个负载现在包含:
- origin.id例如,gid://shopify/Location/123 gid://shopify/Location/123
- **destination.id**:例如,gid://shopify/Location/456 gid://shopify/Location/456
您可以使用这些 ID 来识别库存的移动位置,而无需进行额外的 API 调用来获取转移信息。
新字段仅适用于包含此更改的 webhook API 版本的订阅。新功能现已在 unstable API 版本中可用,并将在即将发布的公共 API 版本2026-07中提供。有关详细信息,请参阅库存转移 webhook 参考文档。
如果您的订阅处于较早版本,或者转移的来源或目的地不是仓库(例如供应商履行转移),则这些键将完全省略在负载中,而不是返回为 null。
澄清了关于库存转移设置项目的文档 inventoryTransferSetItems
我们已更新inventoryTransferSetItems的描述,以更准确地描述其实际行为。行为本身并未改变。
- inventoryTransferSetItems设置您传递的每个行项目的数量,如果该数量尚未存在于转移中则添加,如果已存在则进行更新。未传递的行项目保持不变。每次调用中,每个inventoryItemId最多只能出现一次。
- 在READY_TO_SHIP或IN_PROGRESS转移中,您传递的数量仅替换processableQuantity;已发货或已拣货的数量保持不变,最终总数为保留部分与提供数量之和。
- quantity: 0 仅在 DRAFT 转移中有效,此时会在转移中保留一个数量为 0 的行项目。要移除行项目,请使用inventoryTransferRemoveItems。在READY_TO_SHIP或IN_PROGRESS转移中,传入 0 将返回INVALID_QUANTITY错误。
澄清了关于库存转移移除项目的文档 inventoryTransferRemoveItems
我们还更新了inventoryTransferRemoveItems的描述,以更准确地描述其行为:
- 该变更可在状态为DRAFT或READY_TO_SHIP的转移上调用。
- 您可以从运输中的货物(使用InventoryShipmentRemoveItem)中移除物品,然后如果数量已放置在货物上,再从转移中移除该物品。
- 对于您引用的每个行项目,如果其全部数量仍未分配给任何发货,则该行为项目将被移除。否则,该行项目将保留在转移中,其数量减少至已分配部分。分配给发货的数量(例如,发货是否仍处于草稿状态、运输中或已收货)将被保留。
- 在READY_TO_SHIP转移中,移除物品会将受影响的预留数量返还至源位置的可用库存。
- 现在,传递省略或空的transferLineItemIds被视为空操作,并原样返回转移。
- 如需在不移除行项目的情况下更改其数量,请使用inventoryTransferSetItems。
库存转移变更操作的更清晰错误消息
库存转移变更操作返回的多个用户错误现在具有更具描述性的消息,以便您可以在不查阅额外文档的情况下采取行动:
- READY_TO_SHIP_TRANSFER_REQUIRES_AT_LEAST_ONE_ITEM现在说明,您不能从READY_TO_SHIP转移中移除所有行项目,若要清空转移,应取消它。
- ALL_QUANTITY_SHIPPED现在澄清,当物品的全部数量分配给一个或多个货物(包括已拣货的草稿货物)时触发检查,且错误名称指的是底层分配检查而非物理货物。
- ITEM_PRESENT_ON_DRAFT_SHIPMENT_WITH_ZERO_QUANTITY现在明确指出,该行项目出现在数量为 0 的草稿货物上。
错误代码本身未发生变化,因此您应用中现有的处理方式将继续正常工作。

