Flat coupon illustration: one CAMP15 ticket carries separate order and shipping class tabs beside a receipt.
Journal
Shopify Development & Integrations · 7 min read

Shopify discounts not combining? Check every discount class

When two Shopify discounts work separately but fail together, first check what each discount changes and which other discount classes it allows. A single app-generated code can include both an order saving and free shipping. Treating that code as only an order discount can hide the setting that blocks the combination.

Start with one reproducible checkout: the same products, quantities, customer and delivery destination. Record the result you expected before changing anything. The goal is to identify the failing condition and repair that specific offer, without opening every active promotion to unintended stacking.

Capture the cart that fails

Write down the codes entered, automatic offers already present, exact variants, customer eligibility, market, currency and test time. Check each discount’s dates, usage allowance, purchase minimum and product scope. Shopify bases scheduled discount times on the store’s configured time zone, so a locally timed campaign needs that detail in the record.

Then test the offers separately in a controlled cart. If one fails alone, investigate its eligibility or configuration first. If both work alone and the combined result differs, you have a focused combination test. Do not turn off a store-wide live sale just to create this comparison; use a suitable test environment or an agreed, scoped test window.

Separate the code name from its discount classes

A discount class describes the part of checkout that receives the saving: a product, the order subtotal or shipping. A code name such as CAMP15 does not tell you which classes an app has included. Shopify’s app-discount documentation explains how to inspect the Type column or Discount Classes section for a discount with multiple savings.

The Combinations settings answer a different question: which classes from other discounts may participate? Record both the classes the discount contains and the classes it permits. Confusing those two lists makes a configuration look correct when it is incomplete.

Work through one missing permission

Imagine an illustrative camping shop. An automatic product sale reduces one eligible item. An app-created CAMP15 code includes a 15% order discount and free shipping. Assume the customer, cart, store and shipping destination qualify, and that this is a supported combination for the store.

The product sale allows order discounts but does not allow shipping discounts. CAMP15 allows product discounts. Although the order-saving permission is present, the pair still lacks permission for the shipping class inside CAMP15. Shopify requires the partner discount to allow every class in a discount with multiple savings, as well as the reciprocal combination settings.

Illustrative permission check: CAMP15 contains order and shipping savings. The product sale permits order but initially blocks shipping. Allowing shipping completes that side of the check; CAMP15 must also allow product discounts.
Check the classes inside the code. In this example, changing the product sale’s shipping permission repairs the missing permission only if the store, cart and reciprocal settings are otherwise eligible.

If the business intends both savings to apply, edit the relevant setting on the product sale and retest the same cart. If free shipping should not accompany that sale, keep the restriction and change the promotion’s promise or configuration. A combination can be technically available and still be the wrong commercial choice.

Check the calculation before calling the result wrong

For the same invented example, use a merchandise subtotal of 160 currency units. The product sale removes 20, leaving 140. A 15% order discount removes 21 from that revised subtotal, leaving 119. An eligible free-shipping saving removes a separate shipping charge of 12. These figures exclude tax and are an arithmetic illustration, not a store result.

Illustrative calculation: merchandise 160 minus product saving 20 equals 140; order saving of 15 percent of 140 is 21, leaving 119. Separately, shipping 12 minus shipping saving 12 equals zero. Tax is excluded.
Compare merchandise and shipping separately. The order percentage uses the subtotal after product discounts, so its base here is 140.

Two percentage order discounts use a different calculation from a product discount followed by an order discount. Shopify calculates the order percentages against the same subtotal after product discounts; do not repeatedly reduce that base for each percentage. Check the recorded discount allocations and merchandise subtotal before comparing the final payable total, which can also include tax and delivery charges.

Know when a checkbox cannot solve it

Permissions do not override Shopify’s supported combinations. Current Shopify guidance allows eligible stores to combine order discounts. It also allows configured product discounts on the same line item for Shopify Plus. Multiple shipping discounts cannot apply to the same order. Avoid troubleshooting advice that treats all of those situations as interchangeable.

If the expected combination controls are absent, check the eligibility requirements in the linked Shopify documentation and ask Shopify Support about the store’s configuration. Buy X get Y offers also have specific product-discount restrictions that vary by plan. Test those offers separately rather than assuming the simple CAMP15 example covers them.

An app may add its own eligibility rules or include more classes than its marketing name suggests. Give its support team the discount’s actual classes, permitted combinations and checkout evidence. Installing another app before identifying the rule can add a second source of confusion.

Retest the boundary, then save the evidence

  • Repeat the original cart after the change; record which discounts apply and the resulting amounts.
  • Remove an eligible item or cross a purchase minimum to check the intended failure case.
  • Test the relevant customer and delivery destination, including a customer who should not qualify.
  • Repeat in mobile checkout and verify that the promotion’s stated savings match the final checkout result.
  • Save the discount settings, test time, expected and actual amounts, and the person responsible for reverting the change.

Keep the result small enough to reproduce: one cart, one intended combination and one explained difference. If it still fails, send that record to Shopify or the app owner. It gives them an actionable case instead of a screenshot of a code that “doesn’t work.”

Questions about discount combinations

Does changing combination settings repair earlier orders?
No. Shopify says editing these settings does not affect orders on which the discount was previously used. Handle an existing customer’s order through the store’s normal support process.
Why does only one of the competing discounts remain?
When applicable discounts cannot combine, Shopify selects the best discount for the customer’s cart. Record the intended combination and compare its eligibility and class permissions with the discount that actually applied.
Should every discount allow every combination?
No. Enable only combinations the business intends to honour. Check the resulting merchandise and shipping amounts before making a broad configuration change.
Is a cart preview enough to approve the fix?
Go through checkout with the same variants, quantities, customer and delivery destination. Enter all intended codes and inspect the amounts; Shopify permits this test to stop before payment. A storefront message alone does not demonstrate the checkout result.

Sources

Manish Vasaniya, Shopify Expert, Migration, CRO & AI Commerce Specialist
About the author
Manish Vasaniya
Shopify Expert, Migration, CRO & AI Commerce Specialist

Manish Vasaniya helps ecommerce founders and teams migrate to Shopify, improve conversion, and manage the long-term evolution of complex storefronts. His work connects commerce strategy, UX, engineering, analytics, integrations, and practical AI adoption, giving brands a technical and commercially grounded path from platform decision to post-launch growth.

Shopify discountsApp integrationsCheckout testingOngoing support