How-to › Marketing and growth

How to Create Coupons and Automatic Discounts

Run a sale, hand out coupon codes, offer free shipping over a set amount or send a code to thousands of customers. You create an offer, set the discount, decide who gets it and test it. 12 parts.

Quick links

Where to find it:WP Admin › EasyCart › Marketing › Offers

Before you start

What you are building

What you need, and the difference between an automatic offer and a coupon code.

How offers work

What you need, and the two ways a customer gets a discount

no stored settings

What you need. WP EasyCart PRO or Premium. Offers is the discount system under EasyCart › Marketing › Offers. The free plugin shows it locked, and the free trial unlocks it if you want to try it first.

Two ways to get a discount. An automatic offer applies to every cart that qualifies, with nothing to type. Use it for a sale or free shipping over a set amount. A coupon code offer only applies once the customer enters a code. Use it for an email, a partner, or a one-off thank you.

What one offer can be. A percent or amount off items, a percent or amount off the order, free shipping, buy one get one, a free gift, tiered pricing or a bundle. You can narrow it to products, categories or brands, set dates, limit how often it is used and choose whether it combines with other offers.

The steps: create the offer, set the discount, choose who gets it and when, add codes if it needs them, set limits, decide how it shows in your store, then test it before you send it to anyone.

Set it up

Seven steps

Create the offer, set the discount, choose who gets it, add codes, set limits, show it in the store and test it.

Step 1. Create the offer

Pick a starting point, name it, set the basics

no stored settings

Open EasyCart › Marketing › Offers and press Create Offer. A panel asks what kind of offer you want. Pick the closest one. Everything can be changed afterwards in the editor.

Coupon Code: customers enter a code. You set the code, whether it takes a percent or an amount off the order, the value and an optional minimum order.
Percent-Off Sale: an automatic percent off, storewide.
BOGO: buy one, get one free or a percent off. The cheapest matching item gets the discount.
Free Shipping Over…: free shipping once the cart passes an amount you set.

Under Advanced are Free Gift, Bundle Deal, Tiered Pricing and Mix & Match. These always start as a draft, because they need products chosen in the editor before they mean anything.

Give the offer a name. Customers can see it on badges and at checkout, so use something they would recognise, such as Summer Sale. Add Starts and Ends dates if you know them. The panel takes whole days: a start date begins at midnight and an end date finishes at 11:59 pm. Leave Activate immediately ticked to go live now, or untick it to keep the offer as a draft. Press Create offer and the editor opens.

Marketing › Offers › Create Offer, showing the offer types to pick from.
Marketing › Offers › Create Offer, showing the offer types to pick from.

Step 2. Set the discount

The deal section, and the settings that decide your margin

no stored settings

The editor has six numbered sections and a preview on the right. Section 1. The deal has seven cards:

Item discount: a percent or amount off each matching item.
Order discount: a percent or amount off the order total.
Shipping deal: free or cheaper shipping.
Buy X get Y: BOGO and multi-buy.
Free gift: add a product to a qualifying cart.
Tiered pricing: bigger discounts at higher quantities or spend.
Bundle / Mix & match: any set number of chosen products for one price.

A worked example under the cards shows what a sample cart would pay. Check it before you go on. To offer free shipping over a spend, use a Shipping deal with a minimum spend, which is what the Free Shipping Over… starting point builds.

Open Advanced discount behavior to protect your margin. Discount is based on chooses Regular price (before sales) or Current price (after sales). Also apply to items already on sale decides whether sale items are included. Cap the total discount at limits what one order can receive, and 0 means no cap.

Section 2. What it applies to starts storewide. Search for products, categories or manufacturers and add them to Include to narrow it. Exclude always wins.

The offer editor, section 1, The deal, with the seven deal cards.
The offer editor, section 1, The deal, with the seven deal cards.

Step 3. Choose who gets it and when

Conditions, a schedule and days of the week

no stored settings

