Shopify 库存与地点

同步时 inventory_item 与 variant 对不上

现象#

ERP 按 SKU 匹配写库存,报告里同一 SKU 两个变体只有一条被更新;另一个变体 Shopify 显示有货,ERP 显示 0,两边差了 40 件。

原因#

  • variant 与 inventory item 是 1:1,但 SKU 允许重复,按 SKU 写入会命中错的对象
  • 变体没开库存跟踪时没有可写的 inventory level,写入会直接失败
  • 每个地点对应一个 inventory level,只同步主仓会漏掉其他地点的数量
  • 商品重复导入会生成新的 variant 与 inventory item,旧 ID 全部失效

处理步骤#

  1. 用 productVariants(query:"sku:ABC") 拉全部命中项,确认 SKU 是否重复
  2. 取 variant.inventoryItem.id 当唯一键,不要用 SKU 或变体数字 ID
  3. 查 inventoryItem.tracked,为 false 的先开库存跟踪再谈同步
  4. 按 inventoryLevels 逐地点比对,列出源系统缺失的地点映射
  5. 维护 SKU 到 inventoryItem GID 的双向表,重建时以 GID 为准

验收标准#

同一 SKU 下各变体都能独立更新,两边按地点逐条比对差额为 0,没有因未跟踪导致的写入失败。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。