从今天起,我们将更新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操作的事件订阅至少需要存在一个触发器。现有订阅将继续按预期工作。
操作指南
查看社区帖子中的迁移步骤和示例,并在讨论线程中分享任何疑问或反馈。 社区帖子中的迁移步骤和示例,并在讨论线程中分享任何疑问或反馈。

