Overview
Shopify's discount combination system is more flexible than it used to be, but the rules still trip up merchants every day. This FAQ covers the three discount classes (product, order, and shipping), how they interact, what the real stacking limits are, and how bundle app discounts play with coupon codes and automatic discounts. Whether you are running a seasonal sale alongside product bundles or layering a welcome code on top of a volume deal, these answers will help you avoid checkout errors and unexpected margin loss.
Contents
Discount Classes and Types
What are Shopify's discount classes and why do they matter?
Every discount you create in Shopify belongs to one of three classes based on what it applies to: product discounts (which target specific items or collections), order discounts (which target the cart subtotal), and shipping discounts (which reduce delivery costs). These classes matter because the combination system is class-based. When you choose to let a discount combine with other discounts, you select which classes of discount it can combine with. For example, a product discount code can be configured to combine with order discounts or shipping discounts, but the pairing must be enabled on both sides.
What types of discounts can I create in Shopify?
Shopify offers several discount types: amount off discounts (a percentage or fixed amount off an order, such as 25% or $50 USD), Buy X Get Y discounts (buy qualifying items to receive a benefit), and free shipping discounts that let you set up free shipping for customers that meet certain criteria. Each of these can be delivered as either a discount code (the customer enters it manually) or an automatic discount (applied when cart conditions are met). You can also create other types of discount by using a third-party app from the Shopify App Store. Apps built on Shopify Functions can introduce custom discount logic, such as tiered volume pricing or loyalty-based rules, while still using the same class and combination system.
How does discount eligibility work?
Eligibility determines who qualifies for a discount and under what conditions. When creating any discount, you can restrict it by customer segment (all customers, specific segments, or individual customers), set minimum purchase amounts or minimum item quantities, and limit total usage or enforce one-use-per-customer rules. To combine product discounts with order discounts or order discounts with other order discounts, your store must not use any checkout.liquid customizations or features. If your store still relies on checkout.liquid, you will not see the combination checkboxes in the discount editor. Multiple discounts are applied to an order only when the setting on each discount allows the combination. Both discounts must explicitly permit combining with the other's class; a one-sided setting is not enough.
Stacking Rules and Limits
Which discount combinations actually work on Shopify?
Shopify only allows one product discount per line item; you cannot stack two product-level discounts on the same item. Order discounts can combine with product discounts if both allow combinations. Shipping discounts cannot combine with each other. In practical terms, the combinations that work cleanly are: a product discount plus an order discount on the same cart, a product discount plus a shipping discount, and an order discount plus a shipping discount. One checkout can have multiple order-level discount codes applied, but there is always only one product-level discount per product and one free shipping discount.
What is the 5-discount code limit per order?
Customers can use a maximum of 5 product or order discount codes and 1 shipping discount code on the same order. That is 6 discount codes total. On top of those codes, you can have a maximum of 25 active automatic discounts (this total includes app-based discounts), and a maximum of 25 automatic discounts can be applied on the same order. Automatic discounts do not count against the 5-code limit because they are applied without the customer entering anything. However, every automatic discount still needs its combination settings configured correctly to work alongside codes.
What happens when two discounts conflict at checkout?
If two or more discounts are applied, but can't be combined due to the discount combination setting or the content of the cart, then the best discount for the customer's cart is always applied. If a customer enters more than one discount code during checkout that can't be combined, then the following message displays: "Discount couldn't be used with your existing discounts." This error is a common cause of abandoned checkouts. To avoid it, audit your active discounts and make sure the combination checkboxes match your intended promotions.
In what order does Shopify calculate stacked discounts?
Shipping discounts apply last. Product discounts apply before the order subtotal calculates at checkout. This means that order discounts calculate based on the subtotal after the product discount is applied. This sequence matters for math. If a customer has a 10% product discount and a $15 order discount, the product discount reduces the line item price first, and then the $15 comes off the already-reduced subtotal. The biggest danger is accidental double-discounting: a 15% automatic + 20% code gives 32% off, not 20%. Always test the combined result before launching a promotion.
Bundle Discounts and Coupon Interactions
How do Shopify bundle discounts interact with coupon codes?
Product bundles support discount codes and automatic discounts, including supported discount combinations. When creating product or collection-specific discounts, include the parent bundle product to apply the discount. The discount won't apply if you select only the component products. This is a critical detail: because bundles appear in the cart as a parent product that expands into components, your discount must target the parent bundle product (or a collection it belongs to) rather than the individual items inside it.
When a discount is applied to a bundle, the discount calculates on the parent bundle product first. The amount then allocates to component products by weighted price, and taxes calculate on the individual components. So if you offer a 10% coupon and the customer also has a bundle with built-in savings, the coupon discount is calculated on the bundle's total price and then distributed proportionally to each component for tax purposes.
For a deeper look at how discounts interact with bundles built on the Shopify Bundles platform, Biscuits Bundles has a dedicated help article: How Shopify Discounts Work with Product Bundles.
Can I combine a Buy X Get Y discount with a product bundle?
Products that are part of a Buy X get Y discount are ineligible for additional product discounts. This is to prevent unintended stacking of discounts on the same items. If a customer applies a discount code that would apply to products in an active Buy X get Y discount, then the Buy X get Y discount is removed and only the discount code applies. This is one of the biggest gotchas for merchants running bundles alongside BOGO promotions. Consider using order discounts instead of product discounts, which can combine with Buy X get Y discounts on eligible stores. That way the BOGO stays intact on the products while the order-level discount applies to the subtotal.
How do bundle apps like Biscuits Bundles handle pricing alongside Shopify discounts?
Bundle apps built on the Shopify Bundles platform (using Cart Transform) can apply their own pricing adjustments, such as fixed price, percentage off, amount off, or volume discount tiers, at the cart level before Shopify's discount engine runs. A change to the original price of the expanded item through price adjustments includes discounts or additional charges that affect the final price the customer pays. Price adjustments are often used for promotions, special offers, or any price changes that the customer qualifies for.
Biscuits Bundles supports several pricing modes: sum of products, fixed price, percentage or amount off, and volume discount tiers. Because these adjustments happen through Cart Transform, they are separate from Shopify's discount combination system. That means a customer can still apply a compatible coupon code or automatic discount on top of the bundle's built-in savings, as long as the discount targets the parent bundle product and the combination settings are enabled.
Tip: Always test your bundle plus discount scenario in a real checkout before going live. Add the bundle to your cart, apply the code, and verify the final price matches your expectations.
Testing and Troubleshooting
How do I check which of my active discounts can combine?
In your Shopify admin, go to the Discounts page. There's a Combinations column that shows which discount classes (product, order, or shipping) each discount can be combined with. You can also filter the list to show only discounts that combine with a specific class. Consider the following practices when managing your discount combinations: test your discount combinations, monitor your automatic discount limits (25 active max), check if an active discount is combinable, and edit existing discounts to be combinable. Make it a habit to review this page before every major sale.
Side note: Discounts can only be combined on orders that are made through the Online Store, Storefront API, and Shopify POS. If you sell through other channels, discount stacking may not apply.
How do I prevent accidental over-discounting?
The most common mistake is enabling combination settings broadly without testing the math. If you combine the Product discount class with the Order discount class, all existing product discounts will be able to combine with every active order discount. That is an all-or-nothing toggle per class; you cannot selectively pair specific discounts within the same class. To protect your margins, keep these tips in mind:
Calculate the worst-case combined discount before enabling any new pairing.
Use maximum discount caps (where available through apps) to set a ceiling on total savings.
Limit who can use the code by restricting customer eligibility or setting usage limits.
Set clear start and end dates so promotions do not accidentally overlap.
Run a test order through your live checkout to verify the final price before announcing any promotion.