How to Set Up WooCommerce Coupons That Work as Intended
Set up WooCommerce coupons step by step and see why one sometimes does not apply: discount types, usage limits, restrictions, free shipping, stacking, and the three mistakes that make a coupon look broken.
Watch the tutorial
This tutorial sets up WooCommerce coupons from scratch in a fresh test shop, using only stock WooCommerce: the three discount types, usage limits and expiry, spend limits, product and category restrictions, stacking, free shipping coupons, shipping and tax, and allowed emails. Each coupon is tested as a customer. Then we go through three common mistakes. No code needed.
Also on YouTube (opens in a new tab)
Read the transcript
You made a coupon. A customer typed it in. And nothing happened. In this tutorial, we'll set up WooCommerce coupons, step by step. Discount types, limits, restrictions, free shipping, and what happens when coupons stack. Then we'll go through the surprises that make a coupon seem broken. It's all stock WooCommerce, so there's nothing extra to install.
Let's make one. In your dashboard, go to Marketing, then Coupons, and click Add new coupon. Type a code. That's what customers enter at the cart or checkout. Capital letters don't matter, because WooCommerce saves the code in lowercase. Or click Generate coupon code, and WooCommerce makes one up. Add a description if you like. It's a note for you. Now the discount type and amount. The type starts on Fixed cart discount, with an amount of zero, so always check both. We'll take Percentage discount, and ten. Click Publish. A coupon that's still a draft doesn't work.
WooCommerce has three discount types. Percentage discount, Fixed cart discount, and Fixed product discount. Let's compare them on one cart. A hoodie, and two shirts, two hundred twenty dollars in all. Percentage takes a percentage off the price of each item. Ten percent off is twenty-two dollars. Fixed cart takes one amount off the whole cart. Ten dollars off is ten dollars, however many items there are. Fixed product takes the amount off every item. Ten dollars off each of three items is thirty dollars. A percentage coupon works on the price the customer pays. So on a sale item, it comes off the sale price.
Now the limits. Open the Usage limits tab. Usage limit per coupon is the total number of times the coupon can be used, by everyone put together. Usage limit per user stops one customer using it again and again. For logged-in customers, WooCommerce counts by account. For guests, it counts by billing email. Limit usage to X items is for percentage and fixed product coupons. It caps how many items get the discount. A coupon counts as used when an order is placed. If that order is cancelled, the use is given back. Back on the General tab, you can add an expiry date. The coupon stops working at midnight, when that date begins. For a coupon that lasts through December thirty-first, enter January first.
Next, the Usage restriction tab. Minimum spend and Maximum spend decide how big the cart has to be. Both look at the cart subtotal, before the coupon takes anything off. Let's set a minimum of a hundred fifty dollars. A cart of eighty-four dollars is too small. WooCommerce says so, and doesn't apply the coupon. Add another hoodie, and the cart is big enough. The coupon works. Maximum spend is the other way round. It's for coupons that should only apply to smaller carts.
A coupon can be limited to certain products or categories. Products and Product categories include them. Exclude products and Exclude categories leave them out. Here the coupon is only for Tops, and it's twenty percent. Now a cart with a hoodie and chinos. Only the hoodie is in Tops, so only the hoodie is discounted. Twenty percent of eighty-four dollars is sixteen dollars eighty. Take the hoodie out, and nothing qualifies. WooCommerce removes the coupon, and tells the customer why.
Sale items need their own setting. Tick Exclude sale items, and the coupon skips anything that's on sale. Here the sweater is on sale, so the coupon only discounts the chinos. Twenty percent of seventy-eight dollars is fifteen dollars sixty.
What if a customer uses two coupons? By default, WooCommerce lets them stack. Here, winter10 and take10 both apply. To stop that, tick Individual use only on a coupon. When a customer applies an individual use coupon, it removes the coupons already in the cart. And once it's in, no other coupon can be added.
When coupons do stack, WooCommerce applies them by type. Fixed product coupons first, then percentage, then fixed cart. Two percentage coupons don't multiply. Ten percent and twenty percent each come off the original price, so together they take thirty percent. That's sixty-six dollars here. To change that, go to WooCommerce, Settings, General, and tick Calculate coupon discounts sequentially. Now the second coupon works on the price the first one left. The total discount is sixty-one dollars sixty.
A free shipping coupon takes two steps. First, tick Allow free shipping on the coupon. The amount can stay at zero. But the tick alone does nothing. The cart still offers only flat rate shipping. Second, go to WooCommerce, Settings, Shipping, open your zone, and add the Free shipping method. Edit it, and set Free shipping requires to A valid free shipping coupon. Now the cart offers free shipping as well. The flat rate is still listed, so the customer can choose.
Two more things to know. Coupons come off the products, never the shipping. Shipping stays eight dollars. And if you charge sales tax, the tax is worked out after the discount. Our demo store charges five and a half percent. Without a coupon, the tax is twelve dollars ten. With ten percent off, it drops to ten dollars eighty-nine.
You can keep a coupon for particular customers. In Allowed emails, list the billing emails that can use it. An asterisk matches part of an address, so this one is for everyone at the shop's own domain. A customer with a Gmail address tries it, and WooCommerce refuses. With a matching email, it works. Switch to another email, and the coupon is taken off again.
Now usage limits at work. This coupon allows one use for each customer. June places an order with it. Back in the coupon list, the usage count shows one. June comes back, and tries again. WooCommerce says the limit has been reached.
Mistake one. A coupon that expires today. The expiry date is when the coupon stops, not its last day. This one stopped at midnight, so WooCommerce says it has expired.
Mistake two. Exclude sale items on a fixed cart coupon. On percentage and fixed product coupons, sale items are skipped. But a fixed cart coupon is refused if any item in the cart is on sale. So for a sale-friendly coupon, use a percentage or fixed product discount.
Mistake three. The coupon is still a draft. The coupon list says Draft, and to a customer, the coupon doesn't exist. Click Publish, and the same code now works. So check the status first, whenever a coupon seems to be missing.
That's WooCommerce coupons. Pick the right type, set the limits, and test every coupon as a customer. When a coupon won't apply, check three things. Is it published? Is it inside its dates and limits? And does the cart match its restrictions? One honest note. A coupon only works when a customer types the code. WooCommerce has no setting to give new customers a discount automatically. If you want that, the free PluginCity First Order Discount plugin does it.
What you will learn
- How to create a coupon, and why the default discount type and amount need checking
- The difference between Percentage discount, Fixed cart discount and Fixed product discount
- Usage limit per coupon, usage limit per user (counted by account for logged-in customers and by billing email for guests), and Limit usage to X items
- How the expiry date works: the coupon stops at midnight when that date begins
- Minimum spend and Maximum spend, and that both look at the subtotal before the discount
- How to limit a coupon to products or categories, or exclude them, and what happens when nothing in the cart qualifies
- What Exclude sale items does on each coupon type
- Stacking: Individual use only, and the order WooCommerce applies coupons in (fixed product, then percentage, then fixed cart), plus the Calculate coupon discounts sequentially setting
- The two steps of a free shipping coupon: Allow free shipping on the coupon, and the Free shipping method set to A valid free shipping coupon
- That coupons never reduce shipping, and that sales tax is worked out after the discount
- Allowed emails, with an asterisk for part of an address
- Three common mistakes: a coupon that expires today, Exclude sale items on a fixed cart coupon, and a coupon that is still a draft
Good to know
Everything shown is stock WooCommerce (version 11.2 in this video) with no extra plugins, and screens may look slightly different in other versions. A coupon only works when a customer types the code, and WooCommerce has no setting to give new customers a discount automatically. The last part of the video mentions the free PluginCity First Order Discount for WooCommerce plugin, which does that, as an optional extra. Nothing in this tutorial needs it. Filmed on a demo clothing shop (Harbor & Pine) with sample products and prices in US dollars. The voice-over is a computer-generated voice.
Related plugins
PluginCity plugins for related jobs.