Section 3. Who gets it & when adds conditions. Everyone qualifies until you add one, and conditions combine, so a cart has to meet all of them. You can require a minimum spend or quantity, first orders only, logged-in customers only, returning customers, named customers, an email domain, or a lifetime spend or order count.

The customer conditions read the customer’s account. They work for signed-in shoppers. A guest looks like a new customer each time.

Under Schedule set Starts and Ends to the minute, in your WordPress time zone. Leave both empty and the offer runs until you pause it. Only on these days limits it to days of the week, such as a Tuesday special. Leave every day off to run all week.

Step 4. Automatic or with a code

How customers get it

no stored settings

Section 4. How customers get it has two choices: Automatically and With a code. Choose With a code and a code table appears with Code, Limit, Used and Active columns.

Type a code and press Add Code. One offer can hold one shared code or many. Each code has its own limit, and you can switch a code off without deleting it. Use Find a code to search once the list grows.

A code can belong to only one offer. The editor refuses a code that is already in use on another one.

Which to use. Use a shared code for something public, like a code on a poster. Use single-use codes for anything you email, because a shared code gets posted to coupon sites and a single-use code cannot be shared.

The offer editor, section 4, How customers get it, set to With a code.
The offer editor, section 4, How customers get it, set to With a code.

💡 Note: Use unique generated codes for email campaigns. A single shared code will end up on a voucher site within days.

Bulk codes: generate, import and export

Thousands of single-use codes for a campaign

no stored settings

Generate. Open Bulk generate codes and set a Prefix, How many, a Random length from 4 to 12 and Uses per code. Press Generate. You get single-use codes like VIP-K7M2Q9, up to 10,000 at a time. Uses per code starts at 1.

Import. Open Import codes from a file to bring in codes you made elsewhere, such as a list from a partner. Choose a CSV or TXT file, or paste codes one per line. If the file has columns, pick which one holds the codes with Codes are in, and tick First row is a header if it has one. Set Uses per code and press Import codes. The file is read in your browser and sent in batches, not stored on your server. Codes already in the offer keep their use counts, and codes that belong to another offer are skipped and listed for you.

The same panel can Switch them off instead. Paste in refunded or leaked codes and choose Switch them off.

Export. Open Export codes, choose which codes, and press Download CSV. You get one row per code, with how often it was used and the orders that used it. Load the file into your email service to send each customer a code of their own.

The Bulk generate codes panel, open, with its four fields.
The Bulk generate codes panel, open, with its four fields.

Step 5. Set limits and stacking

How often it can be used, and what it combines with

no stored settings

Section 5. Limits & stacking starts with three numbers: Total redemptions for the whole offer, Per customer, and Priority, where a lower number runs first when several offers apply. Zero means unlimited for the first two.

Then choose what happens when another offer also applies to the same cart:

This offer wins alone: when it applies, no other offer can.
Stack together: combines freely with other offers.
Custom: choose which kinds it can join, with separate switches for other item discounts, other order discounts and shipping offers.

Open Check how this offer stacks with other live offers to see a verdict for each live offer. It reads saved settings, so save first.

The offer editor, section 5, Limits & stacking, with the three limits and the stacking choices.
The offer editor, section 5, Limits & stacking, with the three limits and the stacking choices.

⚠️ Careful: Stacking is where discounting goes wrong. An offer that stacks with everything and also applies to sale items can take a cart below cost. Set a cap and a minimum spend, and open the stacking check before you go live.

Discount subscription products

Also discount subscription products

no stored settings

A code can discount a subscription, not just a one-time purchase. In section 2. What it applies to tick Also discount subscription products. Then choose The discount lasts for: The first payment only, A number of months (then enter the Months) or Every payment.

Only a percent or an amount off is passed on to a subscription. Subscriptions bill through Stripe, so the option shows a notice while Stripe is not connected. The subscription checkout has its own code box, and the customer enters the code there.

Step 6. Show it in your store

Label, badge, callout, countdown, and the cart code box

no stored settings

