Shopify Discount Codes: Setup, Strategy, and Common Mistakes

Author

Max Prokofjev

Reading Time

8 min read

Shopify Discount Codes: Setup, Strategy, and Common Mistakes

Key Takeaways

  • 27% of shoppers abandon their cart specifically to search for a coupon code, according to a PayPal/Comscore study. If your discount is for everyone, use an automatic discount instead of a code to eliminate this behavior.
  • Unique discount codes in email campaigns drove 39% higher AOV ($116.91) than generic codes ($84.10) and 33% higher than no-discount emails, according to a Seguno study of 65,055 Shopify brand newsletters.
  • Always set three limits on every discount code: expiration date, total usage cap, and per-customer usage limit. Leaving any of these open is how codes end up on RetailMeNot costing you thousands.
  • Shopify allows up to 5 product/order codes plus 1 shipping code per order, with up to 25 active automatic discounts. Since 2023, automatic discounts combine with codes by default — check your combination settings before every campaign launch.
  • Name codes with a consistent convention like CHANNEL-CAMPAIGN-AMOUNT (e.g., IG-SUMMER-15) so you can identify where revenue came from months later without looking up each code individually.
  • An estimated 5-10% of first-purchase discount code redemptions are fraudulent — repeat customers using new email addresses. Single-use unique codes with email verification are the strongest defense.

A PayPal and Comscore study found that 27% of online shoppers abandon their cart to search for a coupon code. That single stat explains both why discount codes are so powerful and why they're so easy to get wrong.

Discount codes are one of the first things every Shopify merchant sets up and one of the first things they mess up. The mechanics are simple — customer enters a code, gets a discount. But the details around limits, combinations, tracking, and abuse prevention are where things go sideways.

How Shopify's Native Discount Codes Work

Shopify gives you four types of discount codes out of the box:

Percentage off. A flat percentage off products, collections, or the entire order. "15% off all summer dresses" or "10% off your whole order."

Fixed amount off. A dollar value subtracted from the order or specific products. "$10 off orders over $75" or "$25 off this jacket."

Free shipping. Removes shipping costs, optionally requiring a minimum order amount. You can restrict this to specific shipping rates or countries.

Buy X get Y. The customer buys a qualifying product or quantity and gets another item free or discounted. "Buy 2 t-shirts, get 1 free."

For each code, you configure which products or collections it applies to, minimum purchase requirements, customer eligibility (all customers, specific segments, or individual customers), usage limits, and start/end dates.

What Shopify Updated Recently

As of 2023, Shopify made a significant change: automatic discounts now combine with discount codes by default. This means if you have an automatic "10% off sitewide" running and a customer enters a "WELCOME15" code, they might get both unless you explicitly configure your combination settings to prevent it.

The current limits: customers can use a maximum of 5 product/order discount codes plus 1 shipping discount code per order. You can have up to 25 active automatic discounts at once. And Shopify's native bulk generation supports up to 10 million unique codes per discount — a feature many store owners don't realize exists.

When to Use Codes vs. Automatic Discounts

This choice changes the checkout experience fundamentally, and most store owners don't think about it carefully enough.

Use codes when:

  • You're distributing a deal through a specific channel (email, influencer, podcast) and want to track which channel drives revenue
  • The offer is exclusive — you don't want every visitor seeing it
  • You're doing customer service recovery ("Sorry about that — here's 20% off your next order")
  • You want customers to feel like they have something special

Use automatic discounts when:

  • The promotion is public and sitewide — adding a code-entry step creates friction for no reason
  • You're running volume tiers or bundle pricing that should just apply when conditions are met
  • You want to eliminate "where's my code?" support tickets
  • You're targeting a behavior (spend $100, get 10% off) rather than a specific audience

Here's the scenario most store owners miss: a customer sees the "Discount code" field at checkout, doesn't have a code, and leaves to Google for one. That 27% abandonment figure from the PayPal/Comscore study is specifically about this behavior. They'll find expired codes on RetailMeNot, get frustrated, and potentially abandon the cart entirely. 46% of shoppers have abandoned a purchase because a coupon code they tried didn't work.

