Skip to content

多重优惠

多重优惠折扣在一个折扣中容纳多个优惠:产品优惠、订单优惠和配送优惠可以同时存在, 每一个都有自己的数值、自己的商品、自己的条件要求和自己的市场 — 再加上一条规则,规定当其中两个落在同一件商品上时会发生什么。

  1. 打开 Discounts,点击 Create discount,然后选择 Multi-offer Discount。

    它位于创建菜单的 Advanced 部分,带有 New 标记,示例为 “Multiple offers and conditions in a single discount”。

  2. 选择折扣方式并为折扣命名。

    选择 Automatic(自动折扣)或 Discount Code(折扣码),然后填写 Title(自动折扣) 或 Discount Code(折扣码)。

  3. 设置整个折扣的适用范围。

    Where does this discount apply? 是最外层的边界:Apply to all markets,或者 Apply to specific markets 并最多选择 20 个。下面的每一个优惠都必须留在这个选择范围之内。

    Create Multi-offer discount 页面,Discount method 卡片设为 Automatic,Title 字段填写 Weekend sale,Where does this discount apply? 市场卡片,What does this discount give? 卡片列出带开关的 Product discount、Order discount 和 Shipping discount 行,右侧是 Summary 卡片以及处于打开状态的 Convert to customer's currency 卡片。Summary 上方是处于关闭状态的 Test mode 卡片
  4. 打开这个折扣要给出的优惠种类。

    在 What does this discount give? 中,打开 Product discount、Order discount、 Shipping discount,或者任意组合。每打开一个,就会展开它自己的板块并附带一张待填写的卡片, 您还可以用 Add another product discount(以及对应的按钮)添加更多。

  5. 填写每一张折扣卡片。

    一张卡片包含 Discount(类型和数值)、Qualifying items、Requirements、Applies to 和 Available in。订单卡片还包含 Minimum after product discounts 和 Item exclusions。填写完成后,点击卡片标题即可折叠它。

    当某张订单卡片设为 Percentage off 时,右侧栏的 Convert to customer’s currency 下方会出现 Calculate after product discounts 卡片。新建折扣时它是打开的。

    一张展开的 Product discount 1 卡片:Discount type 为 Percentage off 且 Percentage 为 20,一个名为 Weekend picks 的商品分组中包含 Specific collections is one of 条件并选中产品系列 Cleansers,Requirements 部分为空并显示 None yet,Applies to 中的 Discount these items 设为 Weekend picks
  6. 设置谁可以使用它、优惠重叠时如何处理,以及日期,然后保存。

    Who can use this discount 把它限定给特定客户。Discount rules & limits 用来选择 重叠规则和一个可选的整体商品件数上限。然后设置组合、购买类型和日期, 并从页面顶部的保存栏保存。

Automatic 不需要折扣码 — 只要购物车符合条件,Shopify 就会应用该折扣。Discount Code 表示买家必须输入您设置的折扣码。请在创建折扣时选定方式: 折扣一旦存在,选择器就会被禁用。

在自动折扣上,Title 是折扣生效时买家看到的名称。在折扣码折扣上,该字段会变成 Discount Code。

添加第二个只有您能看到的名称,用来区分相似的折扣。

整个折扣运行的市场 — Apply to all markets,或者 Apply to specific markets 并最多选择 20 个。它是下面每一个优惠的边界:优惠可以缩小它,永远不能扩大它。 在这里移除某个市场,也会把它从用到它的那些优惠中移除。

三个开关 — Product discount(对特定产品减免金额)、Order discount(对订单总额减免金额) 和 Shipping discount(对配送费用减免金额)。您需要几个就打开几个; 至少要有一个优惠才能保存。关闭某个开关会隐藏对应板块并保留您已填写的内容, 因此再打开时内容会恢复。

每张卡片都以自己的 Discount type 和数值开始:

  • Product discount — Percentage off、Fixed amount off、Fixed amount off per item, 或 Percentage off compare-at price。
  • Order discount — Percentage off 或 Fixed amount off。
  • Shipping discount — Percentage off、Fixed amount off、Free shipping 或 Flat rate。

