应用现在可以订阅Metaobject、MetafieldDefinition、MetaobjectDefinition和InventoryTransfer的事件。应用还可以订阅针对InventoryTransfer的元字段更改。
通过订阅这些主题,您的应用可以直接响应自定义内容、自定义数据定义以及库存转移工作流中的更改。应用可以在触发器中针对关键字段,查询发生更改的资源,并避免为了在事件处理程序中比对有效载荷而订阅更广泛的更新。
例如,以下订阅在标题字段的值发生变化时触发。该查询使用触发器的metaobjectId来获取该Metaobject和字段。
[events] api_version = "unstable" [[events.subscription]] handle = "metaobject-event" topic = "Metaobject" actions = ["update"] triggers = [ "metaobject(type: 'books').field(key: 'title').value" ] uri = "/api/events" query = """ query MetaobjectTitleValue($metaobjectId: ID!, $fieldKey: String!) { metaobject(id: $metaobjectId) { id type handle field(key: $fieldKey) { key value } } } """当 title 字段更改时,完整的有效载荷主体如下所示:
{ "topic": "Metaobject", "action": "update", "handle": "metaobject-title-value", "data": { "metaobject": { "id": "gid://shopify/Metaobject/123123", "type": "books", "handle": "metaobject-event", "field": { "key": "title", "value": "My Book Title" } } }, "fields_changed": [ "metaobject[id: 'gid://shopify/Metaobject/123123', type: 'books'].field[key: 'title'].value" ], "query_variables": { "metaobjectId": "gid://shopify/Metaobject/123123", "metaobjectType": "books", "fieldKey": "title" } }在开发者预览期间,事件仍在unstable API版本中可用。对于尚未支持的主题,请继续使用Webhook与Events配合使用。
了解更多关于:
- Events(事件):https://shopify.dev/docs/apps/build/events https://shopify.dev/docs/apps/build/events
- Metaobject(元对象):https://shopify.dev/docs/api/events/latest/metaobject https://shopify.dev/docs/api/events/latest/metaobject
- MetafieldDefinition(元字段定义):https://shopify.dev/docs/api/events/latest/metafield-definition https://shopify.dev/docs/api/events/latest/metafield-definition
- MetaobjectDefinition(元对象定义):https://shopify.dev/docs/api/events/latest/metaobject-definition https://shopify.dev/docs/api/events/latest/metaobject-definition
- InventoryTransfer(库存转移):https://shopify.dev/docs/api/events/latest/inventory-transfer https://shopify.dev/docs/api/events/latest/inventory-transfer