If the discount is for everyone, skip the code. Make it automatic.

The Real Value of Unique Codes: Data From 65,000 Campaigns

A 2025 study by Seguno analyzed 65,055 newsletters sent by Shopify brands and found that unique discount codes dramatically outperformed both generic codes and no-discount emails:

  • Unique code AOV: $116.91 — 33% higher than no-discount emails and 39% higher than generic codes
  • Average selling price: Unique code users purchased products worth more than double the value of other email conversions
  • November/BFCM peak: Unique codes drove $131 AOV vs. $89.23 for generic codes

The takeaway isn't just "use unique codes." It's that unique codes change buyer behavior — they create a sense of personal value that makes customers willing to spend more per order. Generic codes were nearly three times more prevalent than unique codes in the study, meaning most brands are leaving significant revenue on the table.

One exception: generic codes generate 25.4% additional revenue when resent to non-openers, while unique codes only generate an 11% lift on resend. If your strategy involves re-sending the same email, a generic code makes more sense.

Common Mistakes That Actually Cost Money

Not Checking Combination Settings

This is the mistake that blindsides people. Since Shopify's 2023 update, automatic discounts combine with codes by default. Many store owners don't know this until they discover that a customer stacked a 20% product code on top of a free-shipping automatic discount on top of an automatic buy-X-get-Y.

Before any campaign launch: go to your Shopify admin, check every active automatic discount, and verify what's allowed to combine. The five minutes this takes could save you thousands in unintended double-discounting.

Forgetting to Set Expiration and Usage Limits

Every discount code needs three constraints:

  1. Expiration date. Set 30 days for most campaigns, 7 days for flash sales, end-of-day for holiday-specific codes. You'll tell yourself you'll deactivate it manually. You won't.

  2. Total usage cap. If you give an influencer a code expecting 200 uses, cap it at 500 to contain the downside. Without a cap, one viral Reddit post could cost you thousands.

  3. Per-customer limit of 1. This prevents someone from using your "WELCOME10" code on every order for the next year. It happens more often than you'd think — an estimated 5-10% of first-purchase discount redemptions are people re-using first-time buyer codes with new email addresses.

Letting Codes Leak to Aggregator Sites

P.F. Candle Co. learned this the hard way. Their percentage of annual sales from promo codes and discounts jumped 22% compared to the prior year — not because they were running more promotions, but because their codes were leaking to coupon aggregator sites like RetailMeNot. Founder Kristen Pumphrey noted the difficulty of getting codes removed once they're indexed.

Anyday, a microwave cookware brand, had a similar experience — leaked codes were eating into order margins from the very beginning, and even Shopify's backend limiting couldn't fully prevent browser extensions like Honey from applying them.

The double hit: you lose the email signup you were trying to collect (the customer bypasses your popup and uses the leaked code directly), and if the aggregator is an affiliate, you pay a commission on a conversion you would have gotten anyway.

Prevention:

  • Use single-use unique codes instead of shared codes
  • Set total usage caps relative to your expected audience
  • Google your code prefixes weekly during active campaigns
  • Monitor usage daily during the first week of any campaign
  • Consider tools that block browser extensions from auto-applying codes at checkout

Using Meaningless Code Names

"DISC1" and "PROMO2" tell you nothing three months later when you're trying to analyze channel performance.

Use a naming convention that encodes useful information:

Convention Example What It Tells You
CHANNEL-NAME-AMOUNT IG-SARAH-10 Instagram, influencer Sarah, 10% off
EVENT-YEAR-AMOUNT BFCM25-20 Black Friday 2025, 20% off
TYPE-CAMPAIGN-OFFER EMAIL-JUNE-FREE Email, June campaign, free shipping
RECOVERY-TICKET CS-4521-15 Customer service, ticket #4521, 15% off

When you export your orders and sort by discount code, these names immediately tell you what happened without any detective work.

Launching Without a Test Order

Before sharing any code with a single customer: create a test order. Check that the discount applies to the correct products. Verify it doesn't combine with something it shouldn't — especially since automatic discounts now combine with codes by default. Confirm the minimum purchase requirement actually works. Look at the total with tax and shipping.

