Shopify 折扣 Function 百分比单位写错
现象#
想打九折,代码里写 percentage: { value: 0.1 },结账页只减了几毛钱;改成 10 之后才变成减 10%,两者在日志的 output 里只差这个数字。
原因#
- percentage.value 的单位是百分数本身,10 表示 10%,不是 0.1 表示 10%
- Rust 侧 Decimal 序列化成字符串
"10.0",JS 侧传数字也能过 - 自动折扣与折扣码是两个节点,要各建一次,函数才能在两个入口生效
- 同店最多 25 个折扣函数并发且互不知情,叠加规则由折扣节点的组合设置决定
处理步骤#
- 把值改成
value: { percentage: { value: "10.0" } },不要写 0.1 - 金额类折扣改用
fixedAmount并带 currencyCode,不要与百分比混用 - 在 后台 折扣 里建自动折扣,折扣码用
discountCodeAppCreate另建一次 - 到折扣节点的
combinesWith设置里确认能否与折扣码叠加 - 用一条 100 元购物车回放,核对输出金额与结账页的减免额
验收标准#
100 元购物车在结账页显示减免 10 元、应付 90 元;自动折扣与折扣码分别创建后各自在对应入口可见。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。