每日整理真实提问 356 个问题 · 726 个回答 需要系统性的技术文档?看 Shopify 技术百科 1000 篇 → 400-873-8117
待解决 提问于 3 个月前

API 刚写完,Webhook 里的数据却是旧的

2 个回答 2,530 次浏览 Admin API 与 GraphQL 最后活跃 2 个月前
59

调用 API 把商品价格改成 99,紧接着收到 products/update webhook,payload 里的价格还是 89。

泽
阿泽提问者
前端工程师 · Hydrogen / Storefront API
3 个月前提问 · 已收到 2 个回答

2 个回答

最高票回答 · 等待提问者确认
64

先把判断放在前面:webhook 投递是异步的,可能携带变更前或变更中的快照,加上 CDN 缓存,短时间内的数据一致性无法保证。

1处理顺序

  1. 不要信任 webhook payload 的业务字段,收到后用 updated_at 比对,必要时回查 API 拿最新值。
  2. 处理逻辑做成幂等,同一 X-Shopify-Event-Id 只处理一次。
  3. 需要强一致时,以 API 回查结果为准,webhook 只作为触发信号。
  4. 记录 X-Shopify-Triggered-At,晚于本地更新时间的才处理。
  5. 对账任务每天跑一次,兜住漏掉的事件。
验收:连续改价三次,下游最终值与后台一致,无中间态残留。
风 风格技术团队 回答于 3 个月前
9

这是事件驱动架构的通病,不是 Shopify 独有。把 webhook 当「通知」而不是「数据源」,很多问题会自然消失。

陈 陈工 · Shopify 认证开发者 · 3 个月前

你的处理方式是什么?

写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。

描述你遇到的现象、店铺环境(主题 / 套餐 / 应用)、已经试过哪些操作……
我要单独提问 工作日 10 分钟内回复,可直接加微信 fenggejishu