百分比必须大于 0 且不超过 100。产品优惠和订单优惠中的 Percentage off 还可以勾选 Set maximum discount amount 和 Set cart value limit for discount calculation。

勾选的复选框需要一个大于 0 的金额。如果金额为空、为 0 或为负数,就无法保存: 字段上显示 “Please enter a maximum discount amount” 或 “Please enter a maximum cart value” (或 “Please enter a valid amount greater than 0”),页面顶部的横幅会指出是哪张卡片, 例如 “Enter a maximum discount amount for Order discount 1.”。

Percentage off compare-at price 收取的是 Compare-at price 减去您设定的百分比之后的价格。 没有 Compare-at price 的商品,或者 Compare-at price 低于当前价格的商品会被跳过, 而当前价格本来就更低的商品会保持原价。它不接受折扣上限,也不接受购物车金额上限。

仅订单卡片有。Require a minimum order amount after product discounts 要求一个最低金额, 由 Shopify 在扣除产品折扣之后剩余的订单总额上检查。Cart subtotal 条件要求则不同: 它检查的是折扣之前的金额。这个金额必须大于 0。

在以下三种情况下,这个最低金额不可用:

  • **同一个折扣中有产品折扣。**复选框会被替换为 “Not available while this discount has a product discount.” 以及一个指向本节的 Learn more 链接。如果两者都需要, 请把产品折扣放到另一个单独的折扣中,并在这个折扣中打开最低金额。之前保存时两者都有的折扣 会保留复选框,显示 “Can’t be used while this discount has a product discount. Turn it off, or move the product discount to a separate discount.”, 并且在您二选一之前无法保存。
  • **When discounts overlap 设为 Apply all matching discounts。**卡片显示 “Not available when order discounts apply together (“all”). Choose “first” or “maximum” to use this.”
  • **订单卡片勾选了 Set maximum discount amount 或 Set cart value limit for discount calculation。**错误信息为 “Can’t be combined with a maximum discount cap or cart value limit. Turn one of them off to save.”

打开最低金额后,无论 Calculate after product discounts 开关处于什么状态, 订单百分比都在产品折扣之后计算。

仅订单卡片有。Don’t apply this discount to specific items 会把选定的产品和产品系列 排除在计算之外 — 它们会以原价留在购物车中。最多 20 个产品和 10 个产品系列。下方的选项决定这些商品是否仍计入您的条件要求: Count excluded items toward requirements 或 Ignore excluded items everywhere。当 When discounts overlap 设为 Apply all matching discounts 时,商品排除不可用。

有名称的购物车商品分组,每一组都是一份条件清单,并有自己的 Match all / any of these conditions。各分组是相互独立的 — 它们彼此之间不会组合;它们是卡片其余部分按名称引用的选择对象。 如果完全没有分组,则每一件商品都符合条件。

产品卡片和订单卡片提供商品类、购物车类和客户类条件,外加 Compare-at price。 配送卡片提供购物车类和客户类条件、Specific collections、Line quantity、 Line subtotal,以及目的地和配送方式类条件(Country code、Province / State code、Shipping city、Postal code、Shipping type、Shipping method)。

这个优惠生效之前,购物车必须满足的限制条件。每一条要求衡量一个分组 — All items 或您命名的某个分组 — 使用 Subtotal、Quantity (sum)、Number of line items、Unique products、Unique variants 或 Compare-at subtotal, 再加上一个运算符和一个数值。有多条要求时,您会得到一个 Match all / any of these requirements 的选择。一条都没有时,这个优惠总是生效。

Compare-at subtotal 会把 Compare-at price × 数量累加起来, 其中没有 Compare-at price 的商品按当前价格计算。配送卡片上不提供该项。

