Emergency diagnostic

Shopify discount code not working?

A rejected discount code mid-campaign burns ad spend and support hours at the same time. Run these checks in order; they're sorted by how often each turns out to be the real cause.

First: get the exact failure from one customer: the code they typed, the cart contents, their country, and the exact error text. "Invalid", "not eligible", and a discount that applies then disappears at payment are three different problems.
1

Re-check the code's conditions against a real cart

Why it happens

Most 'broken' codes are working exactly as configured: a minimum spend the cart doesn't meet, a collection restriction, an expiry set in the wrong timezone, or one-use-per-customer already consumed.

Check

Discounts → the code → read each condition against the exact failing cart: amount, products, customer eligibility, usage limits, active dates.

Fix

Loosen the failing condition, or fix the campaign copy so customers know the constraint (minimum spend is the classic silent killer).

2

Check combination settings

Why it happens

Shopify only stacks discounts when Combinations is enabled on BOTH sides, and only for compatible types. A cart already carrying one discount rejects the second code as invalid, with no explanation.

Check

Open both discounts → Combinations section → is the pairing (product + order + shipping) actually allowed on each?

Fix

Enable the right combination checkboxes on both discounts, or scope the campaign so only one discount is in play per cart.

3

Look for an automatic discount fighting the code

Why it happens

Automatic discounts apply first. If the code can't combine with the automatic one, checkout rejects the code, and merchants forget the automatic discount exists because nobody types it.

Check

Discounts → filter Automatic → is one active that touches the same products as the failing cart?

Fix

Enable combinations between them, pause the automatic discount for the campaign window, or scope them to disjoint collections.

4

Disable your discount app and retest

Why it happens

Bulk-code generators, stacking apps, and upsell apps inject their own discount logic. A bad app update mid-campaign shows up as codes randomly failing.

Check

Apps → sort by last updated → any discount-touching app updated recently? Disable it, apply the code again.

Fix

Keep it off and report to the developer with your reproduction, or roll back if the app supports version pinning.

5

Check Markets and currency exclusions

Why it happens

Fixed-amount discounts are denominated in your store currency. In other markets, conversion rounding or market-level settings can make a code fail or produce a total customers dispute.

Check

Test checkout with an address in the failing customer's country and the local currency selected.

Fix

Use percentage discounts for international campaigns, or configure the discount per-market where precision matters.

6

Check whether checkout customizations block it

Why it happens

On Plus, discount Functions (and formerly Scripts, sunset August 2025) can override or strip codes. Migrated Scripts are the top suspect when discount behavior changed without anyone touching the discounts.

Check

Settings → Checkout → review active Functions/customizations. Did discount behavior change around a deploy or the Scripts migration?

Fix

Disable the Function in a test window and retry the code. If that's the culprit, fix its logic; Functions fail silently from the customer's point of view.

7

Test subscription and draft-order paths separately

Why it happens

Subscription checkouts (ReCharge, Bold) and draft-order invoices run different discount logic than the standard checkout. A code can work in one path and fail in another, doubling the confusion.

Check

Apply the code on a normal product AND on a subscription product (or draft invoice) separately. Same result?

Fix

Configure the discount inside the subscription app for subscription paths; Shopify codes don't automatically cross that boundary.

8

Reproduce it exactly like the customer

Why it happens

If steps 1-7 pass, the failure is specific to the customer's exact context, and support without a reproduction is guesswork.

Check

Same product, quantity, country, and device. Screenshot the exact error wording at the exact step it appears.

Fix

With a clean reproduction, either the culprit becomes obvious or you have precisely what Shopify support needs to trace it in hours instead of days.

Fixed it? Check what else is leaking.

Run the free 60-second Shopify audit, it scores your store's trust signals, conversion basics, and SEO in one pass.

Free store audit

The expensive version of this bug

A discount code that breaks quietly on Tuesday is annoying. The same code breaking during your BFCM email blast, after you paid for the traffic, is a five-figure problem, and you find out from angry replies.

Tracefox checkout tests include a coupon step: your most important code gets applied on every scheduled run, and you get an alert the moment it stops working or the total comes out wrong.

FAQ

Why does Shopify say my discount code is invalid when it exists?

Nine times out of ten the code is real but a condition isn't met: minimum spend, restricted collections, expired dates, one-per-customer already used, or the code can't combine with an automatic discount already on the cart. Read the code's conditions literally against the exact cart the customer had.

Why won't two discounts combine at Shopify checkout?

Combinations must be explicitly enabled on both discounts, and only certain types combine (product, order, and shipping discounts have different rules). If combining isn't enabled, the second code is rejected as invalid rather than explained.

Why does my discount work for me but not for customers?

Usually eligibility or geography: the code is limited to specific customer segments, the customer already used a one-per-customer code, or they're checking out in a different market/currency where a fixed-amount discount behaves differently. Test with the customer's country and a fresh account.

How do I catch a broken discount code before a campaign goes out?

Test it automatically. Tracefox checkout tests include a coupon step: it applies your code on a schedule and alerts you if the discount stops applying or the total is wrong, before the email blast, not after.

Never launch a campaign on an untested code again

Tracefox replays your checkout with your coupon applied, on a schedule, across desktop, mobile, and tablet. Broken code or wrong total = instant email + Slack alert with a screenshot.

Test your discount flow free

7-day free trial · First test running in 5 minutes · No credit card