Add a discount code

A percentage off, a fixed amount off or free shipping, with an optional minimum order, maximum discount, usage limit and dates — and what the form refuses.

Available on the Starter plan and up

Last updated

Give customers money off with a code they type in their cart: a percentage, a fixed amount or free shipping, for example 10% off everything for Eid. This article goes through every field of the form, what each one does at checkout, and what the form refuses.

Discount codes are on Starter and up. To add them, your role needs the Manage discount codes and gift cards permission, which the Store owner and Store manager roles have. See Staff roles: what each one can see and do.

Add a discount code

Adding ABAYA20: 20% off orders of JOD 50 or more, capped at JOD 15, for 100 orders, until 31 October
  1. In the sidebar, under Selling, open Discount codes.
Before your first code the page is empty. Both Add discount code buttons open the same form.
  1. Select Add discount code at the top right of the page.
The form opens on Percentage. Only the fields with a red star are required.
  1. In Discount code, type the code your customers will enter, for example EID10.
  2. In Description, type a note for your team, for example “Eid — 10% off everything”.
  3. Choose the Discount type and type its value. See the three types.
  4. Fill in any of the optional limits: Minimum order, Maximum discount, Usage limit, Starts and Expires.
  5. Select Add discount code at the bottom of the form.

The form closes, Discount code created. appears at the bottom of the screen, and the new code is first in the list. It works at once, unless you gave it a start date that has not come yet.

The new code comes first. Its card repeats every limit you set.
FieldRequiredWhat it is
Discount codeYesWhat customers type. Up to 50 characters. It is saved in capital letters, so eid10 becomes EID10, and customers can type it in capitals or small letters. Each live code in your store must be different; a code you deleted gives its name back.
DescriptionNoA note for your team, up to 500 characters. Customers never see it. It shows on the code’s card, and the list’s search finds it.
Discount typeAlways setPercentage, Fixed amount or Free shipping. It is on Percentage when the form opens, so it has no red star.
Percentage or AmountYes, except for free shippingHow much the code takes off.
Minimum orderNoThe lowest product total the code is accepted on. 0 or more.
Maximum discountNo, and percentage onlyThe most the code takes off one order. More than 0; leave it empty for no cap.
Usage limitNoHow many orders can use the code, across all your customers together. A whole number, 1 or more. Empty means Unlimited.
StartsNoThe first day the code works. Empty means Starts immediately.
ExpiresNoThe last day the code works. Empty means Never expires.

Tip

Keep codes short, with letters and numbers only. Customers often type them on a phone, and EID10 is harder to get wrong than eid-offer 2026.

Discount type: percentage, fixed amount or free shipping

Open Discount type and choose one of the three. The value field next to it changes with your choice.

Three types. The field beside the menu follows your choice.
TypeThe value you typeWhat the customer gets
PercentagePercentage: more than 0, and no more than 100That percentage off the products in their cart. Maximum discount can cap it.
Fixed amountAmount: more than 0, in your store’s currencyThat amount off the products. If the products cost less, the discount stops at their total, so an order never goes below zero.
Free shippingNothing: the value field disappearsNo shipping charge at checkout, whichever shipping rate they choose. Their cart shows Free delivery against the code.

A percentage or fixed discount comes off the products only, before shipping.

A percentage code: 20% off, never more than JOD 15, on orders of JOD 50 or more.
A fixed amount: JOD 5 off orders of JOD 30 or more. Maximum discount is not offered for this type.
Free shipping has no value to type. Here it runs for one week, on orders of JOD 50 or more.

If you want free shipping for every order over an amount, without a code, set it on your shipping rates instead. See Add shipping rates and free shipping.

Minimum order and maximum discount

  • Minimum order works with all three types. The code is accepted only when the products in the cart add up to at least this amount, before shipping. Below it, the customer reads Your order is below the minimum for that code. Leave it empty for no minimum.
  • Maximum discount appears only for Percentage. It is the most the code can take off one order. ABAYA20 gives 20% but never more than JOD 15: a JOD 60 cart saves JOD 12, and a JOD 120 cart saves JOD 15. Leave it empty for no cap.

Usage limit

Usage limit is how many orders can use the code, across all your customers together. Type a whole number, 1 or more, or leave it empty for no limit. Do not type 0 to mean “no limit”: the console refuses it (see What the form refuses).

  • A use is counted when the customer places the order, not when you confirm it. The use comes back if the order is cancelled (by you, or by itself when the parcel of an unpaid order comes back to sender), if its card payment fails, if you refund it in full before it ships, or if you change its status from Returned to Refunded.
  • When every use is taken, the code shows Used up and customers read That code has been fully used.
  • The limit is not per customer. On a code with no limit, one customer can use it on as many orders as they like. For a code meant for one person, set the limit to 1.

To see how many uses a code has left, and which are held by orders you have not confirmed yet, see Track, deactivate and delete discount codes.