哪些商品真正获得这个优惠。订单优惠作用于整个订单。产品优惠在 Discount these items 中选择一个分组。配送优惠则选择 Rate to discount — All shipping rates、Rate by name、Rate by price 或 No rate (disable), 中间两项还需要一个匹配运算符和数值。

产品优惠还额外提供:

  • Count condition quantities — Across matched items(默认)、Per product 或 Per variant。后两者需要 Percentage off 或 Percentage off compare-at price,并且不能与 Set maximum discount amount、Set cart value limit for discount calculation,或 Unique products、Unique variants 条件要求一起使用。只要勾选了其中任一 复选框,这个下拉框就会隐藏。如果在您勾选复选框时计数已经设为 Per product 或 Per variant, 下拉框会保持可见并显示错误 “Per-product or per-variant counting can’t be used with a maximum discount or a cart value limit. Untick them, or set counting back to Across matched items”,并且无法保存。
  • Limit discounted items — No limit、Highest-value items first、Lowest-value items first 或 First items in cart,并带有一个 1 或更大的数量。

这一个优惠所适用的市场,且必须在整个折扣自身的选择范围之内:All markets(或 All selected markets),或者一个最多 20 个市场的更小范围。如果这个优惠所依赖的某个市场 在页面顶部被移除,卡片会提示,而一个没有任何可用市场的优惠会阻止保存。

针对整个折扣的可选客户类条件 — Customer tags、Customer logged in、 Customer is B2B 和 Customer orders count,并带有 Match all / any of these conditions 的选择。留空则任何人都可以使用这个折扣。

同一张卡片上还有 Limit to certain customers 开关。打开后,Match by 可选择 Customer segments(自动折扣最多 5 个,折扣码最多 20 个)或 Specific customers(最多 100 个)。Shopify 会在折扣运行之前检查买家;您的条件仍然会在其上生效。请参阅 客户资格。

当两个优惠落在同一件商品上时会发生什么:

  • Apply the first matching discount — 使用列在最前面的那一个。
  • Apply the discount that saves the most — 在每件商品上选择优惠力度更大的那一个。
  • Apply all matching discounts — 让它们叠加。它的帮助文字是:“Stack matching discounts on the item. Two product discounts on the same item only combine on Shopify Plus; otherwise Shopify applies the best one.”。

限制整个购物车中共有多少件商品(按数量)可以享受折扣,并会覆盖各个优惠自身的件数上限。 可选 No overall limit,或 Highest-value items first、Lowest-value items first、First items in cart 并带有一个 1 或更大的数量。

Product discounts、Order discounts 和 Shipping discounts 的复选框 — 也就是说, 指的是这个折扣之外的其他折扣。不勾选它们,这个折扣就单独运行。

同一张卡片中的 Tags 用于给折扣加标签 — 最多 20 个。它们保存在 Shopify 中的折扣上。 在 Shopify Plus 上,勾选 Product discounts 后还会显示 Stack with product discounts tagged。详见折扣组合。

只对折扣码折扣显示。Limit number of times this discount can be used in total 会添加一个 Maximum discount uses 字段(一个大于 0 的整数),而 Limit to one use per customer 会按买家限制使用次数。

只对折扣码折扣显示。Restrict this discount to specific delivery methods 让您把折扣码 只保留给 Pickup、Shipping、Local delivery 或 Pickup point。 如果客户选择了折扣码不允许的配送方式,Shopify 会阻止它,并显示您在 Message when checkout is blocked 中填写的文字(最多 140 个字符)。 执行这一限制的是应用自己的结账验证函数,而不是折扣本身。 卡片会按客户看到的样子预览这条信息。

One-time purchases、Subscription products,或两者都选 — 至少需要选择一项。 勾选订阅后会增加 First payment only、Limited number of payments(最多 100 次) 或 All recurring payments 的选择。

Start Date 和 Start Time 指定折扣何时开始,Set End Date 可以添加一个结束时间。 所有时间都采用您的店铺时区,卡片上会在屏幕上写明该时区。

