How to Create Shopify Discount Codes: Single, Bulk & Unique

Sid B
May 12, 2026
Share article
Most Powerful Discount & Free Gift App
Most Powerful Discount & Free Gift App
Most Powerful Discount & Free Gift App
Most Powerful Discount & Free Gift App
Summary
  • Creating a single Shopify discount code is straightforward in the admin: pick the discount type and method, set the value, configure customer and product eligibility, set usage limits, decide which other discounts it can stack with, set active dates, and save.
  • Generating bulk unique discount codes natively is built into the Shopify admin: the Generate codes feature creates a batch of unique single-use codes tied to a single parent discount, exportable as CSV from the admin.
  • Bulk unique codes earn their setup when per-customer or per-partner attribution is the goal: influencer tracking, abandoned cart recovery, win-back emails, loyalty rewards, affiliate distribution, and subscription reactivation all need unique codes because a single shared code leaks onto coupon aggregator sites and gives no clean per-customer tracking.
  • Bulk uploading a pre-existing list of codes into Shopify is not natively possible: the Shopify Help Center is explicit: "You can't import discount codes to your store using CSV files." There is no admin UI, no API-based import tool, and no built-in connector for external loyalty or affiliate platforms.
  • Stores that need bulk CSV upload typically fall into one of six situations: migrating from another ecommerce platform (WooCommerce, Magento, BigCommerce, Squarespace), integrating an external loyalty platform (Smile.io, Yotpo, LoyaltyLion, Stamped), distributing printed codes on flyers and packaging inserts, syncing affiliate codes from Refersion or ShareASale, bringing in third-party gift card codes, or running bulk B2B and wholesale code distribution.
  • Three workable paths to actually bulk upload existing codes: a third-party discount app with CSV upload built in, custom development against the Shopify Admin API's Price Rules and Discount Codes endpoints, or Shopify Flow for event-triggered per-customer code creation (not a true bulk import).
  • Five types of Shopify discount codes worth knowing: custom-named single shared codes (SUMMER25), auto-generated single shared codes, bulk unique single-use codes, branded prefix bulk codes (INFLUENCER-JANE-X4F2), and imported CSV codes — distinct from the four types of Shopify discounts (percentage off, fixed amount, free shipping, Buy X Get Y), which describe what the discount does rather than how the code is structured.
  • Hard limits worth knowing: Shopify caps each store at 20,000,000 cumulative discount codes, a single code can apply to up to 100 specific customers, products, or variants, and customers can stack a maximum of 5 product or order discount codes plus 1 shipping discount code per order.

Shopify discount codes are alphanumeric strings customers enter at checkout to redeem a discount, and they sit at the center of nearly every promotional, retention, and partnership campaign a Shopify store runs. Shopify supports four discount types (percentage off products, percentage off order, free shipping, and Buy X Get Y), and within each of those, a Shopify store can create either a single shared code (one code used by many customers) or a batch of bulk unique codes (many codes, each used by one customer). Setting up a single code takes 11 steps in the Shopify admin. Generating bulk unique codes natively uses Shopify's built-in Generate codes feature, but importing a pre-existing list of codes via CSV is not supported natively, a gap filled by a discount app like Kite Discount and Free Gift, which adds CSV bulk upload, custom code formatting, and per-code usage limits on top. Shopify caps each store at 20,000,000 cumulative codes, and a single discount can apply to up to 100 specific customers, products, or variants. This guide covers:

  1. How to Create a Discount Code in Shopify
  2. How to Generate Unique Discount Codes on Shopify in Bulk
  3. Why You Need to Create Bulk Unique Discount Codes
  4. How to Upload Discount Codes in Bulk into Shopify
  5. Bonus: Types of Shopify Discount Codes

How to Create a Discount Code in Shopify

To create a discount code in Shopify, go to Discounts then Create discount, select the discount type, choose Discount code as the method, set the value, configure customer and product restrictions, set usage limits and combinations, set active dates, then save and test. The full flow takes 11 steps in the admin. The walkthrough below uses Amount off products as the example, with the verified UI labels from the current Shopify admin documentation on discount codes.

Step 1: Go to Discounts and Click Create Discount

In the Shopify admin, click Discounts in the left sidebar, then click Create discount in the top-right.

