Shopify Plus 与 Flow

Flow 自己触发自己导致无限循环怎么防

现象#

一条订单打标签再改备注的工作流,几分钟内产生上百条运行记录,同一订单反复出现,后台调用量异常升高。

原因#

  • 动作修改了触发该工作流的事件源,例如 Order updated 里加标签又触发一次自身。
  • Flow 不区分事件来自人工操作还是自己的动作,满足条件就再跑一轮。
  • 多条工作流监听同一事件并互相改写同一字段,形成 A 到 B 再回到 A 的环路。
  • 条件里缺少已处理标记,动作产生的结果本身就变成了下一次触发的输入。

处理步骤#

  1. 在 最近运行 按订单号筛选,确认同一订单短时间内出现多条同触发器运行。
  2. 打开工作流,检查动作是否修改了触发器监听的对象,例如在 Order updated 里加标签。
  3. 增加守护条件:判断 order.tags 是否含 processed。
  4. 打 processed,条件用 tag_not:processed。
  5. 必须回写同一对象时,改用 计划时间 加 获取订单数据 批量处理,避开事件回环。

验收标准#

触发一次后,最近运行里同一订单只有一条记录,随后十分钟内没有同源新增运行。

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