Discount combinations: what stacks and what doesn’t

Which Shopify discounts can stack: product, order and shipping classes, the Plus-only same-item rule, the 5-code limit and the calculation order.

Classes
Product, order, shipping
Codes per order
5 product/order + 1 shipping
Automatic
Max 25 active
Same item stacking
Shopify Plus
Last checked

In short

Shopify discounts belong to three classes: product, order and shipping. Every store can combine order or product discounts with free shipping, and product discounts on different items; product with order and order with order need an eligible store; two product discounts on the same item need Plus. Both discounts must allow the combination. Customers can use up to 5 product or order codes and 1 shipping code per order.

How to use it

  1. Open each discount and, under Combinations, tick the classes it may combine with; the other discount must allow it too.
  2. Check eligibility: product + order and order + order need a store without checkout.liquid customizations.
  3. Test a cart with both discounts: product discounts apply first, order discounts on the reduced subtotal, shipping last.
  4. If two discounts can’t combine, expect Shopify to apply the better one for the customer.

Code

rules.txt
# Discount classes
Product discounts    specific items or collections
Order discounts      the cart subtotal
Shipping discounts   shipping costs

# Every store can combine
order + free shipping
product + free shipping
product + product (on different items)

# Eligible stores (no checkout.liquid customizations) can also combine
product + order
order + order

# Shopify Plus only
product + product on the same item

# A combination applies only if BOTH discounts allow it
Discounts > (discount) > Combinations > tick the classes it may combine with

# Limits per order
up to 5 product or order discount codes + 1 shipping discount code
up to 25 active automatic discounts (including app discounts)
combinations work on Online Store, Storefront API and POS orders

# Calculation order
1. product discounts  2. order discounts on the reduced subtotal  3. shipping
Two percentage order discounts both use the same subtotal: 10% + 20% of 100 = 30 off
If two discounts can't combine, the customer gets the better one.

Written by Lintel. MIT license: free to use in your own store and in client work.

Limits and edge cases

  • Two percentage order discounts are both calculated on the same subtotal: 10% and 20% of 100 give 30 off, not 28.
  • Combinations work on Online Store, Storefront API and POS orders, not on Facebook, Instagram, Google or other external checkouts.
  • Manual custom discounts (draft orders, POS) and Scripts discounts apply regardless of combination settings.
  • Outside Plus, products in a Buy X get Y discount can’t get further product discounts; the best overall discount wins.

Questions

Can you stack discount codes on Shopify?
Yes, if each discount allows combining with the other’s class. A customer can enter up to 5 product or order codes and 1 shipping code.
Why won’t my Shopify discounts combine?
Both discounts must allow the combination, your store must be eligible for that type, and the cart must qualify. Otherwise Shopify applies the better discount.
Can two discounts apply to the same product?
A product and an order discount can. Two product discounts on the same line item need Shopify Plus.
In what order are Shopify discounts applied?
Product discounts first, then order discounts on the reduced subtotal, then shipping discounts.
  • Checked on a Shopify store on the date shown. Shopify changes its admin often; if a step looks different, the idea usually still works.
  • Examples use placeholder IDs and your-store.myshopify.com. Replace them with your own.
  • MIT license for the code snippets.

Need this built, tested and maintained for your store? See Shopify development.

Have something to build? Let’s talk it through.

Taking a limited number of projects at a time. Every brief is read by an engineer, not a salesperson.

Gencer KarakayaShopify Engineer

An engineer reads your brief, and we reply by email.