Step 2: Select the Discount Type

Choose Amount off products (or Amount off order, Free shipping, Buy X get Y depending on the campaign).

Step 3: Select Discount Code as the Method

Under Method, select Discount code. In the Discount code field, type the code customers will use (for example, WELCOME10) or click Generate code for a random alphanumeric string.

Step 4: Set the Discount Value

Under Value, select Percentage or Fixed amount and enter the discount amount.

Step 5: Configure Applies To

Under Applies to, choose All products, Specific products, or Specific collections. A single discount code can apply to up to 100 specific customers, products, and variants combined before Shopify returns an error[2].

Step 6: Set Minimum Requirements (Optional)

Under Minimum requirements, choose None, Minimum purchase amount, or Minimum quantity of items. This sets a purchase floor for the discount to apply.

Step 7: Set Customer Eligibility

Under Eligibility, choose All customers, Specific customers, Customer segments, or Markets. Customer segments let operators limit codes to VIPs, lapsed customers, or other tagged groups.

Step 8: Configure Usage Limits

Under Usage limits (labeled Maximum discount uses on mobile), two separate checkboxes are available:

• "Limit number of times this discount can be used in total", sets a store-wide cap on total redemptions

• "Limit to one per customer", tracks redemption by the customer's email or phone

Both can be checked simultaneously. By default, codes have unlimited uses.

Step 9: Configure Combinations

Under Combinations (or Combines with on mobile), check which discount classes the code can stack with: Product discounts, Order discounts, or Shipping discounts. By default, codes do not combine. Customers can apply a maximum of 5 product or order discount codes plus 1 shipping discount code on the same order[2].

Step 10: Set Active Dates

Under Active dates, set the start date in the calendar. To set an expiry, click Set end date and choose the end date. Without an end date, the code never expires. For a same-day code, use the same calendar day for both start and end.

Step 11: Save and Test

Click Save. Before distributing the code, place a test order and apply the code at checkout to confirm the discount value, product scope, and expiry behavior. Once verified, the code is ready to share.

How to Generate Unique Discount Codes on Shopify in Bulk?

To generate unique discount codes on Shopify in bulk, a Shopify store has two paths. The first is Shopify's native Generate codes feature, which creates a batch of unique single-use codes tied to one parent discount. The second is a third-party discount app like Kite Discount and Free Gift, which adds CSV upload, advanced code formatting (custom prefixes, suffixes, controlled character length), and per-code usage limits on top of native generation. Native bulk generation works for simple campaigns where the store only needs random single-use codes under one parent discount. An app becomes necessary the moment the campaign requires CSV import of pre-existing codes, per-code expiry, branded code prefixes, or richer per-code attribution analytics. The decision is straightforward: creating new codes from scratch with no format control, native is fine; importing existing codes, branding the format, or tracking redemption per code, an app is the only path.

1. How to Generate Bulk Discount Codes on Shopify Without An App?

Shopify has a built-in bulk generator for stores that only need random single-use codes under one parent discount and do not need to import a pre-existing list. The native Shopify generate discount codes flow:

• Go to Discounts and click Create discount.
• Choose the discount type (Amount off products, Amount off order, Free shipping, or Buy X Get Y).
• Under Method, select Discount code.
• A Generate codes option appears next to the discount code field. Click it to generate a batch of unique single-use codes tied to the parent discount.
• Specify the quantity (Shopify allows up to 20,000,000 cumulative codes per store).
• Save the discount. Shopify generates the codes in the background and makes them available for export.

All bulk discount codes generated this way inherit the same discount value, product scope, customer eligibility, usage limits, and expiry from the parent discount. Each code is unique and single-use by default, which is the correct setup for most attribution-driven campaigns. Codes can be exported as CSV from the Shopify admin and distributed via email, SMS, or any other channel. This is the simplest method for generating bulk discount codes on Shopify without a third-party tool.

Limits of Shopify's Native Bulk Code Generation

Native generation works for straightforward campaigns but has six real constraints worth knowing about before a Shopify store leans on it for anything complex:

