Hiding the Discount-Code Field for Non-Promo Sessions

Metricuno
June 4, 2026
7 min read
Quick answer

The discount-code field is the most common opening-out moment in Shopify checkout. Hiding it for non-promo sessions typically lifts conversion 2-4% — here's how to do it without breaking affiliate codes.

Quick answer

Hiding or collapsing the discount-code field for sessions that didn't arrive with a promo intent typically lifts checkout conversion rate by 2-4%. The cleanest pattern: show the field only when a code is already in the URL, the session came from an email/SMS flow, or the shopper expands a low-contrast 'Have a code?' link. Never fully remove it if you run affiliate or influencer codes.

Definition
Checkout UX

Hiding the Discount-Code Field for Non-Promo Sessions

Conditionally collapsing or removing the checkout discount-code field for shoppers who didn't arrive via a promo, to prevent code-hunting abandonment.

On Shopify checkout, the discount-code field sits high in the visual hierarchy and acts as a prompt: it tells shoppers that someone, somewhere, is paying less than them. A meaningful share leave the tab, search Google for 'BRAND discount code', land on a coupon aggregator, and either don't return or return with an expired code and more friction.

Hiding the field for non-promo sessions means showing it only when there's evidence the shopper has a code — a `?discount=` URL parameter, an email/SMS-attributed session, or an explicit click on a collapsed 'Have a code?' toggle. The field still exists for affiliates and partners; it just stops broadcasting itself to organic and direct buyers.

Also known as
coupon field hiding
conditional promo field
collapsed discount code

The pattern is one of the highest-leverage checkout tweaks on Shopify because it costs nothing in margin. You're not changing price, shipping, or product — you're removing an invitation to leave.

The reason it works is loss aversion. Seeing an empty promo field reframes the displayed price as the 'sucker price' and triggers a 60-second detour that frequently ends outside your funnel.

Why an empty field abandons carts

Behaviourally, the discount-code field operates as a scarcity cue in reverse: it implies a better deal exists and that you're not getting it. For a shopper already at checkout, that's a high-arousal moment, not a low-stakes one.

Session recordings on apparel and beauty stores show the same pattern repeatedly: the cursor moves toward Pay, hovers, then jumps to the promo field, then to a new tab. About a third of those new tabs never return — they convert on a competitor or get distracted entirely.

The aggregator trap

Coupon aggregator sites (Honey, RetailMeNot, Coupert) intercept the search. Even when they don't have a valid code for your brand, they show stale codes that fail at checkout — adding a friction event right before payment. Shoppers who hit a failed code abandon at roughly 2x the baseline rate.

How to detect the impact on your store

Before changing anything, quantify the leak. In GA4 or your analytics layer, segment checkout sessions by 'clicked discount-code field' versus 'did not'. On most Shopify stores, the click-and-leave segment converts 20-40% lower than the silent segment.

Cross-check with session recordings filtered to checkout exits within 90 seconds of a promo-field interaction. If you see a recurring tab-switch pattern, this tactic is in scope. If your shoppers mostly ignore the field, the lift will be smaller — closer to 1%.

Implementation patterns on Shopify

Shopify Plus stores can edit checkout.liquid or use Checkout Extensibility to conditionally render the field. Non-Plus stores have less control over native checkout but can pre-fill via `?discount=CODE` URLs from email/SMS, which sidesteps the problem for attributed traffic.

The three production-tested variants: (1) collapse the field behind a low-contrast 'Have a code?' link; (2) show the field only when the session has a `utm_medium=email` or `utm_medium=sms` parameter; (3) hide it entirely for direct/organic sessions and auto-apply codes from URL parameters for everyone else.

The affiliate and influencer trade-off

If your growth mix includes affiliate or influencer codes — the kind a creator reads out in a YouTube sponsorship — fully removing the field will tank that channel. Affiliates depend on shoppers manually entering a code they memorised, often arriving via direct traffic where you can't detect intent from UTMs.

