Shopify Webhooks

后台通知里建的 Webhook 和 API 订阅有什么区别

现象#

在「设置 → 通知 → Webhook」里建了一条 orders/create,地址能收到推送;但 App 用 webhookSubscriptions 查询时返回空数组,Dev Dashboard 的 Logs 里也找不到这条投递。

原因#

  • 后台建的订阅归属店铺而不是某个 App,App 的 Admin API 令牌只能查到自己的订阅
  • 后台那条地址写死在店铺配置里,换域名或换服务后没人清理,旧地址继续收推送
  • 后台页面只有 JSON/XML 和 API 版本可选,不支持 filter、includeFields 与 Pub/Sub
  • 后台地址栏会拒绝 localhost、internal 结尾域名、店铺自有域名与 Shopify 域名

处理步骤#

  1. 打开后台 设置 → 通知 → Webhook,逐条记录事件、格式、地址与 API 版本
  2. 在 App 里查 webhookSubscriptions(first: 50),比对两边是否存在同 topic 记录
  3. 需要过滤、裁剪字段或改投递方式时,用 webhookSubscriptionCreate 重建一条
  4. 新订阅先用 shopify app webhook trigger 打一条,确认 200 后再删后台那条
  5. 把每条订阅的用途与负责人写进仓库 README,换域名时按清单核对

验收标准#

后台列表与 webhookSubscriptions 结果不再出现同 topic 的两条记录,Logs 里只剩新地址的投递且响应 200。

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