大数跨境

事件负载和订阅配置的更新

事件负载和订阅配置的更新 Shopify电商独立站
2026-09-16
4
导读:从今天起,我们将更新事件(Events)的负载结构、触发器语法以及投递请求头。经典 Webhook 订阅不受影响。

从今天起,我们将更新Events的负载、触发器语法和交付标头。经典Webhook订阅不受影响。

变更内容

fields_changed 现在描述每条路径的变更情况

扁平数组变为包含三个数组的对象:added、updated和removed。

开发者无需仅通过查询来推断发生了什么,即可区分是添加了资源或关系、更新了值,还是移除了资源或关系。

更新负载处理以读取fields_changed.added、fields_changed.updated和fields_changed.removed。例如,向产品添加变体时,将保持产品的action为update,并将变体路径放置在fields_changed.added中。

之前:

{ "topic": "Product", "action": "update", "fields_changed": [ "product[id: 'gid://shopify/Product/123'].variants[id: 'gid://shopify/ProductVariant/456']" ] }

之后:

{ "topic": "Product", "action": "update", "fields_changed": { "added": [ "product[id: 'gid://shopify/Product/123'].variants[id: 'gid://shopify/ProductVariant/456']" ], "updated": [], "removed": [] } }

父级触发器使用显式通配符

要订阅父路径下所有支持的字段,请使用终端.*,例如triggers = ["product.variants.*"]。

叶级触发器如product.variants.price保持不变。现有订阅将继续正常工作,但下次部署shopify.app.toml时,您必须将父级触发器更新为新语法。语法更改保留了等效订阅的匹配行为和事件量。

之前:

triggers = [ "product.variants", "product.options.optionValues.swatch" ]

之后:

triggers = [ "product.variants.*", "product.options.optionValues.swatch.*" ]

移除了两个冗余的交付标头

事件交付不再包含shopify-event-id或shopify-resource-id。

请将您的 Shopify API 包更新到最新版本,这些版本已处理此变更。如果您的代码读取这些标头或依赖它们进行验证,请移除该依赖项。

triggers 触发器现在是必需的

具有update操作的事件订阅至少需要存在一个触发器。现有订阅将继续按预期工作。

操作指南

查看社区帖子中的迁移步骤和示例,并在讨论线程中分享任何疑问或反馈。 社区帖子中的迁移步骤和示例,并在讨论线程中分享任何疑问或反馈。

【声明】内容源于网络
0
0
Shopify电商独立站
1234
内容 7163
粉丝 0
Shopify电商独立站 1234
总阅读95.5k
粉丝0
内容7.2k