位于 Summary 下方,在多重优惠折扣上默认为打开。打开时,每一个优惠上的每一个固定金额、 上限和金额类条件都会换算成客户实际付款的货币,因此 “10 off” 对他们来说也值 10。 关闭时,您填的数字会原样用在每一种货币上。 无论开关如何,百分比和商品件数都不会变化,在单一货币的店铺中这个设置也没有任何区别。 您之后可以更改它,卡片会在切换生效之前说明会发生什么变化。

右侧栏中的一个开关,位于 Convert to customer’s currency 下方。只有当某张订单卡片设为 Percentage off 时才会显示,并且作用于这个折扣中的每一个订单百分比。卡片会说明当前设置:

  • 打开:“The percentage comes off the cart total after product discounts.” Shopify 自己的订单折扣 也是这样计算的。
  • 关闭:“The percentage comes off the full cart total, even when a product discount also applies.”

新建的多重优惠折扣默认打开这个开关。2026 年 10 月 11 日之前创建的折扣打开时开关是关闭的, 在您打开它之前,什么都不会改变。复制折扣时,开关状态从被复制的折扣中照搬。

在已有折扣上切换开关时,会先弹出确认框(“This is a live discount. The change takes effect for customers as soon as you save.”)。Cancel 会保持原样。

这个开关不能在以下情况下打开:

  • 设为 Percentage off 的订单卡片勾选了 Set maximum discount amount 或 Set cart value limit for discount calculation。错误信息显示在开关上和被勾选的复选框上:

    “Calculate after product discounts” can’t be on while Order discount 1 uses “Set maximum discount amount” or “Set cart value limit for discount calculation”. Shopify can’t cap a percentage it calculates. Turn off the switch, or untick those boxes, to save.

  • 折扣有不止一张订单卡片时选择了 Apply all matching discounts。错误信息显示在开关上和 When discounts overlap 下方:

    “Calculate after product discounts” can’t be on when “Apply all matching discounts” is chosen and this discount has more than one order discount. With that option the app adds the order discounts together on the full cart total. Turn off the switch, choose another option under “When discounts overlap”, or keep one order discount.

订单卡片上的 Fixed amount off 不受这个开关影响。

同时有产品折扣时,订单百分比是如何计算的?

Section titled “同时有产品折扣时,订单百分比是如何计算的?”

当一个购物车既有产品折扣、又适用您的订单百分比折扣时,结果取决于 Calculate after product discounts 开关。这里的产品折扣可以是同一个折扣中的产品卡片, 也可以是允许与它组合的另一个折扣。

**开关打开:**百分比从扣除产品折扣之后的购物车金额中计算。

**开关关闭:**百分比按产品折扣之前的购物车全额计算。如果购物车同时享有产品折扣,顾客省下的金额会 超过您设置的百分比。

**计算示例。**一个折扣:Product discount 1 是每件商品 20% 折扣,Order discount 1 是 15% 折扣。购物车合计 80.00,产品卡片使它降到 64.00。

开关打开:64.00 的 15% = 减 9.60 → 顾客支付 54.40
开关关闭:80.00 的 15% = 减 12.00 → 顾客支付 52.00

没有产品折扣的购物车两种情况下得到的金额相同。唯一的区别是四舍五入:开关打开时由 Shopify 取整,关闭时由应用取整,因此两者最多相差 1 分。

您在应用中会看到:

  • Summary 在每个订单百分比下方显示一行:“Calculated after product discounts” 或 “Calculated before product discounts”。打开 Minimum after product discounts 后,那张卡片 始终显示 “Calculated after product discounts”。
  • 当开关关闭、最低金额关闭,并且同一个购物车可能适用产品折扣时,Percentage 下方会出现一条 蓝色提示,以 15% 为例:“15% is calculated on the cart total before product discounts are applied.” 它的提示框最后说明了如何改变这一点。