No CSV import. Shopify does not support uploading a pre-existing list of discount codes via CSV. The Shopify Help Center on exporting discounts confirms codes can be exported to CSV but never imported. This is the single biggest limitation when migrating from another platform or integrating with an external loyalty system.
20,000,000 cumulative code cap per store. Once a store hits this limit, codes must be deleted before new ones can be created. Apps cannot bypass this cap.
100-item limit per discount code. A single code can apply to a maximum of 100 specific customers, products, and variants combined before Shopify returns an error.
No per-code expiry. All codes in a batch share the same expiry date inherited from the parent discount. Per-code expiry (for example, a 7-day countdown from the moment a customer receives the code) requires an app.
Limited code format control. Native generation produces random alphanumeric strings. There is no built-in option for custom prefixes (BRAND-XXXX), suffixes (XXXX-2026), or controlled character length.
Basic per-code analytics. Native reporting aggregates redemption data at the parent discount level. Per-code redemption tracking with detailed attribution (which influencer drove which redemptions, which abandoned cart converted) requires an app.

2. How to Generate Bulk Unique Discount Codes on Shopify with an App?

When the native Generate codes feature falls short, a discount app fills the gap. Kite Discount and Free Gift is the practical choice on Shopify for bulk code generation because its Discount Generator supports three generation modes in one workflow, including the CSV upload that Shopify does not support natively.

Within Kite, the Discount Generator offers three generation modes:

Randomly Generate: Kite creates randomized unique codes with full format control, including custom prefix or suffix, custom character length, and the choice of alphanumeric, alphabetic, or numeric output.
Upload List: Import a pre-defined list of codes via CSV. This is the workflow Shopify does not support natively, and the most common reason Shopify stores install Kite for bulk code work.
Manual Entry: Type codes individually. Useful for small batches of high-value branded codes (for example, 20 codes for a press launch or 50 codes for a VIP event).

The setup flow in Kite:

Step 1: Create or open a promotion that uses the code-level discount method. Automatic discounts cannot generate bulk codes; the discount must require customer entry at checkout.

Step 2: From the active promotion or the create promotion page, scroll down and click Generate codes.

Step 3: Search for and select the discount to generate codes for. A summary of the discount displays for confirmation.

Step 4: Choose the generation method: Randomly Generate, Upload List, or Manual Entry.

Step 5 (Randomly Generate): Enter the quantity (for example, 1,000), customize the prefix or suffix, set the character length, and choose the randomness type. A real-time preview shows the format.

Step 6 (Upload List): Attach the CSV containing the pre-existing codes. Kite parses each row and creates it as a unique discount code under the parent discount.

Step 7 (Manual Entry): Type each code into the input field.

Step 8: Optionally enter an email address to be notified when processing completes. Click Generate.

Step 9: Once Kite finishes, select the codes and click Export to download the final list.

Kite also enforces per-customer and total use limits on each bulk-generated code, so each unique code can be restricted to one use per customer and capped at a total redemption count. This is essential for win-back, abandoned cart, and loyalty campaigns where the entire purpose of bulk unique codes is to prevent code sharing and resale on coupon aggregator sites.

Why Would a Shopify Store Want to Generate Bulk Unique Discount Codes?

Most public sales run fine on a single shared code (SUMMER25 used by everyone). Bulk unique discount codes start mattering the moment a Shopify store needs to know which customer redeemed which code, or which partner drove which sale. A single shared code makes that impossible: every redemption in the Shopify admin looks identical, the code leaks onto coupon aggregator sites within days, and there is no clean way to tie a sale back to a specific influencer, email, or campaign. Bulk unique codes fix all three. Six common reasons Shopify stores generate bulk unique discount codes:

1. Influencer Attribution

Each influencer gets a uniquely branded code (for example, JANE-FITNESS-20) that functions as both a discount and an attribution identifier. When a customer enters the code at checkout, the Shopify store can pull the redemption count per influencer from the Shopify admin export, calculate revenue attributed to that influencer, and decide whether to renew the partnership, increase the budget, or end it. Without unique codes per influencer, attribution falls back on UTM parameters or self-reported claims, both of which break down in cross-device, cross-browser, and post-cookie environments. A unique code is the cleanest possible attribution signal because it is captured at the point of purchase by the customer.

2. Abandoned Cart Recovery

