Shopify BFCM discount stacking: a checkout test matrix
-
Before announcing a BFCM offer, test it alongside the discounts shoppers already have: welcome codes, loyalty rewards, automatic promotions and shipping incentives. The offer shown in a banner is only a promise; the basket and checkout determine what the customer actually receives.
Use a small test matrix and record the intended result before running each case. That makes an unexpected saving or rejected code easier to diagnose.
Start with the actual discount classes
Shopify distinguishes product, order and shipping discounts. Combinations depend on eligibility, the items in the cart and the combination settings of the discounts involved. Do not assume two promotions will combine because each works by itself.
Also distinguish an existing sale price from a discount code. A code can operate on an already reduced selling price, so checking only the code's displayed percentage can miss the true reduction from the original price.
Build the matrix before the launch rehearsal
Test basket Question to answer One eligible product Does the advertised offer apply? One excluded product Does the exclusion work and read clearly? Eligible and excluded items together Which lines receive savings? Sale basket plus welcome code Is the intended combination accepted or rejected? Basket below and above the shipping threshold What shipping charge actually appears? Bundle plus loyalty or app-generated offer Is the final saving still acceptable? Different market or currency, where used Are eligibility and amounts consistent? Basket after the promotion ends Are expired discounts and claims removed? For every row, save the discount names, basket contents, destination, expected total and actual total. Include the timezone used for scheduled start and end times.
Understand the arithmetic you are testing
One important distinction in Shopify's documented rules: eligible percentage order discounts are calculated against the original subtotal. For example, two such discounts of 10% and 20% on $100 produce $30 in combined savings, not a sequence that leaves $72. Product-then-order combinations follow a different sequence. Verify the rule for the classes you actually use rather than applying this example to every promotion.
Treat the example as an explanation of the documented combination behavior, not a suggestion to offer both discounts.
Rehearse safely
Choose a Shopify-supported testing method and account for its effect on a live store. Shopify warns that customers cannot place live orders while payment providers are in test mode. Plan that test deliberately and confirm the live configuration afterward.
Check the order record and customer-facing message, not only the cart subtotal. Give support a short explanation of each intentional exclusion and a route to escalate a basket that behaves differently.
Launch gate: Do not advertise an offer until the highest-risk rows have an expected result, a passing test and an owner.
Merchant discussion: Which combination has caused the most confusion in your store: welcome codes, loyalty offers or shipping discounts?
Continue on Eggflow Blog
Extend the discount matrix into a complete purchase rehearsal with the BFCM store stress test on Eggflow Blog, especially its offer-interaction and launch-acceptance checks.
Sources and further reading
Platform rules checked October 31, 2026; eligibility and features can change.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login