Strategy

10 Promotion Mistakes That Hurt Profit Margins on Shopify

10 promotion mistakes that quietly erode Shopify profit margins, from unpriced BOGO deals and accidental discount stacking to fake urgency, with a fix for each.

10 Promotion Mistakes That Hurt Profit Margins on Shopify

Most promotions that lose money don't fail loudly. Orders come in, revenue rises, and the dashboard looks healthy until someone compares the month's profit with the month before. The damage sits in places a sales report doesn't show: the margin on the second unit, the discounts that stacked at checkout, and the customers who learned to wait for the next sale.

The ten mistakes below are the ones that show up most in Shopify promotion setups. Each comes with what it looks like in practice, the evidence behind it where evidence exists, and a fix you can apply before your next offer goes live.

Key Takeaways

  • Price every offer from contribution margin before launch. A free second unit loses money below a 50% margin and only breaks even at 50%. 
  • Discounts on Shopify combine only when each one's settings allow it, so check combination settings whenever you add an offer.
  • Reference prices and countdown clocks both carry legal risk when they aren't real, under the FTC's pricing guides and its 2022 dark patterns report.
  • Deeper discounts lowered later purchases from established customers in a Marketing Science field study, so the best customers shouldn't get the deepest deals.
  • About one-third of a typical promotion bump is demand pulled from other periods, per Van Heerde, Leeflang, and Wittink, so a sale's revenue overstates its profit.

Ten Mistakes and How to Fix Them

1. Launching an Offer Without Pricing It From Margin

A merchant picks "buy one, get one free" because it sounds generous, or a 20% sitewide code because a competitor ran one. Nobody checks what the offer does to profit per order.

The arithmetic is unforgiving. A free second unit earns nothing when contribution margin is 50%, and it loses money below that. A 20% discount at a 40% margin requires a 100% increase in units to keep gross profit flat, because the formula is the discount divided by the margin left after it.

The fix: calculate break-even before launch. Write down contribution margin, the discount, and the unit lift you need, and compare it with your best realistic estimate. Pumper's guide to quantity break pricing shows how to price tiers from the marginal cost of each added unit.

2. Counting the Discount and Ignoring What Surrounds It

The discount is the visible cost of a promotion. The costs around it are less visible: shipping for a heavier parcel, payment fees on each order, packaging for two units, and the share of items that come back.

A promotion that adds units adds all of these, and stores running BOGO or bundle deals on bulky goods feel it most. The margin that looked fine at the product level shrinks by the time the parcel leaves the warehouse.

The fix: build an order-level contribution margin: price, minus product cost, payment fees, packaging, shipping you pay, and expected returns. Test every offer against that number instead of the product margin. The guide to BOGO sale ideas for Shopify flags the formats where fulfillment cost bites hardest.

3. Letting Discounts Stack by Accident

A store adds a seasonal automatic discount, keeps a welcome code running, and installs an app that applies its own offer. On a busy weekend, a shopper's cart carries all three.

Shopify combines discounts only where each one's settings allow it. It calculates product discounts first, then order discounts on the revised subtotal, then shipping discounts, and an order can carry up to five product or order discount codes alongside one shipping code. When discounts can't combine, the best available one applies (Shopify Help Center).

That makes the combination settings the lever, and the risk lives in any rule that combines with more than you assumed.

The fix: list every active discount, open each one's combination settings, and place a test order with the stack you worry about. Pumper has its own switches for stacking with Shopify's product, order, and shipping discounts, so set those deliberately.

Choose How Your Offers Stack

Pumper gives you separate switches to control whether its discounts combine with Shopify product, order, and shipping discounts. Choose the discount combinations that work best for your store and promotional strategy.

Get Started With Pumper →

Explore Quantity Breaks →

4. Advertising a "Was" Price That Never Existed

A compare-at price makes a discount look bigger, and a compare-at price that nobody ever paid makes it look bigger still. It also invites scrutiny.

In the United States, the FTC's Guides Against Deceptive Pricing, at 16 CFR 233.1, say a former price should be the actual, bona fide price offered to the public regularly for a reasonably substantial period. A price inflated only to make a later reduction look large is treated as fictitious. Shoppers notice as well. A Which? study tracked 208 Black Friday deals for six months either side of the sale and found 98% were the same price or cheaper at other times (Which?, November 2023).

The fix: use a compare-at price only if the item actually sold at that price for a meaningful stretch, and keep records. If it didn't, show the saving as a discount on the current price instead.

5. Running Urgency That Isn't Real

A countdown timer that resets at midnight, a "limited stock" message on an item you hold hundreds of, or a "last chance" email that returns every Friday. Each squeezes a few extra sales and spends trust to do it.

The FTC's September 2022 dark patterns report singled out countdown timers on offers that aren't actually time-limited, which it described as designed to make shoppers believe they have limited time to buy (FTC, September 2022).

Scarcity claims work the same way. A "low stock" badge is accurate when the shelf is nearly empty and misleading when the warehouse is full, and shoppers who check back a week later find out which one it was. The cost of that discovery lands on every future message you send, including the honest ones.

The fix: attach a deadline only to offers that end on it, and end them. The guide to limited-time offer strategies covers how to make a deadline credible, and how often a store can run one before it stops working.

6. Giving Your Best Customers the Deepest Deal

A sitewide discount reaches everyone, including shoppers who would have paid full price tomorrow. Loyal customers are often the first to use it, because they're the ones watching your emails and banners.

Anderson and Simester ran three field experiments with a catalog retailer. Deeper current discounts raised later purchases from first-time customers and lowered them from established ones (Anderson & Simester, Marketing Science, 2004). The authors trace the gap to forward buying, selection, learning, and higher deal sensitivity.

