Blog · Guide

Stop your staff discount code from leaking — tag-based pricing

Codes leak. Within a week, your STAFF30 is on Honey, in deal forums, and being claimed by friends-of-friends. Tag-based pricing is closed-loop: only logged-in customers with the right tag see the price. Here is the setup.

5 min read · Updated May 2026

The problem in three sentences

You ship STAFF30 to your team. Within a week it is on Honey, in deal forums, and shared with a friend of a friend. The discount you intended for 60 staff members is now being claimed by 600 random customers, and you find out from the next month's gross-margin report.

Why discount codes leak (every time)

  • Codes are strings. Anyone with the string can use them.
  • Browsers send them. Honey scrapes the cart and applies every code it knows. The leak is automated.
  • They survive screenshots. One Slack message in a non-private channel and the code is loose forever.
  • Per-customer-limit doesn't help. The customer using the leaked code is real; they just aren't your staff.

The closed-loop alternative

Instead of a code, use a customer tag. Two requirements get baked in for free:

  1. The customer has to be logged in (anonymous shoppers don't have tags).
  2. The customer has to have the tag (you control who you tag in Shopify Admin).

The price is computed from the tag at checkout. There is no string for Honey to scrape. The PDP shows the staff price only when the staff member is logged in. There is nothing to leak.

How to set it up (5 minutes)

  1. In Shopify Admin → Customers, tag your staff with staff.
  2. In TagTier → Rules, create a rule: #staff → flat 30% off.
  3. Publish. Done.

Same pattern works for ambassadors (ambassador), influencer-comp programs (comp-q3), gifted product (gifted), founder gifts (founder-friend), or any other "specific list of named people" pricing.

Onboarding flow that scales

Tagging by hand is fine up to ~30 people. Past that, automate it:

  • Shopify Flow can apply a tag when a customer's email matches your staff domain (e.g., @yourbrand.com).
  • HRIS integration — if you use Rippling, BambooHR, etc., tag on hire and untag on offboarding.
  • Manual + audit trail — tag by hand but use the audit log to see who was added and when.

Common edge cases

Staff also has a personal account

Two options. (1) Tag the staff email; require them to use it for staff orders. (2) Apply the tag on the personal account too. Both work; pick one and document it.

Staff member leaves

Untag them. Their next order is at retail. No code to revoke, no announcement to make.

Compliance / SOX

Auditors love the audit log. Every tag application and removal is logged with who and when. Codes don't have that.

Real-world example: A 60-person consumer brand cut $48K/year of discount leakage and unlocked a 400-ambassador program by switching from STAFF30 to tag-based pricing. Read the case study →

What this looks like in TagTier

Documented as a recipe: Staff and ambassador pricing. Try it on a dev store →


Related on TagTier