Blog·July 25, 2026

How to hide the discount code field in Shopify checkout

There's no setting for it — the field appears whenever an active code exists. Here's the native workaround, its limits, and what to do when you can't hide it.

That empty discount box at checkout does something you can watch in your analytics: customers see it, feel like they’re missing out, and open a new tab to go hunting. Some come back with a leaked code. Some come back with an expired one and a worse mood. Some don’t come back.

So “how do I hide the discount field” is one of the most reasonable questions a merchant can ask. The answer is odd, because Shopify has no setting for it. None. The field’s visibility is decided by one rule.

The rule that controls the field

Shopify shows the discount code field when your store has at least one active discount code. No active codes, no field. That’s the entire mechanism, and it’s why you can’t find a toggle anywhere in settings — the toggle is your discounts list.

Two wrinkles before you act on that:

Automatic discounts don’t count. They apply on their own, no code entry needed, so they never trigger the field. A store running only automatic discounts gets a clean checkout for free.

Gift cards do count. If your store sells gift cards, checkout needs somewhere to enter them, so a combined “Discount code or gift card” field sticks around regardless. For gift-card stores, fully hiding the field isn’t on the table.

The native route: deactivate every active code

Go to Discounts in your admin and deactivate (or delete) every active code discount. Once the last one is gone, the field disappears from checkout on its own. That’s genuinely it, and if your promotions are all automatic discounts anyway, this is a clean setup: discounts still work, field gone, nothing to hunt for.

Now the honest part — why this route frustrates people in practice:

  • Apps keep creating codes. Referral, loyalty, and email apps mint discount codes as part of doing their job. Every one they create brings the field back. You can’t deactivate your way out of an app that generates codes daily.
  • It’s all-or-nothing forever. The moment you need one code (an influencer campaign, a service-recovery coupon for an upset customer), the field returns for everyone.
  • Scheduled discounts complicate the cleanup. A code set to start next week counts as upcoming, and it’s easy to miss one in a long list.

If none of those apply to you, stop here. Deactivate the codes, confirm the field is gone in a test checkout, done.

If you can’t hide it, make it worthless

Here’s the reframe that solves the rest of the cases. The field itself was never the problem — the problem is what happens when a hunted-down code works. A customer who finds nothing usable on the coupon sites tried and moved on. A customer who finds a working leaked code just cost you margin, and coupon sites only keep listing your store while codes keep working.

So when hiding isn’t practical, block instead. PromoLock’s Controller has a Discount Lock with a Block all codes mode: every code entered at checkout is rejected with a message you write, no matter where the code came from — your old campaigns, a coupon site, an app you forgot about. The field may still be visible, but it stops paying out, and you decide what it says when it declines: “Discount codes aren’t active right now.”

Two things this gets you that hiding can’t:

  • It’s reversible in one switch. Run codes for a campaign week, block them the rest of the year. Nobody’s deleting and recreating discounts.
  • It has a middle setting. “Block all codes except” keeps your two official codes working while everything else dies — which is usually what merchants wanted all along, they just didn’t have a way to say it.

There’s a fair question hiding in here: does a visible-but-rejecting field still tempt customers to tab off and hunt? Somewhat, the first time. But coupon hunting runs on payoff. When your store’s codes stop working, the listings go stale, get flagged as expired, and the hunt stops being worth anyone’s time.

Choosing your route

Your situation Do this
All promotions are automatic, no apps minting codes Deactivate every code natively — the field disappears
You sell gift cards The field stays regardless — block codes instead of chasing it
Apps generate codes, or you need codes occasionally Block all codes (or all-except) and write an honest rejection message
You’re hiding the field because of one leaked code Don’t hide anything — block that code specifically

One last tip whichever route you take: run a test checkout afterwards. The field’s behavior depends on the live state of your discounts, and “I thought I got them all” is the usual way this goes wrong.