Flow 数字和文本比较结果不对怎么查
现象#
条件订单金额大于 1000 对 999 元的订单也通过,对 1200 元的反而不通过,运行详情里两个值看起来都正常。
原因#
- metafield 定义成单行文本时 value 是字符串,大于号按字典序比较。
- Money 的 amount 序列化为字符串,直接比较会出现 999 大于 1200 的结果。
- Liquid 输出到动作参数后统一变成文本,类型信息在这一步丢失。
- Run code 的 Int 输出与文本字段比较时不会自动转型,条件恒为假。
处理步骤#
- 到 设置 → 自定义数据 查看该 metafield 的定义类型是否为
number_integer。 - 条件改用
order.totalPriceSet.shopMoney.amount。 - 文本 metafield 先在
运行代码里转成数字。 - 输出 schema 用
Int!或Float!。 - 用 999 与 1200 两笔边界订单各跑一次,对比运行记录里条件步骤的求值结果。
验收标准#
999 元订单条件不通过、1200 元通过,运行详情里的分支走向与预期一致。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。