Shopify Webhooks

Shopify 订单 webhook 到达顺序乱了怎么办

现象#

先收到 orders/paid 再收到 orders/create,或 fulfillments/update 早于订单创建,业务状态错乱。

原因#

  • Shopify 不保证 webhook 顺序,网络与重试都会打乱
  • 不同 topic 由不同队列投递
  • 重试的旧事件晚于新事件到达

处理步骤#

  1. 不要依赖到达顺序,用 updated_at 或事件时间戳做版本比较
  2. 按订单 ID 串行处理,用数据库行锁或队列分区
  3. 状态机设计:只允许从低阶状态向高阶迁移,旧事件直接丢弃
  4. 关键流程用 Admin API 回读当前真实状态,而不是信任 payload

验收标准#

乱序投递下订单最终状态正确,无重复发货或状态回退,日志可追溯事件时间。

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