Online OrderingTroubleshootingBeginner

Promo codes on your website: how they work and why codes get rejected

Last verified: 2026-07-04

How promo codes work on your website

Customers enter a promo code on the Cart page (or in the basket drawer) and press Apply. If the code is valid for their basket, the discount appears immediately in the order summary and the code is shown with a remove option.

Promo codes come from two places:

  1. Promos and deals you create yourself — see Setup Promos and Deals
  2. Automated Marketing campaigns, which send win-back codes to customers by SMS or push notification — see Reading the Automated Marketing report

Why a code can be rejected

When a code can't be applied, the website shows the customer the specific reason wherever possible:

  • "This code can't be used together with the deal in your basket." — the basket already contains a deal (for example a meal deal that applied automatically), and your marketing codes are set not to stack with other deals. This is the most common reason a genuine, unexpired code is rejected. See the next section for how this works and how to change it.
  • A message saying the code has already been used — the code was a one-time code and the customer has redeemed it before.
  • "Invalid or expired promo code" — the code doesn't exist, has expired, or doesn't meet its conditions (for example a minimum order amount).

Note: Older versions of the ordering system showed the generic "Invalid or expired promo code" message for all of these cases. If your customers report that message for codes you know are valid, the most likely cause is a deal already in their basket — see below.

Marketing codes and meal deals

By default, Automated Marketing codes are exclusive: they will not stack on top of other deal discounts. Because meal deals apply to the basket automatically, a customer with a meal deal in their basket can't also redeem a marketing code — they see the "can't be used together with the deal in your basket" message.

This protects your margins: the customer already gets the deal price, and the marketing code doesn't discount it further.

If you would rather let marketing codes stack with deals:

  1. Go to Setup > Marketing > Automated Marketing
  2. Set Overlapping to Not exclusive
  3. Save

Note: With stacking enabled, a customer can get both the meal deal price and the marketing discount on the same order.

Mistyped codes with similar-looking characters

Codes sent by SMS are displayed in capital letters, and some characters are easy to confuse — 0 and O, or 1, I and L. If a customer types 96E7OG when their code is actually 96E70G, the website now recognises it and applies the correct code automatically. The applied code shown in the basket is the real stored code, so it may differ slightly from what the customer typed — that's expected.

Newly generated marketing codes also avoid these ambiguous characters entirely, so new campaigns are much less likely to be mistyped.

Was this helpful?