Klaviyo, Omnisend, or Shopify Email triggers an abandoned cart email sequence at 1, 6, and 24 hours after a customer abandons checkout. To prevent the recovery offer from leaking onto coupon aggregator sites (Honey, RetailMeNot, Rakuten, Capital One Shopping), each abandoned cart receives its own single-use unique code with a short expiry window (typically 24 to 72 hours). Even if the customer screenshots the code and shares it, it stops working after one redemption. This protects margin, preserves the urgency of the recovery offer, and prevents the kind of code-stuffing that turns a 10% abandoned cart recovery offer into a 10% storewide discount overnight.

3. Win-Back Campaigns

Lapsed customers (typically 90 or more days since last purchase) receive a personal single-use code via email or SMS. Because the code is unique and tied to one customer's email, a Shopify store can offer a steeper win-back discount (25 to 40%) than it would in a public sale (10 to 15%) without worrying about the offer being scraped, shared on coupon sites, or stacked across multiple customer accounts. The unique code makes the offer functionally personal even if the underlying email template is the same for thousands of lapsed customers.

4. Loyalty Programs

Each loyalty tier member receives a personal code (for example, GOLD-CUST-X4F92) tied to their account and redeemable once per reward earned. Loyalty platforms like Smile.io, Yotpo, LoyaltyLion, and Stamped generate these codes externally based on points balances and member activity, and the codes need to be imported into Shopify to be redeemable at checkout. This is one of the most common reasons a Shopify store running an external loyalty program needs bulk CSV upload functionality, and it is the single biggest gap in Shopify's native discount tooling for that use case.

5. Partner and Affiliate Distribution

Each affiliate, wholesale partner, or media partner receives a branded code (for example, PARTNER-NAME-50) that functions as their branded checkout offer and attribution mechanism in one. Affiliates often run their own marketing channels (newsletters, YouTube, podcast sponsorships, blog reviews, paid social), and a unique branded code is both the offer they promote and the data point that lets the store measure performance per partner. Affiliate platforms like Refersion, GoAffPro, and ShareASale integrate with Shopify by either generating codes inside Shopify or pushing pre-generated codes into Shopify via CSV.

6. Subscription Reactivation

Cancelled subscribers receive a unique reactivation code with a hard expiry (typically 7 days). The unique code prevents the reactivation offer from being scraped and republished by ex-subscribers, and the short expiry creates time pressure that converts higher than open-ended reactivation offers. Subscription platforms like Recharge, Smartrr, and Loop integrate with Shopify discount codes and can trigger the issuance of a reactivation code automatically when a subscriber cancels.

The common thread across all six: a Shopify store needs to know who redeemed what, or which partner drove which sale. A single shared code cannot deliver that. Bulk unique codes can.

How to Bulk Upload Existing Discount Codes into Shopify?

Here is a common situation a Shopify store hits: a list of discount codes already exists outside Shopify, and those exact codes need to work at Shopify checkout. Shopify does not support CSV import of discount codes natively. The Shopify Help Center is explicit on this point:

"Discounts can be exported only to a CSV file. You can't import discount codes to your store using CSV files."

There is no other native import path documented anywhere in the Shopify admin: no API-based import UI, no bulk upload tool, no built-in connector for external loyalty or affiliate platforms. This is the single biggest gap in Shopify's discount system for any Shopify store running multi-platform, external-loyalty, or partner-attribution campaigns.

Why Would a Shopify Store Want to Upload Existing Discount Codes in Bulk?

The reason a Shopify store needs CSV bulk upload (rather than generating fresh random codes inside Shopify) is that the codes already exist somewhere else and have to keep working. Six common reasons:

Migrating from another ecommerce platform (WooCommerce, Magento, BigCommerce, Squarespace, Wix) where active codes are already in customers' inboxes, on landing pages, or in printed marketing materials and need to keep working after the migration to Shopify.
External loyalty or rewards platforms (Smile.io, Yotpo, LoyaltyLion, Stamped, or custom-built systems) that generate codes externally based on points balances and need those codes imported into Shopify for redemption at checkout.
Printed codes on flyers, packaging inserts, scratch cards, QR campaigns, or unboxing materials where the physical code is already in circulation and cannot be regenerated.
Partner or affiliate codes created in an affiliate platform (Refersion, GoAffPro, ShareASale, Awin, Impact) with specific branding (for example, INFLUENCER-JANE-001) that need to be bulk imported into Shopify for redemption tracking.
Gift card or voucher providers whose codes need to be redeemable in Shopify alongside Shopify's native gift cards.
Bulk B2B or wholesale codes distributed through a sales rep or partner network where each customer account receives a unique code generated outside Shopify in a CRM or spreadsheet. These are often paired with Shopify tiered pricing for volume-based wholesale discounts.

