A shopper sees 20% off a product, 10% off the order, and free shipping. Do they receive 30% off the original merchandise total? Does the shipping threshold use the original cart or the discounted cart?
The answer starts with the Shopify discount calculation order: product discounts apply first, order discounts apply to the revised subtotal, and shipping discounts apply last. That sequence changes percentage savings, threshold results, and the amount you keep.
This guide focuses on the calculation sequence—not the broader question of which discounts can stack. For compatibility rules, see how Shopify discount combinations work. You will see the math behind common carts and get a repeatable prelaunch check.
Shopify discount calculation order at a glance
When eligible discounts can combine, Shopify applies the three classes in this order:
- Product discounts reduce eligible line items.
- Order discounts reduce the revised merchandise subtotal.
- Shipping discounts reduce the selected shipping charge last.
Original merchandise subtotal → product discounts → revised subtotal → order discounts → discounted merchandise total → shipping discount
Taxes are outside the examples below because tax calculations depend on the customer's location and store settings.
Calculation order tells you how compatible discounts are valued; it does not make incompatible discounts combine. If offers cannot combine, Shopify applies the best eligible discount or combination for the customer.
What each discount class changes
Product discounts change line-item prices first
A product discount targets specific merchandise. Percentage-off items, fixed savings on an item, quantity breaks, and many Buy X Get Y offers operate at this level.
Because product discounts run first, their savings reduce the base used by the next stage. If a $100 item receives 20% off, the order-discount stage sees $80—not $100.
Order discounts use the revised subtotal
An order discount applies across the eligible order subtotal. When it combines with a product discount, Shopify calculates it after product savings have reduced the merchandise subtotal.
This is why 20% off a product plus 10% off the order is not 30% off the original price. On a $100 eligible item, the customer saves $20 first and $8 second: $28 total, or an effective 28%.
Shipping discounts change the shipping charge last
A shipping discount reduces an eligible shipping rate, including a free-shipping offer. It does not reduce merchandise prices.
Delivery address, shipping profile, market, rate restrictions, and the discount's minimum requirements can all affect eligibility. Treat “shipping applies last” as the calculation sequence, not a promise that every cart receives the offer.
Worked cart 1: all three discount classes
Assume this cart qualifies and the promotions combine:
| Cart component | Before discounts |
|---|---|
| Two shirts at $50 | $100.00 |
| One jacket | $100.00 |
| Merchandise subtotal | $200.00 |
| Standard shipping | $15.00 |
The promotions are 20% off the shirts (product), 10% off the order (order), and free standard shipping (shipping).
Step 1: product discount
Twenty percent of the $100 shirt total is $20.
$200.00 − $20.00 = $180.00 revised subtotal
Step 2: order discount
The 10% order discount uses $180, not $200.
$180.00 × 10% = $18.00
$180.00 − $18.00 = $162.00 discounted merchandise total
Step 3: shipping discount
Free shipping removes the $15 charge.
| Calculation stage | Customer pays |
|---|---|
| Original merchandise | $200.00 |
| After product discount | $180.00 |
| After order discount | $162.00 |
| After shipping discount | $162.00 before tax |
The customer saves $38 on merchandise and $15 on shipping. Merchandise savings equal 19%—not 30%—because only half the cart received the product discount and the order discount used the revised subtotal.
Worked cart 2: why 20% + 10% becomes 28%
For one $100 product eligible for both offers:
- Product discount:
$100 × 20% = $20 - Revised subtotal:
$100 − $20 = $80 - Order discount:
$80 × 10% = $8 - Final merchandise total:
$80 − $8 = $72
The reusable formula is:
Final amount = Original amount × (1 − product rate) × (1 − order rate)
For this example: $100 × 0.80 × 0.90 = $72.
Do not add percentages when planning margin. Model each stage in Shopify's order.
Worked cart 3: multiple order discounts behave differently
Shopify states that when multiple percentage-based order discounts combine, each is calculated on the same order subtotal after product discounts.
If product discounts leave $100 and two compatible order discounts offer 10% and 20% off:
- 10% discount: $10
- 20% discount: $20
- Total order savings: $30
- Merchandise total: $70
That differs from sequential compounding, which would leave $72. Shopify also documents that when a percentage order discount combines with a fixed-amount order discount, the percentage applies first and the fixed amount follows.
Model discounts by class and value type. One generic “stacking” formula will not cover every promotion.
Thresholds are where calculation mistakes become expensive
A discount can be calculated last without using the final total as its qualification base. Minimum-purchase rules depend on the discount configuration and discount type.
For amount-off product and order discounts, Shopify says minimum purchases use the cart subtotal and exclude taxes, shipping, and duties. Product-specific offers count only eligible products. For shipping offers and price-based rates, test the exact setup because the qualifying amount can change what shoppers see.
Example: a cart drops below the advertised number
A shopper starts with $120 of merchandise. A $30 product discount reduces it to $90. Your storefront promises “Free shipping over $100,” but the shipping setup evaluates discounted cart value.
The shopper may expect free shipping from the $120 message while checkout sees $90. The exact result depends on configuration, but the risk is clear: a progress bar using a different subtotal from checkout creates a broken promise.
To prevent it:
- Define whether the threshold uses original or discounted merchandise value.
- Make the product-page and cart widget use the same basis as checkout.
- Test below, exactly at, and above the threshold with product discounts active.
- State exclusions or post-discount requirements beside the offer.
How calculation order affects margin
Customer savings and merchant cost are not the same. A shipping discount may be invisible in a merchandise-discount percentage while still costing you the full carrier charge.
Use:
Contribution after promotion = discounted merchandise revenue − cost of goods − shipping subsidy − payment fees − variable fulfillment costs
For the first cart, assume $90 cost of goods, $12 merchant-funded shipping, $8 payment and fulfillment costs, and $162 revenue:
$162 − $90 − $12 − $8 = $52 contribution after promotion
Compare that with the same cart without discounts. Then repeat for the deepest valid combination. Free shipping can create a large fixed cost on low-margin or remote orders.
A five-step prelaunch calculation check
1. Label every promotion by class
Write product, order, or shipping beside each offer. For app-created discounts with multiple savings, record every included class.
2. Confirm combination settings
Shopify combines eligible discounts only when their settings permit it. Check both promotions in Shopify admin → Discounts → Combinations. App discounts must also support Shopify's combination behavior.
3. Build the math in calculation order
Use line items first, revised subtotal second, and shipping last. Keep percentage order discounts, fixed order discounts, and shipping costs on separate rows.
4. Test boundary carts in checkout
Create carts below, exactly at, and above every threshold. Include mixed eligible and excluded products, a high shipping rate, and the deepest intended combination.
5. Compare the storefront message with checkout
Check the product page, cart drawer, cart page, shipping step, and checkout. Progress, labels, final shipping charge, and promotion copy should tell one story.
Common Shopify discount calculation mistakes
Adding percentage discounts together
Product and order percentages use different bases. Calculate each stage instead of advertising a percentage checkout cannot reproduce.
Treating free shipping as a zero-cost reward
The shopper pays zero, but the merchant usually funds fulfillment. Include that subsidy in the promotion model.
Assuming calculation order overrides compatibility
The sequence only describes eligible combinations. Incompatible discounts may be replaced by Shopify's best eligible result.
Using the original subtotal in a cart progress message
If checkout evaluates a discounted amount, the message can announce a reward the cart no longer qualifies for.
Testing only one ideal cart
Mixed carts, exclusions, fixed discounts, rounding, and threshold boundaries expose problems a clean example will not.
Make multi-stage promotions clearer with Multiscount
Multiscount helps Shopify merchants build tiered and stackable promotions using native Shopify Functions, including volume discounts, order goals, free gifts, and shipping discounts. Product-page and cart widgets can show the next reward before checkout, while checkout messaging keeps savings visible.
If your promotion spans quantity, cart value, and shipping goals, explore Multiscount on the Shopify App Store. Model the sequence first, then use consistent messaging so customers understand what they unlock.
Frequently asked questions
What is the Shopify discount calculation order?
Eligible product discounts apply first, order discounts to the revised subtotal second, and shipping discounts last. Combination settings still determine what can apply.
Does 20% off a product plus 10% off the order equal 30% off?
No. On a $100 item, the product discount reduces it to $80 and the order discount removes $8. The final price is $72—an effective 28% saving.
Are two percentage order discounts compounded?
Shopify states that compatible percentage order discounts are each calculated on the same post-product-discount subtotal. On $100, 10% and 20% remove $30 total.
Does free shipping reduce the order subtotal?
No. It changes the eligible shipping charge and does not reduce merchandise prices.
Why did Shopify apply one discount instead of the full sequence?
Calculation order applies only to compatible, eligible discounts. Otherwise Shopify selects the best eligible discount or combination.
Install Now