同步时 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 全部失效
处理步骤#
- 用
productVariants(query:"sku:ABC")拉全部命中项,确认 SKU 是否重复 - 取
variant.inventoryItem.id当唯一键,不要用 SKU 或变体数字 ID - 查
inventoryItem.tracked,为 false 的先开库存跟踪再谈同步 - 按
inventoryLevels逐地点比对,列出源系统缺失的地点映射 - 维护 SKU 到 inventoryItem GID 的双向表,重建时以 GID 为准
验收标准#
同一 SKU 下各变体都能独立更新,两边按地点逐条比对差额为 0,没有因未跟踪导致的写入失败。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。