The safe compromise is collapsing rather than removing: keep a small 'Have a code?' link visible, but make it text-link contrast instead of a full-width input. Affiliate-code shoppers know to look for it; passive code-hunters don't get the prompt.

How to test it without risking revenue

Run it as a split test on checkout sessions, not site-wide traffic. Variant A keeps the current field; variant B collapses it. Stratify by traffic source so you can read affiliate-attributed and organic segments separately — the global average can hide a negative effect on affiliate-heavy days.

Run the test for at least two full weekly cycles and a minimum of 400 conversions per variant. Read checkout-CR, AOV, and discount-code redemption rate together — a CR lift that comes with a 30% drop in code redemptions might still be net-positive on margin, but you want to see the full picture.

What good looks like

A typical successful result on a €3M-€8M apparel store: checkout CR +2.8%, AOV flat or +1% (fewer codes applied), discount-code redemption -15 to -25%, and gross margin per session +4-6%. If you see CR up but AOV down sharply, your collapsed link is too discoverable — make it lower contrast.

Frequently asked

Frequently asked questions

Not on native checkout — Shopify restricts checkout.liquid editing to Plus. Non-Plus stores can still solve the problem partially by auto-applying codes via `?discount=CODE` URL parameters in all email and SMS sends, so attributed shoppers never see an empty field. For organic sessions you're stuck with the default field unless you upgrade or use a checkout extension app.

Yes, if you fully remove it. The standard compromise is collapsing it behind a low-contrast 'Have a code?' text link rather than removing it. Affiliate-driven shoppers arrive with intent to use a code and will click the link; passive aggregator-hunters won't be prompted. Track affiliate-attributed checkout CR separately during the test.

Most Shopify stores see a 2-4% relative lift in checkout conversion rate. Stores with high direct/organic traffic see closer to 4%; stores where most traffic already arrives with codes (heavy paid social, frequent promos) see closer to 1-2% because the field was less of a leak in the first place.

Yes — update every flow and campaign that mentions a code to include the code as a `?discount=CODE` URL parameter on the CTA link. Shopify auto-applies it at checkout, so the shopper never has to type it. This removes the friction for your highest-intent segment and is good practice regardless of whether you hide the field.

Shopify's one-page checkout (the default since 2024) still exposes the discount field by default. The conditional logic works the same way through Checkout Extensibility. Post-purchase upsells generally don't expose a discount field, so they're not affected by this change.

Segment checkout sessions by interaction with the discount field. If 8%+ of checkout sessions click into the field and a meaningful share of those abandon within 60-90 seconds, the leak is real. Session recordings filtered to that behaviour will show the tab-switch-to-Google pattern. Stores with under 3% field interaction see smaller lifts and may not need the change.

Mobile is where the lift tends to be largest — switching tabs to a coupon site on mobile is a more disruptive context shift, and return rates are lower. If you can only ship one variant, ship it on mobile first. Apply the same conditional logic across devices to keep tracking clean.

Collapsing behind a clearly-labelled 'Have a code?' link is standard practice and not deceptive — the field is one click away. Fully hiding it from shoppers who legitimately have a code (affiliate buyers on direct traffic) is the ethical line; that's why the collapsed pattern is preferred over full removal.

At least two full weekly cycles to cover weekday/weekend variance, and a minimum of 400 conversions per variant for a readable result on a 3-4% lift. Stratify the read by traffic source — global averages can mask a negative effect on affiliate-heavy channels. Don't stop the test on day three because the lift looks great.

It's usually the first or second tactic in a 30-day checkout CR sprint because it's high-leverage and reversible. Pair it with shipping-cost surfacing earlier in the funnel, Shop Pay prominence, and address autocomplete. Together these compound — none individually wins more than 3-4%, but a sequenced stack of four can move checkout CR by 10-15%.

Test ideas before you ship them

Run unlimited A/B tests, attach hypotheses to outcomes, and build a searchable archive of what works — and what doesn't.