How Can a Shopify Store Actually Bulk Upload Discount Codes? Three Paths

Shopify's native Generate codes feature only creates random new codes, so it does not solve the import problem. You can not technically bulk upload discount codes on Shopify natively. A Shopify store has three workable paths to get pre-existing codes live in the store:

A third-party discount app. Apps like Kite Discount and Free Gift and Bulk Discount Code Bot use Shopify's Admin API on the backend to push externally-generated codes into the store. This is the fastest path for a non-technical Shopify store because the CSV upload is built into the app's UI and no code is required.
Custom development against the Shopify Admin API. A developer can write a script against the Price Rules and Discount Codes API endpoints to programmatically create specific codes in bulk. This is the right path for stores with engineering resources and a one-off migration or recurring sync requirement that does not fit any app's workflow.
Shopify Flow. Flow can create individual discount codes triggered by events (a new customer signup, an order tag, a loyalty tier change), but it is not a true bulk import path for a pre-existing list. Flow fits recurring per-event code issuance, not the one-time migration of thousands of existing codes.

For most Shopify stores, the third-party app path is the practical choice. The walkthrough below uses Kite Discount and Free Gift because its Discount Generator surfaces CSV upload as a first-class option alongside random generation and manual entry.

How to Bulk Upload Discount Codes into Shopify Using An App

Kite Discount and Free Gift solves the CSV import gap through its Discount Generator feature, which includes Upload List as one of three generation modes. The full bulk upload workflow:

Step 1: Install Kite Discount and Free Gift from the Shopify App Store and open the app from the Shopify admin.

Step 2: Create a new discount campaign of any type (Free Gift, BOGO, Volume Discount, Order Discount, Shipping Discount) or open an existing campaign. The discount must use the code-level method, meaning customers enter the code at checkout. Automatic discounts cannot accept bulk uploaded codes.

Step 3: Within the campaign editor, scroll down to the Discount Generator section and click Generate codes.

Step 4: Search for and select the parent discount campaign. A summary of the discount value, product scope, customer eligibility, and usage limits displays for confirmation. Every code in the CSV inherits these settings from the parent discount.

Step 5: Choose Upload List as the generation method. The other two options (Randomly Generate and Manual Entry) are for creating new codes; Upload List is the option for importing pre-existing codes.

Step 6: Attach the CSV file containing the pre-existing discount codes. The format is one code per row in a single column. Kite parses each row and creates it as a unique discount code under the parent campaign.

Step 7: Optionally enter an email address to be notified when processing completes. Bulk uploads of 10,000 or more codes can take several minutes to process.

Step 8: Click Generate. Kite imports the CSV, creates each row as a unique discount code in Shopify, and links each code to the parent campaign.

Step 9: Once processing completes, select the imported codes and click Export to download the final list. Use the export to verify that every code from the original CSV is now live in Shopify and ready to redeem at checkout.

Once the codes are uploaded, they appear in the Shopify admin under the parent discount and behave identically to any other Shopify discount code. Customers enter them at checkout, redemption is tracked in the admin export, and per-code limits configured in Kite are enforced automatically on every redemption.

Bonus: Types of Shopify Discount Codes

Two things often get conflated in Shopify discount conversations: types of Shopify discounts and types of Shopify discount codes. They are not the same. Types of discounts refers to what the discount does at checkout, meaning the value structure: percentage off products, percentage off order, free shipping, or Buy X Get Y. Types of discount codes refers to how the code itself is structured and distributed, meaning the code structure: single shared codes used by many customers vs. bulk unique codes used by one customer each, manually-named codes vs. auto-generated codes, codes created inside Shopify vs. codes uploaded from outside. A Shopify store has to make decisions on both axes when planning a campaign, and the type of code chosen often matters as much as the type of discount.

