No, not every abandoned cart needs a discount code. Some customers who leave a cart are not put off by the price; they are still undecided or their shopping got interrupted, and a reminder without a code can bring them back too. A code makes sense when what stops the customer is the price or the shipping fee and your gross profit margin can absorb the discount. Even then, do not hand it out unconditionally: set a minimum order value, a short validity period and a single-use limit.
Whether to offer a code comes down to three things: why the cart was abandoned, how much of your gross profit the code takes from each order, and whether your customers will learn to wait for it. Below you will find a method for each, three WhatsApp messages you can adapt and a worked calculation for comparing a period with a code against a period without one.
Whether to offer a code depends on why the cart was abandoned
According to Baymard Institute’s latest quantitative study of reasons for cart abandonment, 42% of US online shoppers have abandoned a cart because “I was just browsing / not ready to buy”. Baymard also gives the distribution of the remaining reasons when that “just browsing” segment is left out. Top of that list, at 40%, is “Extra costs too high (shipping, tax, fees)”. It is followed by “Delivery was too slow” at 20%, “I didn't trust the site with my credit card information” at 19% and “The site wanted me to create an account” at 18%. On the same list, 10% say “The credit card was declined”.
These figures describe US shoppers, and the breakdown in your own store may differ. Even so, they show that putting a product in the cart is not always a decision to buy. A discount does not fix the delivery, trust, account and payment problems on the list; if a customer stopped at one of them and comes back after the reminder anyway, you have taken the same order at a lower profit. A code can work on a customer who has not decided yet, but use the calculation below to see what it costs you. The code is optional in Pushouse’s WhatsApp cart recovery module as well: the message greets the customer by name, and whether to add a discount code is up to you.
You can find out which reason weighs most in your own store in two ways. If your analytics tool shows the checkout steps separately, look at the step where the shipping fee first appears; if most visitors leave at that step, the obstacle is most likely extra costs. If you would rather ask directly, you can set up an exit-intent popup that shows a short survey to people about to leave the site and find out whether price or delivery played a part in their decision. We explain which pages to use, how many questions to ask and how to read the answers in our e-commerce exit survey guide.
Carts where a reminder without a code is enough
If you are setting up automated reminders for the first time, you can find the basic steps in our guide to WhatsApp cart reminders. Send the message without a code in these cases:
- If the customer has bought from you before, they know your store and your prices. Most of the time, what they need is a link that takes them back to the cart in one tap.
- When the cart total is above your free shipping threshold, the customer did not run into an unexpected shipping fee at checkout.
- If the product is already discounted, do not add a second discount on top; reminding the customer of the discounted price in the message is enough.
- When stock is low, “the size you chose is almost sold out” is a reason to come back even without a discount, as long as it is true.
- For a high-value cart with a considered purchase in it (furniture, large appliances or electronics, for example), the customer may be stuck on a question about card installments, the delivery date or measurements. A percentage discount comes to a large amount on these carts but does not settle the question; say in the message that you can answer their questions.
- If the customer reached the payment step and could not complete the order because their card was declined, they had already decided to buy. If your platform lists these orders separately, remind them of the other payment methods you offer, such as bank transfer or cash on delivery, instead of sending a code.
- If your margin is low, the calculation below usually comes out against the code.
What to try before offering a code
If the obstacle is extra costs, look for the fix on the site first. Make the shipping fee and the free shipping threshold visible in the cart, before the customer enters payment details; a customer who left after discovering the total at checkout will meet the same total again when the reminder brings them back. We cover the other cart and checkout obstacles in our article on raising e-commerce sales. In the message itself, you can answer the question on the customer’s mind instead of offering a code: when the order will ship, whether installments are available, or how exchanges work.
If the obstacle is the shipping fee, a percentage discount does not always cover the amount the customer balked at. Take a hypothetical store with a free shipping threshold of 750 Turkish lira (TL), where a customer abandons a 600 TL cart on seeing a 90 TL shipping fee. A 10% code on that cart is worth 60 TL, and the shipping fee stays where it was. Reminding the customer of the 150 TL left to reach the threshold costs you nothing, but it asks them to add to their cart. If you give a free shipping code for this cart, you cover the 90 TL the customer no longer pays. On a 600 TL cart, that amounts to a 15% discount; enter it as 15% in the profit calculation below.
People who have signed up but never placed an order are a separate group. Giving them a code makes more sense, because when they use it you gain a new customer. Still, keep the offer out of the cart message and leave it to the first-purchase incentive message, so the same person does not receive two separate offers. If you gave a welcome code at sign-up and it is still valid, do not issue a new code in the cart message; remind the customer of the existing one and its expiry date.
When does a discount code pay off?
Before you offer a code, do one calculation. This multiplier shows how many times as many orders the message with a code has to bring in to earn the same profit as the message without one: gross profit margin ÷ (gross profit margin − discount rate). You get your gross profit margin by subtracting the product cost from the selling price and dividing the result by the selling price. Do not confuse it with markup, the profit percentage you add on top of cost.
For example, say the cart is 1,000 TL and your gross profit margin is 30%. Each order recovered without a code leaves you with 300 TL, and a 10% code brings that down to 200 TL. If the message without a code recovers 10 orders, your profit is 3,000 TL. To earn the same profit from the same number of abandoned carts, the message with a code has to bring in 1.5 times as many, which is 15 orders. The same 10% code calls for about 1.33 times as many orders at a 40% margin and twice as many at a 20% margin.
The multiplier comes out this high because putting a discount code in a cart reminder means giving a discount to customers who would have come back without it, too. We have kept the calculation simple, so add the message cost and your share of the shipping cost using your own figures. If the multiplier looks unrealistic to you, lower the discount rate first; at a 20% margin, a 5% code calls for about 1.33 times as many orders. With a percentage-off code, a minimum order value does not change this multiplier; it only limits how many orders the code is used on.
If margins differ a lot between your categories, calculate the multiplier for each one. A 10% code, for example, calls for about 1.29 times as many orders on accessories with a 45% margin but three times as many on electronics with a 15% margin. If your messaging tool can send different messages depending on what is in the cart, reserve the code for the categories where the multiplier is low. If it cannot, limit the code’s scope in your platform’s coupon settings and name the excluded categories in the message.
Keep customers from holding out for a code
If every abandoned cart gets the same code, your regular customers may notice, start leaving before they pay and wait for the code. If you do send one, set these limits:
- Send the code only to carts where the calculation above works out. If your tool can follow up on the same cart with a second message, send the first one without a code and keep the code for the follow-up. Our article on abandoned cart message timing covers how long to wait between the two.
- Set a minimum order value. If you send the code only to carts above a certain amount, make that amount the minimum as well; otherwise the customer can remove items and use the code on a smaller order.
- Keep the validity period short, and actually switch the code off when it runs out. A cart code is for products the customer has already chosen; for most stores, a day or two is a reasonable starting point. A code that still works after its deadline makes your next “last day” message harder to believe.
- Make the code single-use and do not give it to the same customer again and again. If your platform allows it, generate a unique code for each customer, since the same code sent to everyone can get passed around.
- Decide in advance whether the code works on discounted products and together with other codes. If a sale discount, a code from the site and the cart code all apply to the same order, the total discount can exceed your gross profit margin.
If you show a public code on the site, for example in a discount tab, do not give a second code in the cart message; remind the customer of the same one. If the offer in the message is more generous than the one on the site, you are rewarding cart abandonment. If a large share of the orders placed with the code comes from the same customers every few weeks, those customers may be abandoning carts to get the code; stop sending them the code or switch it off altogether.
Take the code out of cart messages during a sale
While a site-wide sale is running, a cart code becomes a second discount on top of the sale price and pushes the multiplier up quickly. In a hypothetical store working with a 35% margin on list prices, a product listed at 1,000 TL costs 650 TL. At 20% off in the sale it sells for 800 TL, and the margin falls to 18.75%. Add a 10% cart code to the sale price and the multiplier rises to about 2.14; outside the sale, the same code’s multiplier is 1.4.
During the sale, send the cart message without a code and state the discount that applies to the products in the cart; if the end date and time are fixed, add those too. A message for a cart abandoned in the last hours may arrive after the sale has ended; do not mention the sale price in that message. Once the sale is over, you can go back to reminders with a code.
Sample messages with and without a code
Keep a reminder without a code short and give one useful piece of information. For a customer wondering about delivery times, you could write:
Hello {{customer name}}, {{product name}} is still in your cart. Orders placed by 2 pm on weekdays ship the same day. You can complete your order here: {{cart link}}
If the cart is just below your free shipping threshold, remind the customer of the threshold instead of offering a code:
Hello {{customer name}}, {{product name}} is waiting in your cart. Shipping is on us for orders of 750 TL or more. Back to your cart: {{cart link}}
In a message with a code, state the conditions clearly, so that the customer gets no surprises when trying the code at checkout:
Hello {{customer name}}, here is your 10% discount code for the items in your cart: {{discount code}}. It can be used once on orders of 750 TL or more until 23:59 on {{end date}}, and it does not apply to discounted products. Back to your cart: {{cart link}}
The shipping cut-off time, free shipping threshold, discount rate, minimum order value and validity period in these examples will vary with your own terms. Mention only the conditions you actually apply, and include an opt-out option in every message. Try the code on a test order in your store before sending it; a code that is rejected at checkout can send the customer away from the site again.
Compare the two periods properly when you test a code
Before you switch the code on, you need a figure to compare it against. Send the message without a code for at least two weeks and note how many carts were abandoned in that time and how many orders you recovered from them. If most of your carts sit just below the free shipping threshold, review the threshold before you test a code.
Compare the period with the code against the period when you sent the message without one. Use rates rather than order counts: for each period, divide the number of recovered orders by the number of abandoned carts. Multiply the rate for the period without the code by the multiplier above; if the rate for the period with the code falls below that, the message with a code is earning you less profit.
In a hypothetical store, say four weeks without a code recover 24 orders from 400 abandoned carts, a rate of 6%. With a 30% margin and a 10% code, the multiplier is 1.5, so the message with a code needs a rate of at least 9% to earn the same profit. If four weeks with the code bring in 34 orders from 420 carts, the rate stays at about 8.1%. The code has brought in more orders but left less profit than the period without it. If the minimum order value has changed your average order value, order counts can mislead; in that case, for each period take the gross profit of the recovered orders, subtract the discounts given, divide the result by the number of abandoned carts and compare the two periods on that figure.
If one of the periods coincides with a sale week, the difference may not be due to the code. Where your messaging tool allows it, sending some carts the message without a code and others the message with a code during the same period gives a more reliable result than comparing two periods back to back. For the period with the code, also note how many orders the code was actually used on; orders completed without using the code suggest that those customers would most likely have come back after a reminder without one.
For both periods, take recovered orders and revenue from the same source. If you use Pushouse, both figures appear in your panel; note each period’s figures separately. You can see how the flow works on the cart recovery module page.



