Discounting without training discount hunters
The problem with most discount popups is not the discount. It is that the same code goes to everyone, forever, which teaches shoppers that waiting is free money and turns your margin into a public coupon.
What actually goes wrong
A store adds a popup with WELCOME10. It converts well at first. Then three things happen, in order:
- Repeat visitors learn the code exists and stop buying at full price.
- The code reaches coupon sites and browser extensions, so it gets applied by people who never saw the popup.
- The discount now applies to buyers who had already decided, which is margin spent to change nothing.
The reported numbers still look good, because the code keeps appearing on orders. That is the trap: attribution rises while profit falls.
Five mechanics that prevent it
- One code per shopper, per session. If a code cannot be reused, it cannot be published, shared, or farmed. Shopify enforces single-use natively, so this is a configuration choice rather than a technical challenge.
- A real expiry, visible to the shopper. A countdown to a genuine deadline creates honest urgency. Around sixty minutes is enough to finish a purchase and too short to bank.
- Only on an exit signal. No signal, no offer. This alone excludes the entire group who were going to convert anyway.
- Never on already-discounted products. Stacking a second offer on a sale item multiplies the loss.
- A cart-value floor. Below a certain basket size a percentage costs more than the order earns. Set the minimum and skip the rest.
Choosing the incentive
| Percentage off | Free shipping | |
|---|---|---|
| Cost behavior | Scales with cart size | Roughly fixed per order |
| Best on | Higher-margin or lower-priced items | Lower-margin or heavier items |
| Perception | Lowers the product's value | Removes a friction |
| Risk | Expensive on large baskets | Expensive on bulky shipping |
The question worth asking about any discount
Not "how much revenue carried the code", but "how much of that revenue would have arrived without it". These are different numbers and only the second one tells you whether the discount was an investment or a giveaway.
The way to find out is a holdout: withhold the offer from a random share of leaving shoppers and compare how many of each group bought. If the two rates are close, the offer is not doing much and you can lower or remove it. Clinch has this built in, and reports the comparison directly.
Related reading
How exit-intent detection works · The three layers of cart recovery
Common questions
Why do shared discount codes leak?
Because they work more than once. A code that any visitor can trigger and reuse gets posted to coupon aggregators, browser extensions pick it up, and it is then applied automatically at checkout by shoppers who never needed an incentive.
Is free shipping better than a percentage discount?
Often, on lower-priced carts. A percentage scales with basket size, so on a large order it can cost far more than shipping would. Free shipping also feels like removing a barrier rather than lowering the value of the product.
How short should a discount code last?
Short enough to be believable urgency and long enough to complete a purchase. Around an hour works for most stores: it comfortably covers checkout, but it is too short to save for later or share.
Should every visitor see an offer?
No. Shoppers on their way to checkout should pay full price. Restricting the offer to an exit signal is the single biggest margin protection available, because it excludes everyone who was already going to buy.
Try it on your own store
Clinch is free to install. The Free plan costs $0 per month and takes 10% of revenue it actually recovers, so if it recovers nothing you pay nothing.
Add to Shopify · Free to install