Skip to main content

My discount code isn't working at checkout

Common reasons popup discount codes get rejected at Shopify checkout, and how to fix each one.

Written by Engineering team

Symptom: Customers are telling you the discount code (or promo code) from your popup is being rejected at checkout, or showing an "invalid" or "expired" error.

TL;DR. Discount code rejections at checkout usually come from one of: the code's actual restrictions, a typo or capitalization mismatch, an expired or exhausted code, or a discount pool that ran dry.

1. Is the code typed correctly?

Codes in Shopify are case-insensitive at checkout in most cases, but check anyway. Ask the customer to:

  1. Open the popup again (or check their reward email).

  2. Copy the code using the Copy code button.

  3. Paste it at checkout (don't retype).

If your popup doesn't have a Copy button, add one. See Step types, multi-channel collection, and rewards.

2. Has the code expired?

In Shopify admin, Discounts, find the code and check:

  • Active dates: if today's after the end date, the code is dead.

  • Usage limit: total uses (for example, "100 redemptions") or per-customer limit ("1 use per customer").

If the visitor already used the code once and the limit is "1 per customer," subsequent checkouts will reject it.

3. Are there cart restrictions?

Shopify discount codes can have:

  • Minimum purchase amount ("$50 or more").

  • Specific collections / products ("only Apparel").

  • Customer eligibility ("First-time customers only").

If the customer's cart doesn't meet the restrictions, Shopify rejects the code without explaining which restriction failed.

Common gotcha

A popup advertises "10% off your order," but the code is restricted to a single collection. The visitor adds items from a different collection and the code is rejected.

4. Is the discount pool empty?

If you used a unique-per-subscriber pool (see Step types, multi-channel collection, and rewards) and the pool ran out:

  • New subscribers may get no code assigned.

  • Or, the popup may fall back to a static code if you configured one.

To check:

  1. Go to Forms > Discount pools (or your dashboard area for pools).

  2. Find the pool used by this popup.

  3. Look at Available codes. If it's near zero, top up the pool.

5. Is there a code collision?

Shopify rejects a discount if the customer has already applied another. Auto-applied discounts (price rules with conditions) can silently consume the "one discount per order" slot. If the customer's cart has an automatic discount, the popup code stacks on top only if both discounts allow stacking.


Still stuck? Share these with our team

If the code still isn't working after the steps above, share these so we can investigate:

  1. The exact code the customer typed.

  2. A screenshot of the cart contents.

  3. The Shopify discount admin URL for that code.

  4. Any error message Shopify showed at checkout.

Need help? Talk to our team via the in-app chat at the bottom right of your dashboard.

Did this answer your question?