Flow 条件里 metafield 为空导致不触发
现象#
条件设成客户 metafield vip_level 等于 gold,测试客户在后台明明有值,运行记录却显示条件未通过,后续动作全部跳过。
原因#
- metafield 必须先通过添加 metafield 加入工作流数据,否则条件读到的是空值。
- namespace 与 key 写错,例如把
custom写成应用自己的命名空间。 - 定义类型是单行文本,条件却按数字或布尔值比较,求值结果恒为假。
- 定义是列表或引用类型时,条件里拿到的不是可比较的标量值。
处理步骤#
- 到 设置 → 自定义数据 → 客户 找到该定义,确认
namespace.key与字段类型。 - 在工作流里点
添加 metafield,按同一 key 起别名。 - 条件改用该别名比较,不要手写
customer.metafields之类的路径。 - 先加一个
记录输出 (Log output)打印该值,确认运行日志不是空。 - 类型不一致时改定义类型,或在
运行代码里显式转换后再参与比较。
验收标准#
运行详情里条件步骤显示通过,Log output 打印出 gold,后续动作状态为成功。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。