Coupons let your team apply discounts; promotion codes let customers claim them at checkout.
Key takeaways
- Choose discounts by who should decide to use them.
- Customers type a code at checkout, and the discount applies only if the code is valid.
- Every coupon needs a person or rule to apply it, and manual use slows down when you handle many orders.
- Give each discount a clear name that identifies its audience and offer, before anyone starts using it.
- Test a code on a real order before launch, and confirm that an expired code fails.
Why the two words get mixed up
If you run a shop, you have probably seen the words coupon, promo code, discount code, and voucher used as if they all meant the same thing. In everyday talk, they often do. Customers say "I have a coupon" when they mean they have a string of letters to type into a box. Staff say "put the code in" when they mean "take this much off the sale." The blur is harmless in conversation, but it causes trouble when you set up discounts in your shop software, because the software needs to know who triggers the discount and when.
A discount is a rule that lowers a price. For every discount you create, ask who decides to use it. Those answers lead to different setup choices.
Stripe's documentation on coupons and promotion codes makes the split plain. It describes a promotion code as "a customer-facing code that wraps around a coupon, adding a distribution and control layer on top of coupons." The coupon holds the discount, and the code is the public door that lets a customer reach it. Your shop software may use different names and screens, so check how it handles this distinction.
Coupons: the discount that staff apply
A coupon is a discount applied by someone on your team, or by a rule your team has set. The customer does not need to know it exists until someone mentions it. Picture a manager who gives a loyal customer a little off a special order, or a cashier who applies a discount for a damaged box. A person with access chooses the discount and applies it to the order.
Stripe puts the idea in one line: "Coupons: You decide who and when a customer gets the discount." The customer receives the benefit, but does not pick it or type anything in to claim it.
This makes coupons useful in several everyday situations:
- Making a goodwill gesture after a late delivery or a mistake in the order.
- Matching a price for a customer holding a quote from another seller, when your policy allows it.
- Giving a staff-approved discount to a wholesale buyer or a repeat trade customer.
- Clearing slow stock at a set price for a specific group of buyers.
The strength of a coupon is control. Check whether your software can limit a discount to one account or keep it out of public view. You can also decide based on what you see in front of you, such as the size of the order or the buyer's history.
The weakness is speed and reach. If you handle many orders a day, manual application becomes a bottleneck, and mistakes creep in. Someone forgets to apply the discount, applies it twice, or applies it to the wrong item. The more often you need a discount, the more you should ask whether a code would serve you better.
Codes: the discount that customers enter
The customer sees the code in an email, on a flyer, or in a social post. Stripe puts it this way: "Promotion codes: Your customer decides when to apply a discount."
That shift from staff to customer changes how you set the discount up. You need to think about visibility, because anyone who holds the code may try to use it. You need to think about limits, because a code shared widely can be used far more often than you planned. And you need a plan for leaks, because possession of the code alone does not tell you whether someone belongs to your intended audience.
Codes work well for a seasonal sale you announce to everyone, a thank-you offer for people who join your mailing list, a partner promotion shared with a community group's readers, or a campaign you want to track by source.
The strength of a code is reach. You can put one in a newsletter and let many customers use it without any action from your staff. The customer does the work, and the checkout does the rest. For many shops, this is the most scalable way to run a promotion.
The weakness is that you give up some control. A code is only as private as the people who hold it. If it appears on a deals website, you may see it used in ways you never meant.
Choosing who acts at checkout
Ask who needs to act, who needs to see the offer, and who needs to be trusted with it. The answers will usually tell you which tool to use.
Test this with a few examples. Making up for a damaged item for one customer is a coupon, applied by a staff member after they check the order. Giving everyone on your mailing list a percentage off their first order is a code, because the customer must enter it. A flash sale on one product line over a weekend is probably a code too, since you want the public to act without staff involvement.
Be careful with the middle cases. A discount for returning customers could be a coupon if staff decide who qualifies, or a code if you email it to a list of returning buyers. Both work. The choice depends on whether you want a person to judge eligibility or whether you trust the code's rules to decide it.
One discount can have several codes
In Stripe, more than one promotion code can point to a single coupon. You create the discount once, and several codes point to it. Check whether your software also supports tracking those codes separately.
Stripe gives a concrete example: "For example, FALLPROMO and SPRINGPROMO can both point to a single 25% off coupon." The two codes are different strings a customer might type, but they unlock the same coupon. Check whether your reports identify the code used on each order while the discount rules stay in one place.
This keeps your setup tidy. If you need to change the amount, you change it once. It may also help you measure campaigns, depending on your software. A code printed in a magazine and a code posted in an email can point to the same offer; check whether your reports distinguish their sales.
There is a trade-off. Check whether usage limits apply to the discount as a whole or to each code. Otherwise a single offer may be used far beyond what you expected. Read your shop software's documentation on how usage is counted before you launch.
Naming your discounts
Names matter more than most managers expect. A discount called "Test 3" will confuse your team six months from now. Frappe's pricing rule guide advises: "Enter a clear Title that identifies the audience and offer."
Good names include the audience, the offer, and sometimes the period. A coupon called "Wholesale, staff apply" tells a future reader who it is for and how to use it. A code called "SPRING newsletter" shows both the season and the source. A name like "Special" tells no one anything.
Use the same pattern for every discount. Keep a short note for each one too, if your software allows it, recording who created it, why, and when it should end. Months later, when a customer asks why an old code still works, that note will save a long search.
Setting up a coupon
Start with who will apply it. Will cashiers have permission to use it, or must a manager approve it first? Check whether your shop system lets you restrict who can apply a discount. Use that restriction if available.
Next, choose a fixed amount or a percentage, and make sure your team knows which one they are looking at, because a percentage on a large order can be a bigger surprise than expected. A short written rule for each coupon, kept near the register, helps prevent disputes.
Then set the period. Goodwill coupons often need no end date, but a coupon for a specific sale should close on time. A coupon that stays active after a campaign ends becomes a quiet leak in your margins.
Finally, decide how you will record use. You should be able to see later who applied a coupon, to which order, and when. Good records protect you from misuse and reveal patterns, such as one staff member applying discounts far more often than the others.
Setting up a code
Start with the audience. A code in a members-only email is different from a code on a public banner, and the setup should reflect that.
Next, set the limits. Decide how many times the code can be used in total, and whether one customer can use it more than once. A code with no limits is an open door. Tight limits are safer, but if the code runs out early, customers may be annoyed. Match the limits to the campaign size you expect.
Then set the dates. A code needs a start date and an end date, and your team should know both. If the window is short, record the reason in the setup note.
Test before you launch. Enter the code yourself on a real order, and check the discount, the total, and the tax. Then test a case that should fail, such as an expired code or one used by someone who has already reached the limit.
Last, plan what you will do if a code leaks. Decide in advance how you will switch it off and who may do it. You do not want to work out the answer while orders are coming in.
Using both types at the same counter
Most shops end up using both, and that is fine. Keep the two groups separate in your head and in your software. Keep staff-only offers separate from public campaigns, even if the amounts match. When they are separate, you can change one without touching the other.
Think about a busy day. A customer walks in with a newsletter code and places an order. Ten minutes later, a regular buyer asks a staff member for a goodwill adjustment after a delayed shipment. Both discounts are valid, but they came from different decisions. Your records should show that difference, so a later review can tell them apart.
Handoffs are a common source of trouble. A cashier may not know whether a customer's code is still active, and a customer may not understand why a coupon offered at the counter is missing from their email. A one-page staff guide listing current codes, current coupon rules, and who to call with questions prevents most of these moments. Update it when a campaign ends, not weeks later. Keep it short enough that a new team member can scan it in a few minutes.
Common mistakes to avoid
The first mistake is giving a staff-only coupon a public-sounding name. Customers will ask for it, and your team will spend time explaining. Keep internal names internal.
The second is leaving codes open. A code printed on a flyer and never retired can keep working for years. Check active codes on a regular schedule. A quarterly review is a reasonable start for many shops.
The third is mixing the two types in reports. If reports do not separate coupon use from code use, you cannot tell whether public promotions work or whether staff discounts are growing too fast.
The fourth is forgetting the customer's point of view. A code that works in the email but fails at checkout makes customers think your shop is broken. Test the whole path, from the link to the final payment.
The fifth is letting one discount do too many jobs. If a discount is both a staff goodwill tool and a public code, split it into two discounts.
A simple checklist
Before you create any discount, answer these questions in writing:
- Who decides to use this discount: a staff member or the customer?
- If staff decides, who has permission to apply it?
- If the customer decides, where will the code appear, and who can see it?
- Is the discount a fixed amount, or a percentage?
- What are the usage limits, both total and for each customer?
- When does the discount start and end?
- Does the name say who the offer is for and what it does?
- Have you tested a valid case and a failing case?
- Who can turn the discount off if something goes wrong?
- How will you see how often it is used?
If you can answer all ten, you are ready. If one answer is unclear, pause. Most discount problems start with a question nobody answered at the start.
Final thoughts
Coupons and codes are not competitors. Many shops use both: coupons for careful, individual decisions, and codes for broad campaigns.
Start with one discount this week, set up as a coupon or a code using the checklist above. You will learn more from one careful setup than from reading about discounts all month.