The fix: reserve the deepest offer for first-time buyers and keep returning customers on shallower, structural offers such as quantity tiers. A tier discount reaches only the shoppers who raise their order, so a loyal customer who buys their usual single unit still pays full price, and the saving goes to the behavior you wanted to reward. Pumper's guide to the psychology of Shopify promotions shows how to match an offer to a customer type.

7. Treating the Sales Bump as Profit

The promotion ends, the revenue chart peaks, and the team reads the peak as the result. Some of that peak is customers who would have bought later, and some is customers who would have bought anyway.

Van Heerde, Leeflang, and Wittink decomposed promotion bumps across four store-level scanner datasets. On average, roughly a third of the bump was demand borrowed from other periods, with the rest split between shoppers switching brands and genuine category expansion (van Heerde, Leeflang & Wittink, Marketing Science, 2004).

The fix: measure the four weeks after the promotion against a baseline built from the same weekdays before it started, and judge the offer on profit per visitor over the full window. If the weeks after dip by most of what the promotion week added, the offer moved sales around the calendar without adding many. The AOV guide explains which order-value numbers to read together.

8. Attracting Buyers Who Only Buy on Deals

Deep, loud discounts attract shoppers who respond to deep, loud discounts, and few others. If those shoppers never return at full price, the acquisition cost of the promotion never pays back.

A 2016 Marketing Letters paper modeled online discount vouchers and concluded they raise profit only under narrow conditions, mostly for firms that are patient or little-known and for those with low marginal costs (Edelman, Jaffe & Kominers, 2016). Check whether your store meets both conditions before copying the tactic.

The fix: acquire with a shallow, structural offer such as a bundle or a quantity break, where the saving is tied to buying more. A first-order discount should stay modest unless your repeat purchase rate justifies it.

9. Leaving an Offer Running Without an Owner

A common version: an offer launched for a campaign keeps running six months later, the free item sells out, the discount silently stops working, and nobody notices until a customer emails.

Shopify's help documentation for Buy X get Y discounts says that without an end date, the discount doesn't expire. Customers must add all qualifying and free items to the cart themselves, since free items aren't added automatically, and if free-product inventory reaches zero, those products show as sold out, and the discount can't be used (Shopify Help Center).

The fix: give every offer a named owner, an end date, and an inventory check. Put the end date in the calendar of the person who owns the offer, and add a weekly stock check on any free item for as long as the offer runs. An offer treated like inventory gets counted, and one treated like a setting gets forgotten. Pumper’s free Offer Audit checks app setup and offer health in one click. 

Pumper's walkthrough of Shopify automatic discounts explains how to set rules that run on schedule, and its free gift is added to the cart automatically when a tier is unlocked, which removes one manual step.

10. Overcorrecting by Quitting Promotions Altogether

Some merchants read the earlier mistakes and conclude that promotions are the problem. The record of a large retailer that tried the opposite is instructive.

J.C. Penney dropped coupons and most sales in 2012 in favor of everyday low prices. Its fiscal 2012 loss reached $985 million, against $152 million the year before, and the stock had lost about 60% of its value since early 2012 (Christian Science Monitor, February 2013). The chain then said it would hold sales every week.

The episode shows what removing every promotion at once can do. The retailer's own correction was to bring sales back, which suggests shopper expectations were set well before the experiment began.

The fix: keep promotions and change their design. Use structural offers that raise order value year-round, and save deep, dated sales for the calendar moments that justify them, such as the ones in Pumper's Black Friday promotion ideas.

A Pre-Launch Checklist

Run any new offer through these six questions before it goes live.

  1. What is the contribution margin per order after the discount, shipping, fees, and returns?
  2. How many extra units or new buyers does the offer need to break even?
  3. Which other discounts can combine with it at checkout?
  4. Is every price and deadline in the copy real?
  5. Who sees the deepest tier, and would you give it to your best customer?
  6. What is the end date, and who checks it?

If an answer is missing, the offer isn't ready. A short pause costs less than a long promotion.

Set Margin-Safe Offers You Can Stop on a Date

Configure tiers, add-ons, and discount combination settings in one offer with Pumper. Turn individual tiers on or off whenever needed without deleting them, giving you more control over your promotions and margins.

Get Started With Pumper →

Explore Quantity Breaks →

Frequently Asked Questions

What is the most common promotion mistake?

Launching without pricing the offer from contribution margin. It sits underneath most of the others, since stacking, deep discounts, and free units all become costly when the margin was never checked.

How do I know if a promotion lost money?

Compare gross profit per visitor for the promotion window and the four weeks after against a baseline period. If revenue rose and profit per visitor fell, the offer cost more than it earned.

Should I stop running sales?

Stopping entirely carries its own risk, as the J.C. Penney reversal shows. Redesign them so they raise order value and reserve the deepest discounts for first-time buyers.

Build Offers That Hold Up

The common thread across all ten is that a promotion's cost shows up somewhere other than the sales report. It sits in margin per order, in the discounts that stacked, in the customers who adjusted their expectations, and in the weeks after the clock stopped.

Fixing that doesn't need a new tool. It needs a short pre-launch check, an end date for every offer, and the habit of judging results on profit. For a side-by-side view of the offer types worth building, see the guide to Shopify promotion strategies.

Start With One Offer You've Priced From Margin

Get started with Pumper's free plan, covering up to $300 in extra revenue. Manage quantity breaks, bundles, BOGO deals, and free gifts from one dashboard, with the flexibility to build offers around your margins.

Get Started With Pumper →

Explore Product Bundles →

Ready to pull bigger orders?

Join 20,000+ Brands running Pumper on Shopify.

Install Free on Shopify