Unique Discount Codes for Creators, Email

Create unique one-time discount codes on Shopify for creators and email: how to generate them, limit each to one use, track results and disclose creator deals.

A single code like WELCOME10 is easy to hand out and easy to lose control of. It lands on a coupon site, gets pasted into a group chat and ends up in the cart of someone who was never on your list. Unique discount codes on Shopify fix that by giving each recipient a code of their own: one per email subscriber, one per creator, one per event guest. This post covers when per-recipient codes are worth the setup, what Shopify does by itself and where it stops, how to cap each code, how to read the results, and the rules that apply when the recipient is a creator who talks about your product in public.

One shared code or one code per person

A shared code is the right tool when you want reach. Print it on a card in the box, announce it in a newsletter, and accept that anyone may use it. The cost is that you cannot tell who passed it on, and you cannot stop the spread without ending the offer for everyone.

Per-recipient codes trade reach for control:

  • Leakage. A code made for one inbox that is forwarded still works only as many times as you allowed. A shared code works for every person who finds it.
  • Attribution. If each creator has their own code, sales by code show who sent them. With one shared code you only know that the campaign worked.
  • Fatigue. A code that is personal reads as a favor. A public code that is always live trains shoppers to wait for it, which is the pattern covered in Stop Training Shoppers to Wait for Sales.

If you are still deciding between a code and an automatic discount at all, start with Discount Codes vs Automatic Discounts; this post is about the codes themselves.

Per-recipient codes cost more effort: you must generate them, deliver the right one to the right person and keep a list. For a promotion that goes to a few hundred people or fewer, the effort is easily worth it. For a sitewide sale, it is not.

Generating codes: what Shopify does natively

Start with what the Shopify Help Center documents for a single code. On an amount-off discount you either enter the code yourself or click Generate code to get a random one. The same page describes the controls that matter here:

  • Total uses. A setting limits the number of times the discount can be used in total.
  • One per customer. "Limit to one per customer" tracks the customer's email address or phone number. The page adds that on the mobile admin this option only applies to fixed-value discounts.
  • Start and end dates. The time the discount starts and ends depends on the time zone you select. If you do not want it to expire, you do not set an end date, so for a per-recipient code you do set one.
  • Minimum purchase. The minimum purchase amount counts product prices only, so shipping and taxes are left out.
  • Who can use it. You can make a discount available to all customers, or choose specific customers, customer segments or markets.

Those controls are enough for ten codes you create by hand. They are not enough for a thousand.

Bulk generation. The Help Center page on amount-off discounts does not mention creating many codes at once, and neither does its overview of discount types, which points merchants who need more advanced behavior to discount apps in the Shopify App Store. Shopify's developer documentation does describe the building block: the Admin API's discountRedeemCodeBulkAdd mutation adds codes to an existing discount, accepts a maximum of 250 codes per call, runs asynchronously and returns an ID you can use to check progress. The docs say it exists to "automate the distribution of discount codes through emails or other marketing channels," and it requires an app with the write_discounts access scope. The practical reading is that bulk creation lives in the API, so it runs through an app or a script, not through a button on the discount page. A 1,000-code batch is four calls of 250 codes.

The page does not say how many codes one discount may hold in total, so do not assume a limit either way. Create a small batch first and check it in your admin.

One use per code, an expiry and a floor

A unique code only controls leakage if it is capped. For each batch, decide four things before you generate it:

  1. Uses per code. One is the usual answer. After a test, redeem one code twice and a second code once, so you know whether the cap applies to each code or to the whole discount. The pages we read do not settle that, so test it on your store.
  2. Per customer. Turn on "Limit to one per customer" as a second line of defense. It tracks email or phone, so a recipient who checks out with a different address can still get past it. That is a reason to cap the code itself as well.
  3. An end date. A per-recipient code with no end date becomes a standing discount. Pick a date and put it in the message.
  4. A minimum. A floor on product spend, for example the price at which your margin still works after the discount, stops a code from being used on your cheapest item. How to set that floor is in Discount Floors So a Promo Never Loses Money.

