End-to-end Shopify discounts guide — seven mechanisms, native vs apps vs Functions, B2B price lists, stacking, ROI math, playbooks, edge cases, benchmarks, and compliance.
April 26, 2026·21 min read·
Listen to a short brief of this article
Hands-free while you multitask
Full article podcast:
Key Insights in 60 Seconds
What Shopify natively supports, when apps and Functions earn their keep, and how to keep margin intact under promo pressure.
Discounts are a margin tool, not a growth tool. The mechanic matters less than whether margin can absorb it.
Seven native mechanisms cover ~90% of cases — automatic, code, BOGO, volume, free shipping, B2B price lists, gift cards.
Apps and Functions fill the last 10% — bespoke logic, repricing, or stacking native rules can't express.
Break-even uplift grows non-linearly. A 20% promo at 35% margin needs 133% more orders just to stay flat.
EU Omnibus and US MAP rules apply. Show 30-day reference prices; respect supplier price floors.
Stacking is the silent killer. Without combination rules, two codes can take 40% off a product.
What You'll Learn
1What Shopify natively supports (and what it doesn't)
2How to choose the right discount mechanic per goal
3Margin math: when a promo actually pays back
4B2B catalogs, price lists, and quantity rules
5Stacking, compliance, and trust-safe promo design
6When to reach for Functions, apps, or custom code
In This Article
What Counts as a Shopify Discount
On Shopify, a discount is any rule that reduces what a customer pays at checkout — either on a product, the cart total, or shipping. The Shopify Admin treats discounts as a first-class object: each one has a type, eligibility, schedule, usage limit, and combinability flags. Apps and Shopify Functions can extend the type, but every discount that reaches checkout still flows through the same engine and respects the same combination rules.
That uniformity matters because it means you don't need an app to do most of what merchants think requires one. Native Shopify covers automatic discounts, codes, BOGO, free shipping, and (on Plus) B2B price lists out of the box. Apps and Discount Functions exist for the genuinely custom 10% — not the everyday 90%.
One product, six different P&L outcomes
A $100 SKU at 40% margin can be discounted via: (1) a 15% automatic site-wide promo, (2) a WELCOME10 code, (3) a BOGO that gives a free $20 add-on, (4) a free-shipping threshold at $80, (5) a Plus B2B price list at $85 net, or (6) a Functions rule giving repeat customers $5 off. Same product, six different P&L outcomes — and gift cards add a seventh path that behaves as cash, not a discount.
The Seven Discount Mechanisms
These seven are what Shopify ships natively. Read them as a menu: pick the one whose strengths match the goal you actually have, not the one that's most fashionable that quarter.
Automatic discounts
No code required
Apply automatically at checkout when conditions are met (cart total, product set, customer tag). Best for site-wide sales, Black Friday, or always-on customer-tier discounts. Note: app- and Function-based automatic discounts are capped at 25 active per shop (raised from 5 in November 2024).
Discount codes
Acquisition & influencer
Manually entered at checkout. Best for influencer codes, email pop-ups, retargeting, and abandoned-cart recovery. Cheap to issue, easy to track per-channel — but the most diluted to your brand.
Buy X get Y (BOGO)
AOV uplift
Buy two get one free, buy a shirt get socks free, etc. Native in Shopify with both code-based and automatic variants. Strongest mechanic for raising AOV without straight discounting the lead product.
Volume / quantity breaks
Bulk & B2B-ready
Tiered pricing per quantity (e.g. 10% off at 5 units, 20% off at 10). Native via quantity rules (B2B) or via discount apps for B2C. Margin-friendly because the discount unlocks at scale, not at first unit.
Free shipping
Highest lift per margin point
Threshold-based or unconditional. Consistently the cheapest way to lift conversion in DTC because shipping is the most cited cause of cart abandonment. Configure once, A/B-test the threshold.
B2B price lists & catalogs
Plus-only, segment-safe
Shopify Plus B2B uses catalogs, customer-specific price lists, and quantity rules — no public discount, no leakage to retail customers. The cleanest mechanism when wholesale and DTC share a store.
Gift cards
Cash equivalent, deferred revenue
Native on every Shopify plan. Sold as a product or issued manually; redeemed at checkout like cash. Useful for refunds-without-cash, loyalty rewards, and influencer seeding. Note: gift cards are deferred revenue, not a discount cost — track them separately in the P&L.
Mechanism vs Goal Map
No mechanism wins on every axis. The radar below scores each one against six common merchant goals — use it as a fast filter before you pick the tool.
Native vs Apps vs Shopify Functions
The decision tree below is the one I run with every store: start native, escalate to an app only for a specific gap, escalate to Functions only when a vendor app would be too rigid or too expensive at scale. Inverting that order is how stores end up paying $300/month for behaviour Shopify ships for free.
Use Case → Right Tool
Use case
Native Shopify
App
Functions
Site-wide % off (BFCM)
Automatic discount
—
—
Influencer / email codes
Discount codes
—
—
Tiered cart total (spend $X get Y%)
Automatic discount
—
Custom logic if combined
BOGO / Buy X get Y
Buy X get Y discount
—
—
Free shipping over threshold
Shipping discount
—
—
Wholesale price lists per customer
B2B catalogs (Plus)
Bold, Wholesale Gorilla on non-Plus
—
Competitor-based dynamic pricing
—
Prisync, Dealavo
—
Custom stacking rules across products
Combinable settings (limited)
Promo apps
Discount Functions
Geo or market-based pricing
Markets pricing
Regios, Geo apps
Discount Functions
Hide discounted price from select customers
—
Limited
Discount Functions
Gift card issuance & redemption
Gift cards (all plans)
Rise.ai for advanced gifting
—
Loyalty points & tier discounts
—
Smile, LoyaltyLion, Yotpo
Functions for redemption rules
Abandoned-cart recovery code
Discount codes (manual)
Klaviyo, Shopify Email automations
—
Editorial mapping based on current Shopify capabilities. Confirm app fit against your specific stack before installing.
Native vs Apps vs Functions — Choose by Constraint
Editorial decision frame; revisit annually as Shopify ships new native discount types.
Which Path Fits Your Store? (Quiz)
Five questions. The result tells you whether to stay native, add one app, or invest in Shopify Functions. Be honest about engineering capacity — getting that wrong is the most common reason a discount programme stalls.
Discount Path PickerFind the lightest setup that solves your goal mix.
Question 1 of 5
What's the primary goal of the next promo you're planning?
The Discount Math: Margin Before Mechanic
Most discount programmes fail at this step — not at setup, not at execution. The maths are not glamorous, but they are decisive: a discount of d off a product whose contribution margin is m requires extra sales of d / (m − d) just to keep the same gross profit. So a 20% promo at 35% margin needs 133% more orders to break even, and a 30% promo at 35% margin needs 600% more orders. Below 30% margin, anything heavier than ~10% is structurally a loss-leader.
Break-Even Uplift by Discount %
The single rule that prevents most discount disasters
Cap the discount at margin minus 5–10 percentage points. If your contribution margin is 35%, your maximum survivable discount is ~25–30%. Any deeper and you're paying customers to take product. Make this floor a hard config in your promo planning sheet, not a vibe.
Discount ROI Calculator
Plug in your AOV, baseline orders, contribution margin, the discount you're considering, and the uplift you expect. The calculator returns net profit before and after, the absolute and percentage profit delta, and — most importantly — the minimum uplift required to keep last month's profit. If your honest forecast is below that number, the promo loses money before any creative is shipped.
Discount ROI Calculator
Model gross profit before, during, and after a promotion. The break-even number tells you the minimum uplift you need just to keep last month's profit.
Baseline revenue
$40,000
Profit $16,000
Promo revenue
$47,600
Profit $14,000
Profit delta
$-2,000
-12.5% vs baseline
Break-even uplift
60%
Minimum extra orders just to match baseline profit
Below break-even — needs more uplift
* Model assumes COGS scales linearly with units and ignores fixed costs, ad spend, and refunds. Use it for directional decisions, not P&L.
Conversion Lift vs Margin Hit by Promo Type
Different mechanics buy conversion at very different prices. The two best mechanics on lift-per-margin-point are almost always free shipping and loyalty perks; sitewide percent-off and first-order codes are the most expensive levers in the toolkit.
Step-by-Step Setup in Shopify Admin
The Shopify Admin makes creating a discount almost suspiciously easy: Discounts → Create discount → pick type → set rules → save. Which is exactly why so many merchants ship promos that are technically fine and economically wrong. The seven steps below put guardrails around that flow.
1
Define the single goal
Acquisition, AOV uplift, retention, clearance, or B2B segmentation. One goal per promo. Mixing two is the #1 reason promos look 'meh' in reporting — you can't tell which lever moved.
2
Check the margin floor
Compute (margin − discount). If it goes negative, you're paying customers to take product. Cap the discount at margin minus your minimum acceptable contribution per order — usually 5–10 percentage points.
3
Pick the mechanism
Match the goal to one mechanic from the table above. Acquisition → code; AOV → BOGO/volume; retention → automatic with customer tag; B2B → catalog price list. Resist combining mechanics until iteration #2.
4
Build it in Shopify Admin
Discounts → Create discount → choose type. For automatic discounts, pick eligibility (all customers, segment, or tag). Set start/end dates explicitly — open-ended promos almost always run too long.
5
Configure combinations carefully
Decide whether the new discount can stack with order, product, or shipping discounts. The default is usually 'no' — open it only when you've modelled the worst-case stacked margin.
6
QA on a draft order
Create a draft order with the conditions, apply the discount, and verify the final price matches your model. Bad discount logic is invisible in the admin and very visible on a $0 order in reporting.
7
Measure margin, not just revenue
Track gross profit, refund rate, and AOV by promo (not just total revenue). 'Revenue uplift' on a discount is meaningless without the margin number — that's how merchants 'grow' themselves bankrupt.
Video: Automatic Discounts in Admin
A short walkthrough from Shopify Help Center on building an automatic discount end-to-end in the admin — useful as a reference if you're configuring your first one.
How to Create Automatic Discounts — Shopify Help CenterOfficial Shopify Academy walkthrough of building an automatic discount in the admin.
Use-Case Playbooks
Most stores need fewer playbooks than they think — and most of those playbooks are variations on six recurring patterns. Each one below pairs a goal with a mechanic, an opening cap, and the channel/app stack that ships it without bloat.
1
Welcome / first-order popup (10–15% code)
Trigger an email-capture popup after 10–20 seconds or 30% scroll. Issue a single-use code (e.g. WELCOME10) with 14-day expiry, valid on first order only, excluding sale items. Apps: Klaviyo, Privy, or native Shopify Forms + Shopify Email. Cap at 15% — anything deeper trains discount-hunting from day one.
2
Abandoned-cart recovery (small recovery code)
Send a 3-email sequence: 1h (no discount), 24h (free shipping), 72h (5–10% code, single-use). Use Shopify Email automations or Klaviyo. Never lead with the discount — recovery rate is comparable, but you don't burn margin on customers who would have returned anyway.
3
Loyalty / VIP tier discounts
Use customer tags + automatic discount eligible to a segment (Bronze/Silver/Gold). For points-based loyalty (earn → redeem), install Smile, LoyaltyLion, or Yotpo Loyalty — all integrate with the native Shopify discount API. Keep tier perks small (5–10%) but compounding (free shipping + early access).
Plan ≤6 sitewide promo windows per year: BFCM (5 days), Boxing/Year-end (7 days), Valentine's, Mother's/Father's Day, Back-to-School, brand birthday. Each with hard end date, fixed % cap, and category exclusions defined 30 days in advance. Predictable beats deep — fatigue kills margin faster than depth.
Issue unique codes (CREATOR10) per partner. Use Shopify Collabs (free, native) or third-party affiliate apps (Refersion, UpPromote) for per-creator commission tracking. Cap at 10–15% to leave room for the affiliate payout without going under your margin floor.
6
Win-back for lapsed customers (90+ days)
Identify customers with no order in 90/180 days via Shopify Segments. Send a one-time, time-limited code (15% / 7 days). Track repeat-purchase rate vs control — win-back economics often beat new-customer acquisition by 3–5×.
Tooling notes for the playbooks above: the loyalty pattern usually ships with Smile or LoyaltyLion; abandoned-cart and welcome flows run cleanly on Klaviyo or native Shopify Email; influencer codes are simplest via Shopify Collabs (free) before reaching for paid affiliate platforms.
The 'one playbook at a time' rule
Don't roll out three playbooks the same quarter — you won't be able to attribute lift to any single mechanic. Ship one, measure for 30–60 days, lock its config, then add the next.
Combining & Stacking Discounts
Shopify groups discounts into three categories — Order, Product, and Shipping — and a customer can combine at most one of each, provided every involved discount is explicitly marked as combinable with the others (official rules). Combinability is opt-in, not on by default. That is a feature: most accidental 35–40% discounts come from someone toggling a promo as combinable without checking what else is live.
1
Choose one per category
Shopify groups discounts as Order, Product, and Shipping. Customers can combine at most one of each — provided every applied discount is marked as combinable with the relevant categories.
2
Default to non-combinable
Combinability is opt-in. Toggle 'Combines with other discounts' only after you've calculated the worst case (lowest-margin product × highest stacked discount).
3
Cap with minimum prices
Use price floors per product (or via Functions) to make sure no combination drops below your hard margin floor. Easier than trying to reason about every possible stacked combo.
4
Test the stack live
Build a test cart with every active promo applied. If the cart total is uncomfortable, the rules are wrong — not the cart.
The 'worst basket' test
Before publishing a combinable discount, build the worst possible cart: lowest-margin product, highest stacked discount, free shipping, smallest qualifying quantity. If that basket's gross margin makes you wince, the combinability flag is wrong — not the promo.
Discounts for B2B & Wholesale
Wholesale discounting on a single Shopify store used to be painful — it required apps that bolted parallel pricing onto the storefront and broke at every Liquid update. Native B2B on Shopify Plus solved that by treating wholesale as a first-class object: catalogs contain prices and quantity rules, catalogs are assigned to companies, and customers see only what their company is entitled to. No public code, no segment-tag gymnastics, no risk of a wholesale price ending up on a B2C product page screenshot.
1
Catalog → companies → customers
On Shopify Plus, build a Catalog (the products + prices a buyer sees), assign it to a Company, and assign Customers to that company. Discounts live as price lists in the catalog — no public visibility.
2
Quantity rules per SKU
Use quantity rules (min, max, increment) per product or variant to enforce case packs and bulk minimums. Combine with tiered prices for true volume discounting.
3
Volume pricing tiers
Each catalog supports volume pricing — e.g. 5% off at 24 units, 10% at 100. Cleanest way to do B2B discounts without public codes leaking to DTC customers.
4
Net payment terms (optional)
Pair pricing with payment terms (Net 7, 30, 60). The combination of catalog + terms is what most non-Plus 'wholesale' apps fail to replicate cleanly.
On Basic, Grow, and Advanced, hybrid B2B/DTC is workable via apps like Bold Custom Pricing or Wholesale Gorilla, but every additional segment increases the surface area for mis-configuration. Once wholesale clears ~20% of revenue, the upgrade to Shopify Plus usually pays back within months — see our B2B wholesale guide for the full economics.
Advanced: Shopify Functions & Apps
Shopify Functions are the modern replacement for the legacy Plus-only Shopify Scripts (officially deprecated on June 30, 2026) and let any developer ship custom product, order, and shipping discount logic that runs at checkout. They are cheap to deploy if you have engineering, and unbeatable for rules native settings can't express — per-customer dynamic pricing, complex stacking, exclusions, geo-aware rules without Markets. Apps still earn their keep where the logic is well-understood and you don't want to own the maintenance — competitor repricing, BOGO orchestration, customer-tag pricing without Plus.
Pricing as listed on the public Shopify App Store at time of writing. Always verify the current tier on the live listing.
Edge Cases & Operations
These are the questions that surface in week three of running real promos at scale — none of them are dealbreakers, but each one creates an avoidable fire when discovered live. Configure them upfront and they vanish from your roadmap.
Discount + tax interaction
Pre-tax by default
Shopify applies discounts to the order subtotal before tax — so a 20% discount also reduces the tax owed. EU/UK merchants on inclusive-tax pricing should test how the discount displays on storefront vs invoice; mismatches confuse customers and accountants.
Shopify Markets & multi-currency
Per-market pricing
Markets supports per-country price adjustments and currency rounding, but discount % stays universal — a 20% code is 20% in every market. For market-specific promo amounts, use Discount Functions to read the buyer's market and adjust, or run separate codes per market.
POS discounts
In-person & omnichannel
Shopify POS supports both code-based and manual line-item discounts at the till. Online discount codes apply at POS by default; segment-only automatic discounts respect customer profiles when the customer is added to the cart. Limit cashier-applied manual discounts via POS staff permissions.
Refunds on discounted orders
Refund the paid price
Shopify auto-refunds the discounted amount, not the full sticker — but partial returns require manual proration. For BOGO returns, the 'free' item must be returned too or its value deducted. Document a clear return policy for promo orders or watch refund margin spiral.
Hitting the 25 app/Function discount cap
Consolidate or restructure
Shopify caps active app- and Function-based automatic discounts at 25 per shop (raised from 5 in November 2024). Native admin-created automatic discounts don't share this limit. When you hit it on the app/Function side: (1) audit and kill expired or zero-uplift promos, (2) consolidate multiple narrow rules into one segment-targeted discount, or (3) merge logic into fewer Functions that handle several conditions internally.
Bulk / unique-code generation
Per-recipient codes
Generate up to 20M unique codes per discount via Shopify Admin (CSV import) or apps like Dyno. Useful for influencer drops, gift-card alternatives, or anti-leak campaigns where you want to revoke individual codes if they leak to coupon sites.
For brick-and-mortar and omnichannel merchants, behaviour at the till is documented in Shopify POS; for refund mechanics on discounted orders, the safest test is a draft order rehearsal before the campaign goes live.
Industry Benchmarks: What Looks "Normal"
Discount norms vary widely by vertical — what looks aggressive in electronics is restrained in apparel. The table below is an editorial view of typical and peak discount depths observed on Shopify stores per category, useful as a sanity check against your own promo plan.
Typical Discount Depth by Vertical
Vertical
Typical year-round
Peak event
Note
Apparel & fashion
15–25%
30–40% (BFCM, end-of-season)
Highest discount-cadence vertical; manage with hard end dates
Beauty & cosmetics
10–20%
25–30% (BFCM, holiday)
Free shipping outperforms % off in lift-per-margin
Consumer electronics
5–10%
15–20% (BFCM, back-to-school)
Margin floors tight; bundle discounts beat % off
Food & CPG (subscription)
20–40% first order
50% trial only
First-order deep, LTV-positive only with auto-ship
Home & furniture
10–20%
25–30% (Memorial, Labor, Boxing)
Free shipping is the killer mechanic given freight costs
Health & supplements
10–15%
20% (BFCM, New Year)
Subscribe-and-save (10–15%) beats one-off codes
B2B wholesale
Tiered: 5 / 10 / 15%
Quote-based per account
Volume tiers + Net 30 terms beat % off discounts
Editorial benchmarks based on patterns across Shopify merchants — not official Shopify data. Use as a sanity check, not a target.
Compliance, Trust & Brand
Two compliance regimes apply to almost every Shopify merchant running discounts. The EU's Price Indication Directive (Omnibus) requires that any reduction display the lowest price applied in the prior 30 days as the reference — fines vary by member state but are material. In the US, supplier MAP (Minimum Advertised Price) agreements forbid advertising below an agreed floor; violating MAP usually loses you the brand, not a fine. Both are easy to respect with discipline, and both need to be configured into your promo planning sheet, not just remembered.
The trust ledger
Track share of revenue sold at discount as a quarterly KPI. When it crosses ~30%, the discount is effectively the price — you're not running promos any more, you've just relabelled your sticker. The fix isn't deeper promos; it's repricing or a clearance event followed by a discount fast.
KPIs to Track Each Promo
The default Shopify Analytics "sales by discount" report is a starting point, not a verdict. Build a single sheet (or a Lightspeed/BI dashboard) that joins net revenue, discount cost, refunds, and gross profit per campaign. The six KPIs below are the minimum viable set for telling a winning promo from a vanity-metric one.
Promo KPIs — What to Watch
KPI
Why it matters
Target
Net revenue per promo
Revenue after discount cost and refunds — what the bank sees
Vs same-period baseline
Gross margin %
The only number that tells you if the promo paid for itself
≥ baseline margin − 5pp
Discount cost / revenue
Cost of the promo expressed as % of net revenue
Under 12% for healthy DTC
Order uplift vs baseline
Is the promo actually generating extra sales — or just shifting them?
≥ break-even uplift
AOV change
BOGO, threshold, and volume promos should lift AOV
+5% min, +10% target
Refund rate
Discount-driven impulse buys often refund at 1.5–2× normal rate
Within +1pp of baseline
Common Pitfalls
These are the four post-mortem patterns I see again and again. None require an engineer to fix; all require the founder to design the guardrails before the campaign goes live.
Always-on '20% off' becomes the price
If a code never expires, customers learn the new price is 80% of the sticker. Set hard end dates and rotate the mechanic — even good promos lose their lift after 60 days.
Stacking that nobody modelled
Two combinable discounts plus a free-shipping rule can take 35–40% off without anyone approving that math. Default to non-combinable; open combinations one promo at a time.
Hidden segment discounts
Customer-tag discounts feel safe — until a screenshot shows the same SKU at two prices on social media. Make sure every segment-only discount has a clear, defensible rationale.
Reporting on revenue, not margin
BFCM 'breaks records' every year because revenue ignores discount cost and refunds. Build a single sheet that joins net revenue, discount cost, and gross profit per campaign.
DIY vs Hire Help
The line is usually clearer than founders expect. Native discounts and one app are well within in-house capacity. Discount Functions, multi-segment B2B catalogs, or stacking that requires a price-floor function are agency or in-house engineering work. When you cross that line, our guides on hiring a Shopify developer and custom Shopify development cover scoping, costs, and how to vet partners.
When to Stay DIY vs When to Hire
Stay DIY
Native discounts + one app cover all goals
Under 25 app/Function-based automatic discounts
B2B is informal or below 20% of revenue
Promo reporting fits in a single sheet
Founder/CMO can model margin in their head
Hire help
Shopify Functions for custom checkout logic
Multi-segment B2B catalogs on Plus
Price-floor enforcement across stacked promos
BI/dashboard integration for promo P&L
EU Omnibus compliance across multi-region
Editorial assessment of where in-house DIY ends and engineering or agency work begins.
The Bottom Line
The platform supports more discount flexibility than most stores use, and far more than most stores should use. The merchants who win with discounting share three habits: they pick one mechanism per campaign, they check the margin floor before they pick the % off, and they measure gross profit — not revenue. The stores that lose at discounting tend to deploy three mechanics simultaneously, optimise to revenue, and discover the damage in the quarterly P&L. The difference is not creative; it's discipline.
Pick the lightest mechanism that hits the goal, model the worst-case basket, then ship with a hard end date. Native first, then one app, then Functions — and only when the margin floor allows.
Your Next Step by Stage
AuditList every active discount in your admin. Mark each with goal, margin floor, end date, and combinability — kill anything missing all four.Open Shopify Discounts docs
ModelRun your next planned promo through the ROI calculator above. If the break-even uplift looks unreachable, change the discount %, not the forecast.See dynamic pricing strategy
MeasureBuild the six-KPI promo sheet. Run it after every campaign and treat anything below the margin floor as a learning, not a failure.Browse Shopify App Store
Strong brands run fewer, sharper, better-measured promos. The platform makes it trivial to ship a discount in twenty minutes — your job is to make sure the twenty minutes upstream of that have already happened.
Test your next promo on a free trial
Spin up a Shopify trial, build the discount in the admin, and validate the maths in the calculator above before shipping to live traffic.
Shopify caps app- and Function-based automatic discounts at 25 active per shop (raised from 5 in November 2024). Native admin-created automatic discounts and discount codes don't share that hard cap — codes are effectively unlimited (the platform-wide ceiling sits at ~20 million total codes per shop). Combinability rules then determine which can stack at checkout — by default each discount is non-combinable.
Automatic discounts apply at checkout when conditions are met — no customer action required. Discount codes must be entered manually. Use automatic for site-wide sales, segment-only pricing, and BOGO. Use codes for influencer attribution, email campaigns, abandoned cart, and any time you need per-channel tracking. Both can be set up natively from Discounts in the Shopify admin.
Yes, but only when explicitly enabled. Shopify groups discounts as Order, Product, and Shipping; customers can combine at most one of each, and only if every involved discount has 'Combines with...' the corresponding categories. Combinability is opt-in — the safer default is non-combinable until you've modelled the worst-case stacked margin.
Shopify gift cards are native on every plan and behave like cash at checkout — not as a discount. Use them as a refund alternative, loyalty reward, or influencer-seeding tool. Track them as deferred revenue, not promo cost: redemption hits the P&L only when the card is used, and unredeemed balance accrues until expiry. They sit outside the discount engine entirely, so they never compete with your active discount cap.
On Shopify Plus B2B, use catalog volume pricing and quantity rules. On Basic/Grow/Advanced (DTC), use a discount app like Bold Custom Pricing or Wholesale Gorilla, or build a custom product discount using Shopify Functions. Native automatic discounts cover threshold-based 'spend $X get Y%' but not true per-unit tiered pricing.
Before. Shopify subtracts the discount from the order subtotal first, then calculates tax on the reduced amount — so a 20% off promo also reduces the tax owed. EU/UK merchants on tax-inclusive pricing should preview the storefront and invoice display side-by-side, since the discount can render differently across cart, checkout, and order confirmation depending on theme and locale settings.
The EU Price Indication Directive (Omnibus) requires merchants showing a reduction to display the lowest price applied in the prior 30 days as the reference. On Shopify, this isn't enforced automatically — you must configure your theme, app, or Functions logic to surface the correct reference price. EU stores selling reduced products without compliant disclosure face material fines per member state.
Yes — predictable, always-on discounts retrain customers to wait for promos and erode the perceived value of the full price. The healthier pattern is fewer, sharper promos with hard end dates, paired with non-discount value (free shipping, loyalty perks, bundles). Track the share of revenue sold at discount; once it crosses ~30%, the discount is effectively the price.
Track gross margin, not revenue. The break-even formula is uplift% = d / (m − d), where d is the discount and m is the contribution margin. A 20% discount at 35% margin needs 133% more orders just to keep the same profit. The Discount ROI Calculator above models this for any combination of AOV, orders, margin, discount, and uplift.
On Shopify Plus, yes — cleanly. B2B catalogs and price lists are visible only to assigned companies, so wholesale pricing never leaks to retail customers. On non-Plus plans, hybrid B2B/DTC requires customer-tag discounts via apps like Bold Custom Pricing — manageable, but easier to mis-configure. Plus is usually worth it once wholesale crosses ~20% of revenue.
Front-end developer specializing in Shopify since 2017. Experienced in building custom Liquid themes, optimizing storefront performance, and integrating third-party apps. Writes in-depth, data-driven e-commerce guides based on hands-on experience with real merchant stores.
This article was written with the help of AI. All facts, pricing, and recommendations are verified against official Shopify sources. While we strive for accuracy, details may change — always confirm critical data at shopify.com.