案例作品集 浏览精选项目

Shopify Plus 升级月费减免+最高抵扣$4800开发费用 - WesWoo专属优惠

指南

Shopify 折扣组合:商品、订单与免邮怎样计算和排错

发布日期: 编辑复核:2026-10-04

普通商品折扣、订单折扣与免邮要一起生效,先让每条折扣允许与另外两条的类别组合,再确认购物车分别满足三条规则。计算时先减商品优惠,再对更新后的商品小计计算订单优惠,最后处理运费。仅把三个码输入结账,不能保证它们会一起应用。Shopify 折扣组合规则

本文解决 Online Store 一次性购买中的三类原生折扣计算与冲突定位。官方资料核验日期为 2026-10-04。P20、O10、SHIPFREE 和所有金额都是假设夹具,尚未在店铺执行;下列结果是带前提的算术预期。

先确认店铺能提供这组三类组合

本例包含“商品折扣 + 订单折扣”。Shopify 对它要求店铺不使用 checkout.liquid 自定义或功能,并且不使用 Licensify;官方排查说明同时要求使用 Checkout Extensibility。符合条件却没有组合选项时,向 Shopify 支持核查店铺资格,不按本例承诺三条同时可用。当前资格与选项缺失排查

本例只有一条普通商品折扣,不涉及同一商品叠加多条商品折扣或买赠。前者属于 Plus 的额外配置范围,后者有独立限制;也不要把在线店铺样本直接复制到外部平台 checkout。组合范围和限制

用一个固定购物车建立三条规则

在获准的测试环境中使用一个美国目标市场、USD 和有效时段:普通一次性商品 A 为 100 USD,商品 B 为 50 USD,各一件;目标地址有一项 8 USD 的可用配送费率。暂不设置购买门槛,也不加入其他优惠。这样差异先集中在类别与计算次序。

代码后台折扣类型与输入折扣类别
P20Amount off products;Fixed amount = 20 USD;Specific products = A商品
O10Amount off orders;Percentage = 10订单
SHIPFREEFree shipping;指定本例目标国家;不设置运费金额排除条件运费

创建 P20 与 O10 的入口为 Discounts → Create discount → 对应 Amount off 类型 → Discount code,再填写 Value。P20 的商品范围仅为 A;本例 A 只有一件,因此不把多件商品的减额方式混入算例。两条都不设置最低购买要求,Eligibility 使用本例的目标市场,并记录实际起止时间。字段依据见 金额/比例折扣创建说明。

SHIPFREE 从 Discounts → Create discount → Free shipping → Discount code 创建,在 Countries 指定实际测试国家。运费金额排除条件是对配送费率金额的限制,不是订单消费门槛;本例不启用它,也不设最低购买要求。填写目标市场资格与相同有效窗口后保存。免邮字段与限制

把组合许可写成双方都允许的关系

在 Discounts 分别打开三条折扣,按下表设置 Combinations,保存后重新打开核对。不要只改 O10,就认为 P20 也已允许它。

当前记录应允许的其他类别为什么
P20,商品折扣Order discounts、Shipping discounts接受 O10 和 SHIPFREE
O10,订单折扣Product discounts、Shipping discounts接受 P20 和 SHIPFREE
SHIPFREE,运费折扣Product discounts、Order discounts接受 P20 和 O10

这张表不需要开启商品+商品、订单+订单或运费+运费。每条记录必须允许与另一条的类别组合;现有折扣的编辑入口是 Discounts → 该折扣 → Combinations → Save。组合设置与编辑步骤

对于负责集成的技术人员,对应读取对象中的类别布尔字段为 productDiscounts、orderDiscounts、shippingDiscounts。它们描述可与哪些类别组合,不能单独证明商品资格、门槛或店铺资格都通过。本文未执行 API。2026-10 官方字段定义

算清商品小计,再把运费放到另一行

在前述假设条件全部满足时,计算顺序如下。商品优惠先应用、订单优惠基于其后的小计、运费优惠最后处理,是 Shopify 的官方顺序;金额是本文自己的夹具计算。计算顺序

  1. 商品原小计:100 + 50 = 150 USD。
  2. P20 只减 A:(100 − 20) + 50 = 130 USD。
  3. O10 对 130 计算 10%:130 × 10% = 13 USD,商品折后小计为 117 USD。
  4. SHIPFREE 把本例符合条件的 8 USD 运费降为零。商品折后小计加运费为 117 USD。