Section 6. How it looks in the store controls promotion. Set a Customer-facing label, which shows on cart lines and receipts. Tick Show a badge on product images and choose its text, colour and shape. Add a Product page callout such as Buy 2, get 1 free this week!. Tick Show a countdown when the offer is ending soon and Show progress messaging in the cart, which tells a shopper how far they are from a threshold.

Badges and callouts show for automatic offers. A coupon code offer is promoted wherever you share the code, and appears in the cart once the code is applied.

The cart code box. Customers type codes in the box on the cart page. It is controlled by Coupon code box in Settings › Checkout under Cart page, which is on by default. Turn it off and the box is hidden.

Codes in a link. Add ?ec_coupon=YOURCODE to a store link and the code is applied when the page opens. A cart link can carry codes too. See the cart links guide.

Settings › Checkout › Cart page, with Coupon code box.
Settings › Checkout › Cart page, with Coupon code box.

Step 7. Test it before you share it

The cart simulator, the code tester and a real order

no stored settings

Try it on a cart. The panel on the right has a simulator. Add products, tick Customer entered a code if it is a code offer, and it shows the cart line by line with the offer applied. It runs on unsaved changes, so use it to try a setting.

This offer, in plain English. The card at the top of the panel restates the offer as a sentence. If it does not say what you meant, the offer will not do what you meant.

Test a coupon code. Open any product, then its Offers tab. Type the code in Test a coupon code and press Test code. It says whether the code discounts that product, and if not, why: the product is excluded, it is a sale item, a condition rules it out, or the offer is archived. It tests the product as one item at its price in a guest’s cart.

A real order. Last, put a product in a cart in a private window, enter the code and check the total. Set the offer to Live with the status control in the header and press Save Changes. Nothing takes effect until you save.

A product editor, Offers tab, with the Test a coupon code box.
A product editor, Offers tab, with the Test a coupon code box.

💡 Note: The simulator uses your unsaved changes. The stacking check and the code tester use the last saved settings, so save first.

Keep it running

After it goes live

Status and performance, and the usual reasons a code or offer does nothing.

After it goes live

Status, performance and tidying up

no stored settings

The status control in the header switches an offer between Draft, Paused and Live. Paused keeps every setting but stops the offer. The menu beside it can Duplicate the offer as a draft, Archive it or Delete it. An offer with redemptions is archived instead of deleted.

The Performance panel at the bottom of the editor shows redemptions, the discount given and the revenue from orders that used it. Read them together: an offer can move plenty of stock and still lose money.

If it does not work

The usual reasons a code or offer does nothing

no stored settings

The customer says the code is invalid. Check the offer is Live and saved, the dates include today in your WordPress time zone, the code is switched on in the table and has not used up its limit. Then use Test a coupon code on the product.

The code applies but takes nothing off. The product may be excluded or on sale, and the offer may not apply to sale items. A condition, such as a minimum spend, may not be met. The cart shows a code that changes nothing as inactive, with a remove link.

The code is refused when it is entered. A discount already on the cart wins the stacking. Change the stacking choice in section 5, or the priority.

The editor says the code is already in use. Codes are unique across every offer. Find the other offer with Find a code, or pick a new code.

There is no code box in the cart. Check Coupon code box in Settings › Checkout is on.

A subscription is not discounted. Tick Also discount subscription products, and connect Stripe. The code has to be entered on the subscription checkout.

An offer is live but nobody uses it. The overview flags offers that are live but never used, and links to the offer’s display settings. Add a badge or callout, or share the code.

Keep going

Related panels

Offers

Every panel and setting in the Offers editor.

Offers

The Offers tab on a product, with the code tester.

Checkout

The Coupon code box and the rest of the cart settings.

Cart Links

Links that fill a cart and apply a code.

Ready to run your store on WP EasyCart?

Everything in this guide works with the free plugin. PRO and Premium add subscriptions, memberships, wholesale pricing and more. Try every PRO feature free for 14 days.

The WP EasyCart admin: orders and offers
Updated on September 30, 2026