Our Apps Have Driven
5X AOV | 2X Conversions | $30M+ Additional Revenue
5X AOV | 2X Conversions | $30M+ Additional Revenue
5.0 (3000+ Reviews)
You have two promotions active. Both are confirmed in the Shopify admin. You run a test order, and only one appears at checkout. No error. No explanation.
Just one discount missing, and no obvious place to look.
Discount stacking problems on Shopify almost always come from one of four places:
This guide covers six problems merchants run into most often, with a specific diagnostic and fix for each one.
Before diagnosing a specific problem, a short mental model helps. Shopify breaks discounts into three layers: Products, Order Totals, and Shipping. Stacking problems usually occur when the rules you set for these layers conflict with each other.
Each discount also has combination settings that control which other types it can run alongside.
For example, a product discount can be combined with order discounts, shipping discounts, or both.
These settings must be compatible on both sides of a pair. If your product discount allows combination with order discounts but the order discount does not allow combination with product discounts, the combination fails regardless of how the product discount is configured.
Even with the correct settings in place, some discount types have restrictions that no configuration can override.
Understanding which layer is causing the failure is the first step before changing any setting.
What you see: Both discounts are confirmed active in the admin. A test order shows only one at checkout, with no error.
The Cause: Shopify's discount stacking depends on both the discount type and combination settings:
The Fix:
For how to structure tiered spend conditions, the guide to tiered pricing on Shopify covers both quantity-based and spend-based tier structures.
What you see: The offer is visible in the cart. By the time the customer reaches payment, it is gone.
For the full setup breakdown, including eligibility rules and anti-gaming configuration, see the BOGO setup guide, which covers both native and app-based approaches.
What You See: A customer triggers two separate BXGY campaigns in one order and receives free items from both, more than intended.
The Cause: Two BXGY campaigns are running simultaneously with non-overlapping buy conditions, so a customer who satisfies both in a single cart triggers both rewards. Since the free items are different line items, Shopify fires both offers. This is expected behaviour, not a bug.
For example, Campaign A gives a free conditioner when buying 2 shampoos. Campaign B gives a free hair mask when buying 2 styling products. A customer who buys both qualifies for both free items simultaneously.
The Fix:
What you see: Customers are receiving a larger discount than what was configured for their cart size or spend level.
For the full breakdown of how to set up tiered discount campaigns correctly, the guide to volume discounts on Shopify covers four setup methods and the combination settings relevant to each.
What You See: The storefront progress bar confirms the customer has unlocked free shipping. Checkout charges full shipping anyway.
The Cause: Progress bar widgets calculate eligibility on the frontend using cart data, but have no visibility into how checkout resolves competing discounts. If a separate shipping discount is active in the background without combination permissions enabled, Shopify drops one of the two shipping discounts at checkout. The widget doesn't know this happened, so it continues showing "free shipping unlocked" while the customer is charged.
This is a combination settings conflict, not a hard platform rule. Shopify can stack shipping discounts when both are configured to allow it.
The Fix:
What you see: A sitewide promo code or automatic discount does not apply as expected to a bundled cart.
There is also a product-targeting issue specific to the Shopify Bundles app. Discounts must target the parent bundle product, not the individual components. A sitewide automatic discount set to apply to "all products" may skip the bundle parent entirely, making it look like the promo code is broken when it is actually just misapplied.
Before launching any promotion alongside a bundle, confirm which pricing method your bundle app uses, check that combination settings are enabled on both sides, and verify that your promo code explicitly includes the bundle parent product.
So, always test the combination in a development or test environment before putting it in front of customers. For a comparison of how different bundle apps handle their combination settings, the guide to Shopify bundle apps with discount settings covers how each app structures its discount combination logic.
Kite doesn't bypass Shopify's rules: it just makes them much easier to manage.
Because Kite works within Shopify's framework, you still need to make sure the "allow combinations" boxes are checked on both your Kite campaigns and your native Shopify discounts!
To avoid frustrated customers and lost sales, test your discounts using this quick checklist:
Not by default. Normally, Shopify only allows one automatic discount per order. To combine them, you must turn on the combination settings for both discounts.
Shopify double-checks the entire cart right before a customer pays. If the customer changes a size, deletes an item, or types in a coupon code at the last second, it can instantly disqualify them from the discount they saw in their cart.
No. Kite has to follow the exact same rules as Shopify. If you use Kite alongside regular Shopify discounts, you still need to make sure both sides are set up to allow stacking. Kite just gives you one clean dashboard to manage all these settings in one place.
Shopify only allows you to have 25 active automatic discounts at one time. Some sales apps use up multiple slots for a single campaign. If you hit this limit, new discounts simply won't turn on, and you won't get an error message. To fix it, just turn off old, expired discounts to free up space.
Create a test order using a staff account. Instead of building a "perfect" cart, act like a real customer: add random items, swap sizes, remove things, and try typing in different coupon codes. Make sure the discounts look right at the final payment screen, not just in the cart preview.
.avif)

Free webinar
BFCM prep, live on one store.
We take one Shopify store through the whole BFCM funnel on screen, from AI search to checkout. You leave with the playbook to run the same on yours.
Thu, Oct 15
1 PM ET · 10 AM PT
60 minutes
Can't make it live? Register anyway. The recording and the playbook go to everyone who signs up.
Save your free seat
BFCM Prep Live. Thu, Oct 15 at 1 PM ET, 10 AM PT, 6 PM UK. 60 minutes.