位于 Summary 上方、单独一张卡片上的开关。打开时,这个折扣只对已登录、且其账户带有标签 dos-test 的客户生效;其他所有人购物时就像这个折扣不存在一样。在新折扣上,这个开关随折扣一起 保存。在已保存的折扣上,它立即生效,无需 Save。详见测试模式。

在一个自动折扣中同时提供某产品系列 20% 折扣和免费配送

Discount method: Automatic
Title: Weekend sale
Where does this discount apply?: Apply to all markets
What does this discount give?: Product discount + Shipping discount
Product discount 1 → Discount type: Percentage off · Percentage: 20
Product discount 1 → Qualifying items → Group 1: Specific collections · is one of · Weekend picks
Product discount 1 → Applies to → Discount these items: Group 1
Shipping discount 1 → Discount type: Free shipping
Shipping discount 1 → Applies to → Rate to discount: All shipping rates
When discounts overlap: Apply the discount that saves the most

一个折扣码:订单 10% 折扣,并在消费达标后配送一口价

Discount method: Discount Code
Discount Code: WEEKEND10
What does this discount give?: Order discount + Shipping discount
Order discount 1 → Discount type: Percentage off · Percentage: 10
Order discount 1 → Set maximum discount amount: ticked · Maximum Discount Amount: 40
Shipping discount 1 → Discount type: Flat rate · Flat Rate Amount: 5
Shipping discount 1 → Requirements → All items · Subtotal · is greater than or equal to · 75
Limit to one use per customer: ticked
Calculate after product discounts: off

这里开关必须关闭,因为这个订单百分比设置了最高折扣金额。

每件商品 20% 折扣,再加订单 15% 折扣,在产品折扣之后计算

Discount method: Automatic
Title: Autumn home sale
What does this discount give?: Product discount + Order discount
Product discount 1 → Discount type: Percentage off · Percentage: 20
Order discount 1 → Discount type: Percentage off · Percentage: 15
When discounts overlap: Apply the first matching discount
Calculate after product discounts: on

一个 80.00 的购物车先由产品卡片减 16.00,然后订单减 64.00 的 15% = 9.60。 顾客支付 54.40。

对某个产品系列采用 compare-at 定价,最多 3 件

Discount method: Automatic
Title: Compare-at pricing · Outlet
What does this discount give?: Product discount
Product discount 1 → Discount type: Percentage off compare-at price · Percentage: 30
Product discount 1 → Qualifying items → Group 1: Specific collections · is one of · Outlet
Product discount 1 → Applies to → Discount these items: Group 1
Overall item limit: Highest-value items first · Quantity: 3

两个产品优惠,力度最大的胜出

Discount method: Automatic
Title: Mix and match
What does this discount give?: Product discount
Product discount 1 → Discount type: Percentage off · Percentage: 15
Product discount 1 → Qualifying items → Group 1: Product tags · is one of · summer
Product discount 1 → Applies to → Discount these items: Group 1
Product discount 2 → Discount type: Fixed amount off per item · Amount: 10
Product discount 2 → Qualifying items → Group 1: Specific collections · is one of · Dresses
Product discount 2 → Applies to → Discount these items: Group 1
When discounts overlap: Apply the discount that saves the most

自动的多重优惠折扣不需要买家做任何事:Shopify 会在购物车中应用匹配到的优惠, 并在优惠金额旁边显示您输入的 Title。折扣码折扣则在买家输入您设置的折扣码后生效。