这里尚未计税或其他费用,117 USD 不是任何真实订单的最终支付额。若先对原小计打九折再减 20,得到 150 × 90% − 20 = 115,就用了错误次序;不要为凑成 115 去改后台折扣。

使用同一购物车,在付款前分别验证单码、两码和三码。Shopify 允许在结账输入折扣并查看结果后停止付款流程。付款前验证方式

本次仅输入这些代码商品折后小计运费定位用途
P20130 USD8 USD验证商品对象与固定减额
O10135 USD8 USD验证订单折扣自身资格
SHIPFREE150 USD0 USD验证国家、地址与配送费率
P20 + O10117 USD8 USD验证商品/订单双方许可与计算基数
P20 + SHIPFREE130 USD0 USD验证商品/运费双方许可
O10 + SHIPFREE135 USD0 USD验证订单/运费双方许可
P20 + O10 + SHIPFREE117 USD0 USD验证完整组合

每行开始前清除上一轮代码并重新确认购物车,记录实际命中的自动优惠;否则无法知道差异由哪条规则引起。单码失败时先修该码,单码均通过而某一对失败时,才集中检查那两条的组合关系。

组合失败时,先区分许可失败与资格失败

看到的现象首查位置处理路径
P20 单独也不生效P20 的 Applies to、商品/变体与有效期用 A 一件的最小购物车重试,排除选错商品
单码都可用,P20 + O10 失败两条的 Combinations 与店铺组合资格按双方类别核对;选项缺失时找 Shopify 支持
输入代码后出现另一优惠或组合错误Discounts 中会命中该购物车的自动优惠记录额外优惠及类别,在获准测试环境隔离它后复测
只有免邮失败SHIPFREE 的 Countries、运费金额排除条件及最低要求使用正确地址与可用配送方式,分别核对费率金额和商品门槛
金额与预期差 2 USD商品/订单优惠的计算基数对照 150 → 130 → 117 的顺序,勿把订单比例先算在 150 上

若多个优惠不能组合,Shopify 会选择对购物车更有利的优惠或组合;被替换的代码不一定是保存失败。组合报错还应检查会命中的自动优惠。涉及应用产生的折扣时,把实际类别和结果交给应用开发者核查支持情况,不在营业店随意卸载应用来猜原因。官方组合故障说明

给免邮加门槛后,必须重新验收

前面故意没有消费门槛。假设商家随后把 SHIPFREE 的最低购买金额设为 120 USD,仍允许 P20 与 O10 组合:本例折后商品金额只有 117 USD,不应因为原价 150 或加上 8 USD 运费达到 125 就判定免邮合格。假设配送费率仍为 8 USD,则商品小计加运费为 125 USD,税费仍另计。

免邮最低金额使用商品折后价格,税等其他费用不算入;因此“单独免邮通过,组合后免邮失败”可能是正常门槛结果,不是许可设置丢失。Shopify 免邮最低购买要求

订单折扣自己的最低金额使用另一组基数:商品折扣前,看所选购买类型的金额,排除买入的礼品卡;商品折扣后,看包括所有购买类型与买入礼品卡的购物车小计,两者都要满足。其他订单折扣不会降低用于判断这一门槛的小计。Amount off 的订单最低金额规则

本例只有普通一次性 A/B,若再假设把 O10 的门槛设为 140 USD,应同时检查 150 和 130:前者通过,后者不足,因此 O10 不应生效。不要用 O10 之后的 117 来判断 O10 自己的门槛,也不要把订单门槛套用成上面的免邮门槛。

把失败购物车交给能处理它的人

交接记录保留商品/变体与数量、市场/币种、地址所属国家、选中的配送费率、三条折扣类别与组合设置、额外自动优惠、验证时间、预期和实际各行金额。截图遮去个人信息;说明哪个单码或哪一对首次失败。

原生规则、资格或组合选项问题交 Shopify 支持;应用折扣问题同时附应用名称与版本给开发者。确认原因并修正一个变量后,用同一购物车重复失败步骤,再检查完整组合。算术符合预期只证明这组条件下的优惠计算;支付、税、退款和经营利润仍需各自的实际验收。