Shopify Plus 与 Flow

Flow 数字和文本比较结果不对怎么查

现象#

条件订单金额大于 1000 对 999 元的订单也通过,对 1200 元的反而不通过,运行详情里两个值看起来都正常。

原因#

  • metafield 定义成单行文本时 value 是字符串,大于号按字典序比较。
  • Money 的 amount 序列化为字符串,直接比较会出现 999 大于 1200 的结果。
  • Liquid 输出到动作参数后统一变成文本,类型信息在这一步丢失。
  • Run code 的 Int 输出与文本字段比较时不会自动转型,条件恒为假。

处理步骤#

  1. 到 设置 → 自定义数据 查看该 metafield 的定义类型是否为 number_integer。
  2. 条件改用 order.totalPriceSet.shopMoney.amount。
  3. 文本 metafield 先在 运行代码 里转成数字。
  4. 输出 schema 用 Int! 或 Float!。
  5. 用 999 与 1200 两笔边界订单各跑一次,对比运行记录里条件步骤的求值结果。

验收标准#

999 元订单条件不通过、1200 元通过,运行详情里的分支走向与预期一致。

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