This takes five minutes. Skipping it risks a broken code in a Klaviyo blast that generates 200 "your code doesn't work" replies, or worse — a code that gives a bigger discount than intended across 500 orders before you notice.

Where Discount Code Apps Add Value

Shopify's native system handles most single-code scenarios well. Apps fill specific gaps:

Better organization at scale. When you have 30+ active codes across campaigns, influencers, and channels, Shopify's list view gets unwieldy. Apps provide dashboards with search, filtering, and grouping. Buno ties discount codes to specific bundle and volume campaigns so you can see performance in context alongside your bundling strategy.

Per-code analytics. Native Shopify shows "this discount was used 347 times." Apps can break it down: "SARAH15 drove $2,400 in revenue with a $68 AOV, while MIKE15 drove $800 with a $40 AOV." That granularity is what tells you which influencer to renew and which to drop.

Advanced validation. Codes that only work for customers with a specific email domain, codes that adjust discount based on cart contents, or codes restricted to customers who arrived from a particular URL. These scenarios are impossible natively.

Shopify Functions integration. Modern discount apps run their logic through Shopify Functions — server-side calculations inside Shopify's infrastructure. This replaced the older Shopify Scripts approach (deprecated in 2023 for non-Plus merchants) and is faster, more reliable, and doesn't inject JavaScript into your theme. The Discount Function API supports up to 25 active discount functions per store.

Organizing and Tracking Performance

Once you're running more than a handful of codes, you need a system:

Maintain a tracking doc. A spreadsheet listing every active code: name, discount type/amount, channel, start/end date, usage limits, and purpose. Update it whenever you create or deactivate a code. This becomes invaluable when you're planning next quarter's campaigns.

Audit monthly. Deactivate expired or abandoned codes. Every forgotten code is a liability — especially the ones sitting on coupon aggregator sites. Don't delete them; deactivated codes keep their usage data for reference.

Review quarterly. Compare performance across codes and channels. Which codes have the best revenue-to-discount ratio? Which bring in customers who return at full price? Which channels consistently attract deal-seekers who never buy without a code?

Track code-acquired customer behavior. The real test of a discount code strategy isn't the initial sale — it's whether code-acquired customers come back at full price. If your WELCOME10 customers have a 40% repeat purchase rate at full price, the code is working. If they only return when there's another code, you're training discount dependency.

The point of discount codes isn't just to move product. It's to create a paper trail that tells you what's actually working in your marketing — and what's just costing you margin. The 62% of online shoppers who actively search for promo codes are going to find something. The question is whether they find your code on your terms, or someone else's leaked version on RetailMeNot.

Frequently Asked Questions

A discount code requires the customer to type or paste a code at checkout to get the deal. An automatic discount applies on its own when conditions are met (like cart total or product quantity). Codes work better when you want to track specific campaigns or limit distribution. Automatic discounts work better when you want everyone to see the deal without friction.

Shopify allows a maximum of 5 product/order discount codes plus 1 shipping discount code per order. However, you control which discount types can combine through your combination settings. Since a 2023 update, automatic discounts combine with codes by default — which means your new promo code might stack with an automatic discount you forgot was running.

In your Shopify admin, go to Discounts and click on any active code to see usage stats including total uses, total sales attributed, and average order value. For deeper analysis, export your orders and filter by discount code to see customer behavior patterns. A Seguno study of 65,055 Shopify newsletters found that unique codes drove 39% higher AOV than generic codes — so your tracking method matters.

Use branded codes for public campaigns (SUMMER25, WELCOME10) because they're memorable and reinforce your marketing. Use unique random codes for per-customer situations like influencer tracking, customer service recovery, or personalized email campaigns. Unique codes in email campaigns drove 33% higher AOV than no-discount emails in 2024.

Use unique single-use codes instead of shared codes. Set per-customer limits to 1. Set total usage caps matching your expected audience. Google your code prefixes weekly during active campaigns to check for leaks. Brands like Anyday and P.F. Candle Co. have reported leaked codes eating significantly into margins, with P.F. Candle Co. seeing promo code usage jump 22% year-over-year due to coupon aggregators.

Ready to maximize your sales and AOV?