Start and expiry dates

Both dates are optional. They are whole days in your store’s time zone, the one you set in Settings (see Set your store’s languages and currency).

  • With a Starts date, the code starts working at midnight at the beginning of that day. Until then it shows Scheduled, and customers who try it read That code is not active yet.
  • With an Expires date, the code works until the very end of that day, then shows Expired.

To pick a date:

  1. Select the Starts or Expires field. A calendar opens on the current month, with today ringed.
  2. Move between months with the arrows at the top, if you need to.
  3. Select the day.
The calendar opens on this month. Today is ringed.

To remove a date, select the × at the end of the field (Clear date).

The start and expiry can be the same day, for a code that runs for one day only:

WHITEFRIDAY works for the whole of 27 November, and on no other day.

The calendar lets you pick a day that has already passed. A code whose expiry day is in the past is Expired from the moment you add it, so check the year before you save.

What the form refuses

The form never closes on a refusal, and it keeps everything you typed. For the reasons in this table, it turns the field red and writes the reason under it. For the first four, Fill in every required field. also appears at the top of the screen, where messages show while the form is open. The last one comes from the server when you select Add discount code, and a message at the top of the screen also says This discount code already exists.

MessageWhyWhat to do
Enter a discount code.Discount code is empty.Type a code.
Enter a discount value greater than zero.Percentage or Amount is empty, or zero.Type a value above zero.
Percentage cannot exceed 100.The percentage is over 100.Type 100 or less.
The expiry date must be on or after the start date.Expires is a day before Starts.Move one of the dates. The same day is allowed.
That code already exists.Your store already has a live code with this name, in any capitals. A deleted code does not count.Choose another name, or use the code you have.
Saved with nothing in it: the two required fields are flagged.
A percentage above 100 is refused.
An expiry before the start is refused. Swap the dates or move one.
WELCOME10 is already one of Layal’s codes, so the form asks for another name.

Refusals after you select Add discount code

The server checks the form again when you save, and refuses some values the form lets through. No field turns red: the form stays open and a message at the top of the screen names the field in English, for example Usage Limit: 'Usage Limit' must be greater than '0'. The message is in English in the Arabic console too. It happens with:

  • 0, or a number with a fraction, in Usage limit.
  • 0 in Maximum discount.
  • A negative Minimum order.
  • A Discount code longer than 50 characters, or a Description longer than 500.

Fix the field it names and select Add discount code again. For no limit and no cap, leave Usage limit and Maximum discount empty.

A code you deleted gives its name back, so you can add a new code with the same name: for example, delete STAFF30 and add STAFF30 again. The new code is a fresh start. It does not bring the deleted code back, it starts with no uses, and the uses held by orders placed with the deleted code stay with the deleted code. See Delete a code.

If the save fails for another reason, for example because the connection dropped, a message at the top of the screen says so and the form stays open. Select Add discount code again.

A code cannot be edited once it is created

The form says so under its title: Discount codes apply at checkout. Codes cannot be edited after creation. Once you select Add discount code, the value, limits and dates are fixed.

To change a code that is already running, for example to give it a later expiry, you have two ways.

To keep the old code until the new one is ready:

  1. Add a new code with the new terms and a new name.
  2. Switch the old code off from its card. See Deactivate and activate a code.
  3. Give the new code to the customers who had the old one.

To keep the same name, so customers go on typing what they know:

  1. Delete the old code. See Delete a code.
  2. Add the code again under the same name, with the new terms.

The new code counts its uses from zero. Uses held by orders placed with the old code stay with the deleted code: cancelling or refunding one of those orders gives no use back to the new code. Between the delete and the new code, customers cannot use the name at all, so do both straight after each other.

Either way, orders already placed with the old code keep their discount.

How customers use a code

Customers type the code in the Discount code box on their cart page, under the totals, and select Apply. The cart shows the code with the discount, or with Free delivery for a free-shipping code. Checkout checks the code again against the final cart before the order is placed.

A customer can use one discount code per order. They can pay part of the same order with a gift card; see Issue a gift card.

On the Free plan

Discount codes are on Starter and up. See Plans and what each includes.

On the Free plan:

  • In the sidebar, Discount codes wears a padlock. Selecting it does not open the page; a message names the plan that includes discount codes and its monthly price, with a See plans link.
  • If you open the page another way, for example from a bookmark or a link, Add discount code wears the same padlock and shows the same message.
  • Your storefront does not show the discount code box.
On Free, the button wears a padlock instead of opening the form.
Selecting a padlocked button says which plan includes discount codes, with See plans.

If you move down to Free from a plan with discount codes, your codes are kept. Customers cannot apply any of them, and you cannot add or switch on a code. When you move back up, the codes that were switched on work again. See Upgrade or change your plan.

Next, see how to track, deactivate and delete your codes, or issue a gift card for store credit instead of a discount.