Skip to main content

Why did my customer's discount code fail in the cart?

Each failure message names a different cause. Ask the customer which message they saw, then check that specific thing in Shopify.

Written by Eddie Lavandera

Ask the customer which message they saw. Atlas returns a specific message for each cause, so the wording tells you exactly what to check in Shopify. "It did not work" could be any of six things; This discount code has expired is one.

In this article:


The messages and what each means

Message

Cause

Where to fix it

Discount code "{code}" applied!

Success

Nothing to fix

Please enter a discount code

The field was empty

Nothing to fix

This discount code is not valid

The code does not exist, or was mistyped

Check spelling, then check the code exists in Shopify

This discount code is not currently active

The code exists but is disabled

Enable it in Shopify

This discount code is not yet active

Its start date is in the future

Change the start date

This discount code has expired

Its end date has passed

Change or remove the end date

This discount code has reached its usage limit

The total usage cap is spent

Raise the limit or create a new code

Unable to validate discount code. Please try again.

The check itself failed

Usually temporary. Ask them to retry.

💡 This discount code is not valid is the one to look at hardest. It covers both a typo and a code that does not exist, so check the exact string the customer typed before assuming your code is broken. Codes are usually case-insensitive, but trailing spaces from a copy and paste are a real and common cause.


Codes are created in Shopify, not Atlas

Atlas provides the field and validates what customers type. The codes themselves live in your Shopify admin under Discounts, with the discount method set to Discount code.

If you have not created a code in Shopify, no code will work in the cart. There is no separate list of Atlas codes.


Checking a specific code

  1. In your Shopify admin, go to Discounts.

  2. Find the code and open it.

  3. Check each of these:

Check

What to look for

Status

Active, not draft or expired

Active dates

Start date not in the future, end date not passed

Usage limits

Total limit not reached, and per-customer limit not already used by this customer

Minimum requirements

The customer's cart meets any minimum amount or quantity

Customer eligibility

The code is not restricted to a segment the customer is not in

Products or collections

The code applies to something in their cart

ℹ️ A per-customer usage limit produces a confusing pattern: the code works for you when testing and fails for a returning customer who already used it. Check this before concluding the code is broken.


Codes that work at checkout but not in the cart

If a code applies fine when entered at Shopify's checkout but is rejected in the cart drawer, the cause is usually a condition that cannot be evaluated yet.

Shipping-related conditions are the clearest case: a code requiring a specific shipping country cannot be validated in the cart, because the customer has not entered an address.

For codes like these, remove the field from the cart or tell customers to enter the code at checkout instead.


Whether to offer the field at all

⚠️ A discount code field on a store that rarely issues codes increases cart abandonment. Customers see the box, leave to search for a code, and some do not come back. If your promotions are automatic discounts rather than codes, turn this module off.

Keep it enabled when you actively issue codes through email, partnerships, or customer service. Turn it off when you do not.


Still failing

Start a chat from the bubble in the bottom right of Atlas, or email support@helloatlas.io. Either way, include:

  • your store URL

  • the exact code

  • the exact message the customer saw

  • a screenshot of the discount's settings in Shopify

  • roughly what was in the cart at the time

The exact message is the single most useful item, because it narrows the cause to one specific check.


Next steps

Did this answer your question?