折扣内部的每一个优惠都以这同一个名称运行,因此一个描述整场促销的标题 (“Weekend sale”)会比一个只描述某个数字的标题更合适。

  • **至少一个优惠。**所有开关都关闭时,多重优惠折扣无法保存。
  • **百分比:**每一个优惠上都必须大于 0,最多 100。
  • **市场:**整个折扣最多 20 个,任何单个优惠也最多 20 个。
  • **订单优惠上排除的商品:**最多 20 个产品和 10 个产品系列。
  • **商品件数上限:**每个优惠以及整体上限都需要一个 1 或更大的数量。
  • **配送提示信息:**最多 140 个字符。
  • **订阅:**选择有限次数时最多 100 次周期性付款。
  • **购物车属性键:**产品优惠和订单优惠每个折扣读取一个键;配送优惠可以读取两个。使用其他键的条件在保存时 会被拒绝,原因显示在该条件上。
  • **勾选的复选框需要金额。**Set maximum discount amount 和 Set cart value limit for discount calculation 一旦勾选,就需要一个大于 0 的金额。
  • **被阻止的组合。**每一项都会在字段上就地被拒绝,在服务器上还会再拒绝一次:
    • Calculate after product discounts 与订单百分比上的最高折扣金额或购物车金额上限一起使用, 或与 Apply all matching discounts 且多于一张订单卡片一起使用。
    • Minimum after product discounts 与同一个折扣中的产品卡片、最高折扣金额或购物车金额上限, 或 Apply all matching discounts 一起使用。
    • 商品排除与 Apply all matching discounts 一起使用。
    • Percentage off compare-at price 与最高折扣金额或购物车金额上限一起使用。
    • Per product 或 Per variant 计数与最高折扣金额、购物车金额上限, 或 unique-product、unique-variant 类条件要求一起使用,以及与百分比以外的任何类型一起使用。
  • **客户:**自动折扣最多 5 个客户细分,折扣码最多 20 个, 或最多 100 个指定客户。
  • **优惠必须留在折扣的市场范围内。**优惠可以缩小市场选择,永远不能扩大它。
  • **组合由 Shopify 决定。**Discount can be combined with 说的是这个折扣之外的其他折扣; 至于购物车上实际应用了什么,由 Shopify 决定。
  • **方式在创建之后固定。**Automatic 和 Discount Code 不能在已有折扣上互换; 请改为复制该折扣。

订单百分比是在产品折扣之前还是之后计算的? 取决于 Calculate after product discounts 开关。打开时,百分比从扣除产品折扣之后的购物车总额中 计算,与 Shopify 自己的订单折扣相同。关闭时,按购物车全额计算。新建的多重优惠折扣默认打开这个开关。 2026 年 10 月 11 日之前创建的折扣打开时开关是关闭的。

为什么 Minimum after product discounts 不可用? 当同一个折扣中有产品折扣时,这个最低金额不可用。请把产品折扣放到另一个单独的折扣中, 然后再打开最低金额。当 When discounts overlap 设为 Apply all matching discounts 时, 它同样不可用。

为什么按产品计数不能与最高折扣金额一起使用? Per product 和 Per variant 计数不能与 Set maximum discount amount 或 Set cart value limit for discount calculation 一起使用。请取消勾选这些复选框,或把 Count condition quantities 改回 Across matched items。

Qualifying items 和 Applies to 有什么区别? Qualifying items 是这个优惠所认识的、有名称的购物车商品分组。Applies to 则指明 哪一个分组真正获得折扣 — 因此您可以要求购物车里有某一组商品,而对另一组商品打折。

我什么时候应该使用 “Apply all matching discounts”? 当两个优惠应该在同一件商品上叠加时。它的帮助文字是 “Stack matching discounts on the item. Two product discounts on the same item only combine on Shopify Plus; otherwise Shopify applies the best one.”。如果您希望有一个可预期的唯一胜出者,请使用 Apply the discount that saves the most。

为什么我不能给 compare-at 百分比折扣添加最高折扣上限? 这种类型是根据商品自身的 Compare-at price 逐行计算的,因此折扣上限或购物车金额上限 根本无法被兑现。应用宁可拒绝这一组合,也不会保存一个折扣做不到的承诺。

我的优惠提示说它的市场在页面顶部被移除了。发生了什么? 一个优惠只能在整个折扣所运行的市场范围内运行。在页面顶部移除某个市场, 也会把它从用到它的那些优惠中移除,而一个没有任何可用市场的优惠会被标记出来, 并在您改选其他市场或把该市场加回来之前阻止保存。