Expert answer · 4 min read
Should I cap stacking between referral and first-order discounts?
The short answer
In depth
Should I cap stacking between referral and first-order discounts?
Yes. In most stores, referral rewards and first-order discounts should not stack freely. Both are acquisition incentives aimed at the same moment, and combining them usually means paying for the same customer twice.
Why stacking these two is a problem
A first-order discount and a referral reward do the same job: they convince a new customer to place their first order. When one customer uses both at once, you have not gained two customers; you have gained one customer at double the incentive cost. On a typical product margin, a stacked discount can turn that first order unprofitable, and first orders are exactly where stores can least afford to bleed.
There is also a fairness angle. Customers who discover stacking can feel like they gamed you, and customers who did not discover it may feel cheated later. A clear rule is better for both groups.
Do the math before choosing a policy
Take your contribution margin on an average first order, then subtract the combined cost of both incentives and any reward owed to the referrer. If the result is negative or razor-thin, unrestricted stacking is not a growth strategy; it is a leak. The right policy depends on your numbers, but the math must come first.
The three workable policies
- No stacking. One discount per order, and the customer keeps the better one. This is the most common choice and the easiest to explain.
- Capped stacking. Allow combinations, but cap the total discount at a ceiling your margins can handle, for example a maximum combined percentage. This keeps generosity possible without letting it run away.
- Sequential rewards. The first-order discount applies to order one; the referral reward applies to a later order. Both incentives survive, but they never hit the same order.
How to enforce it in Shopify
Shopify has explicit discount combination settings. On each discount, you choose whether it can combine with other product discounts, order discounts, or shipping discounts. Set your first-order discount and your referral discount to not combine, or structure them so the cap applies. Do not rely on hope; configure it.
Then state the rule where the offers are promoted, one line is enough: "One discount per order." Surprises at checkout cost you the very conversions these incentives were meant to create.
Keep personal offers out of the stacking problem
If you use Growth Suite, its offers are personal, single-use codes created for one hesitant visitor with a real expiry. That design already limits abuse, but the same principle applies: decide explicitly whether these codes can combine with your other discounts, and set the combination rules accordingly. Discount discipline is what keeps incentives profitable.
Frequently asked questions about discount stacking
Is there any case where full stacking makes sense?
Only when your margins comfortably absorb it and the combined incentive demonstrably wins customers you would not get otherwise. Run the math first; in most stores the answer is no.
What about the reward owed to the referrer?
Include it in the cost calculation. A referral that also rewards the existing customer means the new customer's first order can carry three incentive costs at once if you are not careful.
How do I stop discounts from combining in Shopify?
Open each discount in your admin and check its combination settings. Discounts only combine if both sides allow it, so disabling combinations on one of the pair is enough.
Will customers be upset by a no-stacking rule?
Not if the rule is stated up front and they automatically get the better of the two offers. People accept clear rules; they resent discovering hidden ones at checkout.
Growth Suite for Shopify
Put this answer to work in your store.
Growth Suite reads what each visitor is about to do and triggers the right offer at the right second — so the strategy above runs on its own.
14-day free trial · No credit card · Cancel anytime