Combinations are the last check. Shopify's Help Center says a discount can be set to combine with other classes (product, order, shipping), that two discounts that are not both set to allow the combination cannot both apply, and that customers can use a maximum of 5 product or order discount codes and 1 shipping discount code on one order. If your email code should not stack with a sitewide sale, leave the combination boxes unchecked and test the cart.

Tracking results: Sales by discount codes

Shopify's Help Center describes a Sales by discount codes report that groups sales by discount name, such as a discount code or an automatic discount's name, and shows how often discounts are applied and which lead to the most sales. Its columns include the discount name, discount ID, discount class and method, the discount code, the discount amount, orders, total sales and shipping.

Three things from the page to keep in mind:

  • The sales value counts only the line items the discount affected, not the whole order.
  • Combinable discounts can produce duplicates: an order appears once in each row for every discount applied to it.
  • The report covers sales made after May 1, 2017 (UTC), and the page states no general plan requirement for it; it says only that script-discount columns show if you use Shopify Plus.

For a creator program, give each creator their own code and read orders and total sales by code once the campaign closes. Divide what you paid or shipped to the creator by the orders attributed to the code to get a cost per order, and compare it with other channels using the method in How to Measure Whether a Promotion Worked and the cost math in Why a 15% Discount Costs More Than You Think. One caution: a code measures who used the code, not who first discovered you. A shopper who saw a creator's post and typed in a different code is not counted.

Creator codes and the FTC endorsement guides

When the recipient is a creator, a unique code usually comes with something else: free product, a fee, or a commission on sales. That makes the relationship something the audience may not expect, and the Federal Trade Commission's Guides Concerning the Use of Endorsements and Testimonials in Advertising (16 CFR Part 255) speak to it directly.

Section 255.5(a) says that when there is a connection between the endorser and the seller that might materially affect the weight or credibility of the endorsement, and the audience does not reasonably expect it, the connection "must be disclosed clearly and conspicuously." The section lists what can count as a material connection, including monetary payment and the provision of free or discounted products to an endorser, regardless of whether the advertiser requires an endorsement in return, as well as other benefits such as early access to a product. It adds that a disclosure does not need every detail, but it must communicate the nature of the connection clearly enough for consumers to judge its significance.

The examples in the same section point at the creator codes you are likely to run:

  • A woodworking influencer who is sent a free lathe and posts about it should disclose that it was free, if a significant minority of viewers are likely unaware of it. The example also says the manufacturer should advise the influencer of this when it provides the product, and have reasonable procedures to monitor the influencer's postings (Example 7).
  • A blogger who includes affiliate links and earns a portion of each sale should clearly and conspicuously disclose the compensation, because knowing about it could affect the credibility of the reviews (Example 11).

A creator code that pays the creator per sale resembles that second example. The guides also make the advertiser answerable: section 255.1(d) says advertisers may be liable for failing to disclose unexpected material connections, and that they should give guidance to endorsers, monitor compliance and act on non-compliance.

For a creator program, that points to a short checklist:

  • Put the disclosure requirement in the creator brief and tell creators plainly that a code, free product or commission is a connection to disclose.
  • Ask to see posts that use the code, and keep a record of what you checked.
  • Do not write the disclosure into the code. A code named after a creator is not a disclosure.

This is not legal advice; confirm your own program with a lawyer.

Exporting bulk codes

Whatever builds the batch, the last step is getting each code to the right person. Export the list with the code and the recipient's email or creator name side by side, so the file is the record of who got what. Deliver codes one-to-one (a merge field in your email platform works for that) and keep the file so you can match results in the Sales by discount codes report afterward.

The Bulk unique codes template in Freebies Engine by Log Studio Lab is described as "Many one-time codes, ready to export," with the example "1,000 one-time codes for influencers." Set the discount, the number of codes, the end date and the minimum, generate the batch, and export it for your email tool or creator list. You can see what a city-level plan using these codes looks like on our New York City page. Check the codes on a test order before the first one goes out.

Sources

Build this offer from the “Bulk unique codes” template.

Requires: Growth plan or higher.