入门指南触发器的工作原理

触发器的工作原理

复制页面

Shopify Flow 触发器详解:Webhook、变更检测和轮询,以及它们各自对延迟和配置的影响。

只要弄清楚触发器采用的是这四种机制中的哪一种,几乎就能解答所有关于时机、准备工作以及为何会或不会扣动触发器的问题。

这四种机制

机制 触发器 延迟 需要一个基准 配送
Shopify Webhook 26 近实时 不 保证
Webhook + 变更检测 52 近实时 是的 保证
民意调查 6 最多一个调查间隔 是的 保证
店面像素 14 秒 不 尽最大努力

1. Shopify Webhook

Shopify 事件发生时立即通知应用,应用再将其直接转发至 Shopify Flow。“折扣创建”和**“地点删除”**就是这样工作的。

这些触发器除了权限设置外无需其他配置,且**“触发器**”页面上为每个触发器都设置了独立的开关。

2. Webhook 结合变更检测

这是最大的功能模块,也是该应用实用性的关键所在。Shopify 的 products/update Webhook 会在_任何_产品编辑操作时触发,但不会说明具体发生了哪些更改。因此,该应用:

  1. 存储您关注的字段的快照,
  2. 将每个传入的 Webhook 与该快照进行比对,并
  3. 仅在该特定字段实际发生变化时,才会触发该特定触发器。

这就是为什么**“产品标题变更**”会在标题被编辑时触发,而在价格被编辑时却不会触发,尽管这两者都是通过相同的Shopify Webhook发送的。

3. 投票

Shopify 该应用不会针对博客、博文、页面、订单显示状态、折扣到期以及公司地点税费设置发布任何 Webhook。对于这 6 种触发器,应用会按计划进行检查,并在检测到变化时触发相应操作。

轮询触发器与其他触发器一样,可在**“触发器**”页面上启用。它们会消耗一个轮询周期的延迟,而非立即触发。

4. 店面像素

Shopify 不会针对购物者的操作发送任何Webhook:例如浏览商品页面、将商品加入购物车、搜索未找到结果、结账时出现错误等。对于这14个触发器,该应用会在您的店面前端安装一个网页像素,用于从购物者的浏览器报告相关事件。

由此可得出三点结论,这些结论使这些触发器与其他三种机制区别开来:

  • 主动订阅。他们需要“店面行为访问”权限,且该权限的开关处于开启状态 关闭。启用一个使用该触发器的 Shopify Flow 工作流程,即会将其打开,这与任何触发器一样。该 当第一个像素点被点亮时,该像素点即被激活;在所有像素点均未点亮时,它不会发送任何信号。
  • **需征得同意。**未同意分析条款的购物者将被移至 浏览器,且该事件从未传达到我们这里,既不产生任何成本,也不会触发任何工作流程。
  • **已尽最大努力。**关闭标签页、断开连接或广告拦截器都会导致该事件 永远不会到达,且不会重试。请将它们用于信号和响应,切勿用于需要 漏报事件将构成正确性问题。

此外,其事件数量也远高于管理事件。在启用某项功能之前,请参阅 Storefront 触发器。

工作流程中接收的内容

字段级触发器会返回旧值和新值,因此您可以根据变化本身进行分支处理,而无需后续查找:

yaml
Old price: 19.99
New price: 24.99
SKU:       WIDGET-BLUE-M
Shopify Flow 的“添加变量”面板中显示 oldPrice、newPrice、delta、percentChange 和 direction
Shopify Flow 接收到的价格变动数据包括:价格变动前后的数值、差值、百分比以及变动方向。

列表形式的变更以结构化对象的形式提供,而非逗号分隔的文本,因此您可以在 Shopify Flow 中对其进行迭代和分支处理。订单项变更、出版物变更以及公司-地点税收豁免均采用这种方式处理。

排序与重复项

  • 事件会根据Shopify的事件 ID 进行去重,因此重发不会触发您的 工作流程执行两次。
  • 该应用对每家商店设置了短时速率限制,因此无法批量编辑数千件商品 不会给您的工作流程带来负担。事件会被排队处理,不会被丢弃。
  • 一项修改 5,000 种产品的批量操作会产生 5,000 个事件,并消耗 5,000 您每月配额中的。请参阅 套餐与使用情况。
  • 店面事件会合并短时间窗口内同一页面视图的重复记录,并且 这两个访问触发器会将整个访问合并为针对每位客户或公司的单个事件。