1. Custom-Named Single Shared Codes

The Shopify store types the code name (SUMMER25, WELCOME10, BLACKFRIDAY) and the same code is redeemed by many customers. Best for storewide sales, email broadcasts, social media promotions, and any campaign where the code itself carries marketing weight (a memorable code is part of the offer). The trade-off is no per-customer attribution and full exposure to code-stuffing and coupon aggregator scraping.

2. Auto-Generated Single Shared Codes

Shopify generates a random alphanumeric string as the code. Functionally identical to custom-named single shared codes in how they redeem, but the random format makes them harder to guess, share publicly, or surface on a coupon aggregator site. Used when the code is sent privately to a specific customer or small group (for example, a VIP, a service recovery situation, or a private beta cohort) and does not need to be memorable.

3. Bulk Unique Single-Use Codes (Auto-Generated)

Shopify or a discount app generates a batch of unique random codes, each redeemable once. This is the right setup for influencer attribution, abandoned cart recovery, win-back campaigns, and any campaign where per-customer or per-partner tracking is the goal. Native Shopify supports this through the Generate codes feature; apps add format control and per-code analytics on top.

4. Branded Prefix Bulk Codes

Bulk unique codes with a custom prefix or suffix (for example, INFLUENCER-JANE-X4F2 or BRAND-NAME-X7K9). This combines the marketing weight of a branded code with the per-customer attribution of a unique code. Native Shopify cannot create these because its bulk generation produces random strings only with no prefix or suffix control. A discount app like Kite is required to generate branded prefix bulk codes.

5. Imported CSV Codes

Pre-existing codes generated outside Shopify (in a loyalty platform, affiliate platform, gift card system, or the store's previous ecommerce platform) and bulk uploaded into Shopify via CSV. Native Shopify does not support CSV import; an app is required. Once uploaded, imported codes behave exactly like Shopify-generated codes at checkout, with the same redemption tracking and the same admin visibility.

The four types of Shopify discounts (Amount off products, Amount off order, Free shipping, and Buy X Get Y) are a separate axis from the type of code. The right campaign uses the right combination of both: a type of discount (what the customer gets) and a type of code (how the code is structured and distributed). For campaigns that pair tiered pricing structures with discount codes, see our guide on how to set up Shopify tiered pricing, and for stacking and combining discounts, see how to combine discounts on Shopify.

Sources

1. Shopify Help Center, Discount types: the four core discount types.

2. Shopify Help Center, Discount codes: code creation, limits, expiry, customer eligibility, and combinations.

3. Shopify Help Center, Exporting discounts: native CSV export and confirmation that CSV import is not supported.

4. Kite Discount and Free Gift, Generating unique codes for a single discount campaign: bulk code generation walkthrough with three options including CSV upload.

5. Kite Discount and Free Gift, Discount code limits setup: per-customer and total usage limits.

No items found.

Rushy Scarcity Countdown Timer

Free to install
Built for Shopify

Hurrify customers to buy within a given timeframe with a sales countdown timer & improve conversions

Another popular Shopify checkout app is Checkout Promotions. The app comes with the ability to leverage a collection of highly robust visibility rules that help show customers one-click post purchase upsell promotions after an order payment has been made. Some of its key features include:

Features

AI recommended and manual recommendations for upselling.

Complete branding control.

Checkout Upsell for increasing AOV.

AI recommended and manual recommendations for upselling.

Pricing

Development

Free

Monthly Plan

$99/ month

Plus Plan

$99/ month

Plus Plan

$99/ month

FAQs on Generating Shopify Discount Codes

Are Shopify discount codes case sensitive?
What's the difference between a discount code and a coupon code on Shopify?
Can customers apply multiple discount codes on Shopify at the same time?
How do I apply a discount code at Shopify POS?
How do I export discount codes from Shopify?
How do I send discount codes to customers on Shopify?
Sid B

Sid B

Sid is the founder of Skai Lama and The Indian Dream Podcast. He is passionate about building SaaS and talks about eCommerce Growth, 0-1 Startups, Building Businesses and Brands, and Shopify.
The Only Discount & Free Gift App you Need on Shopify
bfcm 2025 guide
Access Now