How to use discount codes without losing money

A discount code can bring in a first order, clear old stock or reward a loyal customer. It can also quietly turn a profitable product into a loss. The difference is nearly always a few minutes of arithmetic done before the code goes live.
Start with your margin
Before you pick a number, work out what one sale leaves you. Take the selling price and subtract what the item costs you, any packaging, and the payment processing fee. What remains is your profit per sale, and a discount comes straight out of it.
Processing fees matter more than people expect, because part of the fee is a fixed amount. At the standard US rate, PayPal charges 3.49% + $0.49 on PayPal Checkout, and Stripe charges 2.9% + $0.30 on a card payment. A discount lowers the percentage part, but the fixed part stays the same.
Here is a $30 item that costs you $12 to make, paid by card through Stripe, with and without a 25% code:
| Full price | 25% off | |
|---|---|---|
| Customer pays | $30.00 | $22.50 |
| Your cost of the item | $12.00 | $12.00 |
| Stripe fee | $1.17 | $0.95 |
| What you keep | $16.83 | $9.55 |
A 25% price cut removed about 43% of the profit on that sale. A discount is never "just 25%". Always look at what it does to the money you keep.
Percentage or fixed amount?
Both do the same job, so choose by what you sell.
- Percentage off scales with the order. It suits stores with a wide range of prices, because 10% off a $20 item and 10% off a $200 item both feel proportionate. The risk is large orders: 20% off a $500 basket is $100.
- Fixed amount off is easier to cap. "$10 off" costs you exactly $10 on every order that uses it. It suits stores with similar prices, and it feels bigger on small items, where $10 off a $25 item is 40%.
In Payly, a fixed amount never takes off more than the eligible items cost, so a code cannot push an order below zero. Shipping is not discounted, and tax is worked out on the price after the discount.
Add limits that protect you
A code with no limits is an open invitation. Four settings keep it safe, and Payly offers all of them. See Create discount codes for where each one lives.
- Minimum spend. This is the smallest total of items in the cart, before the discount, that the code accepts. Setting $50 off a $100 minimum nudges shoppers to add a second item, which often covers the cost of the discount.
- Start and end dates. A code works through the whole end date. A dated code creates real urgency without any pressure tactics, and it stops itself, so you cannot forget to switch it off.
- Total uses allowed. This caps how many orders can use the code in all. Refunded orders still count as uses, so allow a little room. Leave it at zero for unlimited.
- What it applies to. You can aim a code at everything, at one-off items only, or at subscriptions only. If you sell subscriptions, decide how many payments the discount should cover, because it can apply to the first payment only or to a set number of payments.
A customer can use one code per order, so you do not have to worry about codes stacking.
Ideas that work without hurting margin
- A welcome code for first orders. Keep it small and give it a use limit.
- A threshold code. "$10 off orders over $60" lifts your average order while still leaving a profit.
- A clearance code. Use it only on items you want to move, and set the end date to match.
- A private code for one group. Give a code to a customer who left a review, or to a community you sell to, and cap it at a handful of uses.
- A named code per channel. A different code for each place you promote lets you see which one brings orders. The code list shows how many times each has been used.
Test every new code in your own store before you announce it. Turn on test mode, place a practice order with the code, and check the discount line and the total. See Take test payments with test mode.
Common mistakes
- Discounting everything, all the time. Shoppers learn to wait for the code.
- No end date. A forgotten code keeps costing you.
- Pricing at cost. If a discount drops your price near your cost, the fixed processing fee can push the sale into a loss.
- Forgetting subscriptions. A code that discounts every payment of a subscription runs for as long as the subscription does. Choose that on purpose.
Questions
Can customers enter the code in lowercase?
Yes. Payly saves codes in capital letters and accepts them in any case at checkout.
Does the code box always show at checkout?
It appears only while your store has at least one code that can be used right now. Paused, expired and not-yet-started codes do not show the box.
Can I pause a code instead of deleting it?
Yes. Pause it from the code list, and resume it when you want it back.
Prices as published by each company for the US in October 2026. Prices can change; check each company's own pricing page.


