Black Friday Discount Stacking: What to Allow and What to Block

Every promo code leak, influencer partnership, and layered offer during BFCM is a chance for discounts to compound in ways nobody planned. Here's how to control it on Shopify.
A promo code goes out to an affiliate partner. A separate email offers a sitewide percentage off. A third discount triggers automatically at a spend threshold. Individually, each one is a reasonable, planned offer. Combined on the same order, without anyone deciding whether that combination should be allowed, they can quietly turn a 30% markdown into something closer to 50%, right in the middle of the weekend that generates $14.6 billion in Shopify merchant sales alone.
Stacking isn’t inherently bad. Uncontrolled stacking is. Here’s how Shopify’s combination rules actually work, what tends to go wrong specifically during BFCM, and how to make the resolution explicit instead of accidental.
Why does discount stacking risk spike specifically during Black Friday?
BFCM is the one period of the year when a store is most likely to have multiple active discounts simultaneously, a sitewide sale, an affiliate code, an email-specific offer, a loyalty perk, all live at once, which multiplies the number of possible combinations compared to a normal week running a single promotion. A store running one discount at a time has effectively zero stacking risk. A store running four or five simultaneously, which is common and often intentional during BFCM, has dozens of possible pairwise combinations, most of which nobody explicitly tested before launch.
Promo code leakage compounds this. A code meant for one audience, an affiliate, an email segment, gets shared or discovered more broadly right at the moment traffic peaks, and if that code happens to combine with an already-active sitewide offer, the effective discount can run well past what either offer was designed to deliver on its own.
How does Shopify’s discount combination system actually work?
Every discount belongs to one of three classes, product, order, or shipping, and combination is governed by toggles set per discount: whether it combines with product discounts, order discounts, and shipping discounts, with both sides of a potential combination needing to allow it. Since 2023, automatic discounts and discount codes combine by default in more configurations than Shopify’s earlier, more siloed model allowed, meaning a store that hasn’t revisited its combination settings since that shift may be running combinations that were never explicitly chosen.
The math on percentage stacking often surprises merchants too. If a cart is eligible for 10% off and a second discount code gives 20% off, both percentages calculate against the original subtotal, not compounding on top of each other’s already-reduced total. The combined discount is genuinely 30% off, not the smaller number a naive calculation might suggest, and not the larger, more damaging number an uncontrolled third or fourth discount could produce if it’s also allowed to combine.
What’s the actual BFCM-specific failure mode to watch for?
The most common Black Friday stacking failure is an automatic sitewide discount combining with a promo code that leaked beyond its intended audience, producing an effective discount nobody approved, discovered only after the weekend when margin numbers come in lower than planned. This is precisely why conditional, deliberate offer structures protect margin better than blanket ones: every discount should be redeemed under conditions defined in advance, for the right customer, not combining freely with whatever else happens to be active.
A second common failure involves Buy X Get Y specifically. Products inside an active BXGY promotion become ineligible for additional product discounts, so a leaked or widely-shared code that would apply to a BXGY-eligible product causes Shopify to drop the BXGY discount entirely in favor of the code, silently changing the deal mid-checkout.
How do you make stacking resolution explicit instead of accidental?
A Shopify Functions-based app can attach an explicit selection strategy to every discount rule, deciding in advance what happens when more than one could apply to the same cart, rather than relying on native combination toggles that are binary and don’t express “whichever saves the customer more, but never both.” Flowly: Discount Functions is a free app built on Shopify’s Discount Function framework, with four selection strategies available on every rule:
First — the earliest-created rule applies, ignoring later-matching candidates.
All — every eligible rule applies and stacks, for cases where genuine compounding is intended.
Maximum — whichever rule saves the customer the most wins (product discounts).
Minimum — whichever rule saves the customer the least wins (product discounts).
Building a BFCM discount stack in Flowly means creating each offer as its own rule (Start node, Condition nodes, Apply Discount node) and explicitly setting a selection strategy on each one before the weekend starts, rather than discovering the actual combination behavior from a margin report afterward. Full documentation on selection strategies and how they interact with Shopify’s own combination settings is on Flowly’s product page.
Stacking control approaches compared
No explicit control (native defaults) | Native combination toggles | Flowly selection strategies | |
Cost | Free | Free | Free |
Predictable outcome on overlap | No | Partially | Yes |
Controls “best deal wins” specifically | No | No | Yes, via Maximum |
Catches missing logic before launch | No | No | Yes, incomplete flows can’t save |
FAQ
How many discount codes can combine on a single BFCM order?
Up to 5 product or order discount codes plus 1 shipping discount code, per Shopify’s discount combination rules, a real jump from the single-code restriction Shopify enforced before 2022, and a large enough number that an unreviewed combination setting can produce a genuinely unplanned discount depth.
Should every Black Friday discount allow combination by default?
No. The safer default is combination disabled unless a specific pairing has been deliberately tested and approved, since the cost of an unplanned combination during peak volume is much higher than the cost of a customer occasionally not being able to stack two offers.
What’s the fastest way to audit stacking risk before Black Friday?
List every discount planned to be active simultaneously during BFCM, then check each pair against Shopify’s combination settings and, if using Flowly, each rule’s selection strategy. A handful of active discounts produces a manageable number of pairs to check manually before launch.
Does a leaked promo code stop working once discovered?
Not automatically. Deactivating or replacing a leaked code requires manual action, which is exactly why scoping discounts to genuinely restricted eligibility, a customer segment, a specific email list, rather than a code that can be shared, reduces this risk category entirely.
Every discount active during BFCM should be a deliberate choice, not an accident of default settings. Download Flowly directly from the Shopify App Store to build your BFCM discount stack with explicit resolution logic, or book a call with Subscribfy’s team if you want a second set of eyes on your full stacking plan before the weekend starts.

Book a meeting with our sales team now!
Create predictable revenue from the customers you already have.