Vai al contenuto
DocumentationCreate bulk codes

Create bulk discount codes

Generate thousands of unique discount codes for one campaign, ready for influencers, affiliates, or print. Set the code method in the builder, publish, then generate batches on the Codes page.

A discount code campaign works like any other Stackable campaign, with one difference: instead of applying automatically for every shopper, the deal applies when a shopper enters a code. You build the campaign once, publish it, and then generate as many unique codes as you need. Every code carries the same discount math, so a code batch is really one campaign with many keys to it.

Step 1: choose the Discount code method

Create a campaign as usual and pick the type you want (Volume, Buy X Get Y, Cart Goal, Free Shipping, Free Gift, or Bundle). On the builder, under "How it applies", set the Discount method to "Discount code". Shoppers then enter a code to get the deal instead of it applying on its own.

The code method gives you a few extra settings on the campaign itself:

SettingWhat it does
CodeThe primary code for the campaign. Type your own (for example SUMMER20) or press Generate for a random one. This is the code your share link uses.
Total usesCaps how many times a code can be redeemed. Leave it blank for unlimited. See the note below on how this applies to a bulk batch.
Limit to one use per customerWhen on, each customer can redeem the code at most once.
Which discount types this code coversBy default the code covers this campaign’s own type. You can extend one code to also cover order and shipping discounts, so a single code spans product, order, and shipping at once.
What you set on the campaign when the method is Discount code
Note

Code deals are invisible until entered

A code discount does not show as an automatic deal on your storefront. It applies only when the code is entered at checkout, which is exactly what you want for private, per-channel offers.

Step 2: publish the campaign first

Publish the campaign before you generate any codes. Codes attach to the live discount, so there has to be a live discount for them to attach to. On the Codes page, the Generate codes button stays disabled and a reminder banner appears until the campaign is published.

Tip

The order that works

Build the campaign, set the Discount code method, publish it, then open Codes and generate your batch. If you generate before publishing, there is nothing live for the codes to redeem against.

Step 3: generate a batch on the Codes page

Open Codes from the app navigation. Every published code campaign shows as a card with its status and how many codes it already has. Press Generate codes to open the batch dialog.

FieldWhat to enter
How many codesA number from 1 to 100,000. This is the size of the batch.
Prefix (optional)Text added to the front of every code in the batch, for example SUMMER-AB12-CD34. Useful for telling one channel or drop apart from another.
Channel label (optional)A label for the batch, such as an influencer or partner name. It appears in the batch table and in the CSV export so you can track where each batch went. It is for your records only and is not shown to shoppers.
Code expiryNo expiry, or Expire on a date. Choose a date to make every code in the batch stop working after that day.
How expiry is enforcedOnly shown once you set an expiry date. Choose "Inside the code (no extra discounts)" or "Separate discount per date (exact end time)". See How code expiry works for what each mode does.
The generate dialog
Note

Expiry is fixed for the batch

The expiry date and enforcement mode are set once, at generation, and baked into the batch. They cannot be changed afterward. To use a different expiry, generate a new batch. The dialog also shows a short summary of the campaign settings the codes will inherit, so you can confirm the usage limits before you generate.

Press Generate. Stackable creates the unique codes and sends them to Shopify in the background, 250 at a time. A large batch keeps working after the dialog closes, so you can leave the page and come back.

How usage limits apply to a batch

Watch out

Limits are per code, not per batch

The Total uses and one-use-per-customer limits are set on the campaign, and Shopify applies them to every code in the batch individually. If you set Total uses to 1, each code can be redeemed once, not once across the whole batch. That is exactly how you hand out single-use codes to a list of recipients. There is no separate per-code cap set at generation time.

To change the limit for a batch you have not sent out yet, edit the campaign’s Total uses or one-use-per-customer setting in the builder, then generate. New codes pick up the current campaign settings.

What the batch table shows

Each campaign card lists its batches. For every batch you see:

  • Status: where the batch is in the push to Shopify. Syncing while codes are still being imported, Verified once every code is confirmed imported, or Needs attention if any code was rejected.
  • Channel: the label you gave the batch, or a dash if you left it blank.
  • Codes: how many codes are in the batch.
  • Redeemed: how many of those codes have been used so far, counted from your orders.
  • Export: a link to download the batch as a CSV, or to re-export it once you have downloaded it before.
Note

What the batch status means

Codes are pushed to Shopify 250 at a time, then checked against Shopify’s import. A batch shows Syncing while that push is running, Verified once every code has been confirmed imported, and Needs attention if any code was rejected (for example a rare duplicate that already exists on another discount). A very large batch can sit at Syncing for a while, which is normal.

Next steps

Once a batch exists, you can hand the codes out. Export them as a CSV, or build an auto-apply share link that applies the code for the shopper in one click. See Share and distribute codes for both.

Utilizziamo cookie essenziali per il funzionamento del sito e, solo con il Suo consenso, cookie di analisi per comprendere il traffico. Legga la nostra Informativa sui Cookie.