When several discounts could land on the same product, you control what happens. Everything is set on the Advanced rules step, which is optional: leave it alone and discounts add up.
Step by step
- In the side menu, go to Catalog → Discounts and open the discount.
- Go to the Advanced rules step.
- Configure what you need, in the order it appears: - Stacking — Stacks with everything / Competes with similar discounts / Replaces other discounts. - Cascading discount — On the original price or On the already-reduced price. - Requires another discount - Incompatible with - Usage limits — Cart limit, Per-customer cap and Cap period.
- Continue to Review and click Save.
- For priority, go back to the Discounts list and drag the rows.
The three ways of stacking
| Option | What it actually does |
|---|---|
| Stacks with everything | Adds on top of any other discount that also applies. This is the default. |
| Competes with similar discounts | On each unit it touches, the biggest saving wins among the rules that also compete or replace. It does not push aside a discount set to "Stacks with everything": that one still adds on top. |
| Replaces other discounts | On each unit it touches, it wipes out the other discounts and claims that unit: no later rule can touch it again. |
Two important points about Replaces other discounts:
- It blocks per unit, not per cart. Products outside its scope keep their discounts.
- Shipping discounts always get through. Shipping does not compete with product discounts.
Fixed price beats everything
There is one behaviour that does not depend on stacking: if an absolute price effect (Fixed price or Combo price) lands on a unit, that price is the only discount on that unit. Every other discount is dropped there, even ones set to "Stacks with everything".
This is the explanation behind "I set 20% off across the store and the product with a special price does not get it". In the Simulator you will see the line "Suppressed by the fixed price of ...".
Which price each discount is calculated on (cascading)
When two percentage discounts land on the same product, you choose how they combine:
- On the original price (default): each discount is calculated on the list price. Two 10% discounts on $1,000 give $100 + $100 = $200 of savings.
- On the already-reduced price (cascading): the discount is calculated on what is left after the previous ones. First 10% ($1,000 → $900), then 10% on $900 = $90. Total saving $190.
Cascading picks up discounts of lower order (the ones higher in the list), so place the cascading discount after the one that has to apply first. Only percentage effects use cascading.
Priority: order rules
Priority is the order in the discount list: whatever sits higher wins. Drag the rows to reorder them.
This matters with "Competes" and "Replaces": order decides who survives. If you sorted the list by a column, the on-screen notice tells you to go back to priority order before you can drag.
Incompatibilities and requirements
- Requires another discount: this rule only applies if one of the discounts you pick is also being applied. If the other one does not apply, this one is skipped with the reason "Requires another rule".
- Incompatible with: if any of the chosen discounts is already applying, this rule does not apply.
"Incompatible with" is symmetric. It is enough for one of the two rules to name the other: you do not have to set it on both sides. When two rules are incompatible, the higher-priority one wins.
Usage limits
- Cart limit: how many times the benefit is granted within one order. The engine keeps the applications with the largest amount up to that number: if the limit is 3 and there are 10 eligible lines, the 3 that save the most are kept. Shipping discounts do not count as applications. Empty = no limit.
- Per-customer cap: the maximum discount amount one customer can accumulate with this rule. Empty = no cap.
- Cap period: how often it resets — Total (all time, never resets), Month, Week or Year.
The per-customer cap does not cut off abruptly: the purchase that would cross the cap gets the discount scaled down to the remaining balance, and only from the next purchase onward does the rule stop applying.
NxM has its own separate limit: Max free units per cart, on the What discount step. That one caps free units; the Cart limit on Advanced rules caps applications. Do not mix them up: for "2x1 with a maximum of 3 free products" use the NxM one.
How it looks in the store
The store always shows the real resolved outcome: if two discounts compete, the customer sees the winner, not both. See What your customer sees.
If you cannot find it
- One discount "Replaces" and another one is still showing. Replace acts only on the units it touches. If the other discount reaches products this one does not, those products keep their benefit. And shipping is never blocked.
- A "Competes" discount does not push another one aside. Competing only happens against rules that are also "Competes" or "Replaces". A "Stacks with everything" rule still adds on top.
- The product with a special price does not get the general discount. That is the absolute-price behaviour explained above, and it cannot be turned off.
- You drag the rows and nothing reorders. The list is sorted by a column. Go back to priority order from the header.
- You do not see "Discounts" in the menu. Sellers do not manage discounts. See Introduction.
Tips
- For an exclusive promotion, use Replaces other discounts and put it at the top of the priority list.
- To let a volume ladder add up with free shipping, leave both on Stacks with everything.
- Check every combination in the Simulator: the step-by-step evaluation tells you which rule won, which one was overshadowed and which one was suppressed by a fixed price.