Shopify 库存与地点

批量调库存后 webhook 把消费队列刷爆了

现象#

CSV 导入 8000 个变体后,inventory_levels/update 十分钟推来两万多条,消费者积压,同一个 inventory_item_id 收到多条乱序的 available。

原因#

  • 每个 inventory level 变动都会独立推一条,批量导入等于成倍放大事件数
  • 载荷只有 available 和 updated_at,没有 delta、原因与操作人,难以判断影响
  • Shopify 不保证投递顺序,快速连改同一地点时会收到多条相同终值
  • 订阅上加了 include_fields 会把 location_id 裁掉,消费端无法定位地点

处理步骤#

  1. 用 X-Shopify-Webhook-Id 做幂等键,重复投递直接丢弃
  2. 以 updated_at 比较,只接受比本地记录更新的载荷,旧包跳过
  3. 去掉订阅上的 include_fields,保留 inventory_item_id 和 location_id
  4. 消费端按 item 加地点做短窗口合并,只处理窗口内的最终值
  5. 批量写入改成一次 mutation 多条 changes,从源头减少事件总量

验收标准#

重跑同一批导入,队列峰值事件数明显低于变体数,最终库存与源表逐条一致。

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