Shopify Functions

Shopify 折扣 Function 百分比单位写错

现象#

想打九折,代码里写 percentage: { value: 0.1 },结账页只减了几毛钱;改成 10 之后才变成减 10%,两者在日志的 output 里只差这个数字。

原因#

  • percentage.value 的单位是百分数本身,10 表示 10%,不是 0.1 表示 10%
  • Rust 侧 Decimal 序列化成字符串 "10.0",JS 侧传数字也能过
  • 自动折扣与折扣码是两个节点,要各建一次,函数才能在两个入口生效
  • 同店最多 25 个折扣函数并发且互不知情,叠加规则由折扣节点的组合设置决定

处理步骤#

  1. 把值改成 value: { percentage: { value: "10.0" } },不要写 0.1
  2. 金额类折扣改用 fixedAmount 并带 currencyCode,不要与百分比混用
  3. 在 后台 折扣 里建自动折扣,折扣码用 discountCodeAppCreate 另建一次
  4. 到折扣节点的 combinesWith 设置里确认能否与折扣码叠加
  5. 用一条 100 元购物车回放,核对输出金额与结账页的减免额

验收标准#

100 元购物车在结账页显示减免 10 元、应付 90 元;自动折扣与折扣码分别创建后各自在对应入口可见。

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