Create a discount set
A discount set is one discount in Shopify with many codes. This page walks through every field on the Create Discount Codes page, in the order you'll see them.
How it works
- Open Discount codes › Create new discount set.
- Fill in the cards on the left. The Summary card on the right updates as you go and shows an example code.
- Click Save in the bar at the top of the page. If a field needs fixing, the page scrolls to it and shows the reason.
- The set is queued and its codes are created in Shopify in the background. You're taken back to the Discount codes list, where you can watch the progress.
All codes in a set share the same rules: value, products, minimum, customers, dates and limits. If you need different rules, create another set. You'll find the discount in Shopify under Discounts, with the set's title.
General settings
Title
The name of the set in DiscountFix, and the title of the discount in Shopify. It is filled in for you as Discount Codes - YYYY-MM-DD HH:mm; replace it with something you'll recognise later, such as Black Friday 20%. The title is required.
If you already have a set with the same title, the new one is renamed automatically to Title - 2, Title - 3 and so on. Customers never see the title, only the code.
Code creation type
| Option | Use it when |
|---|---|
| Create random discount codes Default | You want DiscountFix to invent unique codes like SUMMER-K7Q-2MX. You choose how many, their length, prefix, suffix, characters and separators. |
| Create specific discount codes | You already have a list of codes, for example from a partner, a printed campaign or an old platform. Paste them or upload a CSV / Excel file. |
All the options for both are on the Code format page.
Discount type
Choose what the code does. Each type is explained in detail, with how it shows at checkout, on the Discount types page.
| Type | What it does |
|---|---|
| Percentage Default | A percentage off products. |
| Fixed value | A fixed amount off products, in your store currency. |
| Free shipping | Free shipping on the order, or a fixed amount off shipping. |
| Buy X Get Y | Buy certain products, get others free or discounted. |
| Free gift New | A free product, with no purchase needed or once the order reaches a minimum. See Free gift. |
| Amount off order + Free shipping New | One code that takes an amount off the order and makes shipping free. |
The cards below change with the type you pick. For example, Buy X Get Y replaces Discount Value, Applies to and Minimum with its own Customer buys and Customer gets cards.
Free gift
Shown for Free gift. The code puts one product in the order for free, and each code can be shared as a cart link that adds the gift to the cart and applies the code.
- Gift product: pick one product. If it has several variants, open it in the picker and tick only the one to give (for example one size or colour).
- Quantity: how many of the gift are free. Extra units added to the cart are charged normally.
- Customer gets the gift:
- With no purchase needed: the gift is free on its own.
- When the order reaches a minimum amount or a minimum number of items: enter the minimum, then choose the products or collections it is counted from. To count every product, choose a collection that contains all of them; Shopify doesn't offer "all products" here.
The gift is given once per order. In Shopify the discount shows as a product discount (no minimum) or as a Buy X Get Y discount (with a minimum). Until the minimum is reached, a gift in the cart stays at full price.
Discount value
Shown for Percentage and Fixed value.
- Value: a number above 0. Percentages can be at most 100. Fixed amounts are in your store currency, which is shown next to the field.
- Only apply to a limited number of items per order: caps how many units get the discount. See Item limit.
- Set a maximum discount amount (Percentage only): the most the code takes off per order, in your store currency, e.g. 20% off, up to 500. See Maximum discount amount.
- Use discount tiers: a bigger discount for a bigger spend (10% from 1,000, 20% from 2,000) or for more items (buy 3, get 10%; buy 5, get 20%). See Discount tiers.
- Include free shipping: the same code also makes shipping free. See Product discount + free shipping.
For Amount off order + Free shipping, the card is called Order discount and has Order discount type (Percentage or Fixed amount) and Value. With Percentage you can also set a maximum discount amount.
Applies to
Which products the discount covers. Shown for every type except Free shipping and Buy X Get Y.
| Option | Details |
|---|---|
| All products Default | Every product in your store. |
| Specific collections | Click Browse and pick one or more collections. Products added to those collections later are covered too. |
| Specific products | Click Browse and pick products. You can narrow a product down to some of its variants; the list shows All variants or 2 of 5 variants. |
Remove an item with its × button. If you choose collections or products, select at least one.
For Amount off order + Free shipping, the order discount comes off the total of the selected items only, and free shipping applies when the cart contains at least one of them.
Don't discount products that are already on sale
Skips every variant whose compare-at price is higher than its price, so a code never stacks on top of a markdown. It works per variant: if only one size of a product is marked down, the other sizes still get the discount.
- Sale items also don't count toward a minimum that counts only the discounted products. Choose The whole order under What counts toward the minimum to count them.
- If every item in the cart is on sale, the code doesn't apply (and a product discount with free shipping doesn't ship free either).
- On Percentage and Fixed value sets the code is created as an app discount. It can be turned on only when a set is created; after that you can turn it off or back on from Edit settings.
Show as an order discount at checkout
Shopify treats a discount on specific collections or products as a product discount. At checkout it lowers the price of each eligible item, the Subtotal already includes it, and nothing shows under Order discount. Tick this option to show the saving as one line under Order discount instead. Only the same items are discounted, and the amount is the same.
| A 15% code, cart with a 100.00 eligible item and a 30.00 other item | Option off Default | Option on |
|---|---|---|
| Eligible item | 100.00 | |
| Subtotal | 115.00 | 130.00 |
| Order discount | (not shown) | CODE −15.00 |
| Total | 115.00 | 115.00 |
- Shown for Percentage and Fixed value when you pick specific collections or products, or tick Don't discount products that are already on sale.
- Stacking follows the rules for order discounts: to use the code together with another order discount (for example a loyalty reward), both discounts must allow combining with order discounts.
- It can't be used with discount tiers, an item limit or Only apply discount once per order unticked. Ticking it turns those off.
- The code is created as an app discount. The option is fixed once the set is created: to change it, duplicate the set and save the copy with the option changed.
Only apply discount once per order
Shown for Fixed value when you pick specific collections or products (and no item limit). It decides how the amount is counted when the cart has several eligible items:
| Setting | A €5 code on a cart with 3 eligible items |
|---|---|
| Only apply discount once per order ticked Default | €5 off in total, spread across the three items. |
| Unticked | €5 off each eligible item: €15 in total. |
With All products the code is an order discount and always comes off once. With an item limit, the amount always comes off each discounted unit, up to the limit.
Shipping discount, countries & shipping rates
Shown for Free shipping.
| Option | Details |
|---|---|
| Free shipping Default | Shipping is free. |
| Fixed amount off shipping New | Takes the amount you enter (store currency) off each shipment, e.g. 10 off a 25 rate. A rate below the amount ships free. Created as an app discount; with selected countries the discount shows once the customer has entered an address. See Fixed amount off shipping. |
| All countries Default | Free shipping wherever you ship. |
| Selected countries | Only for orders shipped to the countries you tick. The list shows the countries your store ships to (from Settings › Shipping and delivery); use the search box to find one. Select at least one. |
| Exclude shipping rates over a certain amount | The code only covers shipping rates up to this amount, in your store currency. For example, with 20, standard shipping (€6) is free but express (€25) isn't. Not available with Fixed amount off shipping. |
Purchase type & subscriptions
Shown for every type except Buy X Get Y, which has its own Purchase type in the Customer buys card. It decides whether the code works on one-time purchases, subscriptions, or both.
| Option | Details |
|---|---|
| One-time purchase Default | The code works on regular purchases only, the same as Shopify's default. |
| Subscription | The code works only on subscription purchases. |
| Both | The code works on one-time purchases and subscriptions. |
Recurring payments for subscriptions
With Subscription or Both, choose how many subscription payments get the discount:
- Limit discount to the first payment Default: only the first order of the subscription is discounted.
- Limit discount to multiple recurring payments: enter a Number of payments. It includes the first payment, so 3 means the first three orders.
- Discount applies to all recurring payments: every renewal is discounted for as long as the subscription runs.
Subscriptions are sold through a subscription app, such as Shopify Subscriptions. If your store doesn't sell subscriptions yet, the page tells you so. You can still pick the option; it takes effect once you add subscription products.
Minimum purchase requirements
What the cart needs before the code works. Hidden for Buy X Get Y, which has its own requirement.
| Option | Details |
|---|---|
| No minimum requirements Default | The code works on any cart. |
| Minimum purchase amount | The cart subtotal must reach this amount, in your store currency. |
| Minimum quantity of items | The cart must contain at least this many items. Use a whole number. |
By default the minimum counts only the items the discount applies to, which is Shopify's standard rule. A €50 minimum on "T-shirts" needs €50 of T-shirts in the cart.
For codes created as app discounts (item limit, maximum discount amount, product + free shipping, and order + free shipping), you can change this under What counts toward the minimum:
- Only the discounted products: the default described above.
- The whole order: every item in the cart counts. Use it for offers like "spend €30, get this product free". The free product counts at its full price, so to require €30 of other items on top of a €16.90 gift, set the minimum to €46.90.
If a customer sees that the code is valid but can't be applied, the cart doesn't meet the minimum as counted above. The most common case is a gift offer left on Only the discounted products: a €16.90 product alone can never reach a €30 minimum.
Eligibility
Who can use the codes.
| Option | Details |
|---|---|
| All customers Default | Anyone with the code, including guest checkouts. |
| Specific customer segments | Only customers in the segments you tick. Segments are the ones you build in Shopify under Customers › Segments. The first 100 segments are listed. |
| Specific markets | Only buyers in the markets you tick, as set up in Shopify under Settings › Markets. The first 100 markets are listed. |
- A set can target segments or markets, not both.
- Segment targeting means the customer has to be logged in (or identified at checkout) and belong to the segment when they check out.
- There is no "specific customers" option. To target a handful of people, create a segment for them in Shopify first, for example customers with a certain tag.
Checked at checkout
Two extra checks in the same card, run live when the customer checks out:
- Only customers with any of these tags: separate tags with commas, e.g. vip, wholesale. The customer needs at least one of them.
- Only for a customer's first order: the customer must have no orders in your store yet.
Unlike segments, these don't wait for Shopify to update segment membership, so a customer tagged a minute ago or a brand-new account qualifies right away. The customer has to be logged in: at a guest checkout Shopify can't tell who is buying, so the code doesn't apply. On Percentage and Fixed value sets the code is created as an app discount; these checks can be turned on only when a set is created, and changed later from Edit settings.
Per-customer limit
Limit how often each customer can use this set counts a customer's orders across all codes of the set, codes added later included:
- Uses per customer: e.g. 3 means a customer can use the set on 3 orders, whichever codes they have.
- Days between uses: e.g. 30 means once a month. The days follow your store's time zone.
Fill in one or both. For a single use per customer the Limit to one use per customer option is enough; this rule is for more than one use or a waiting time. The first time you turn it on, Shopify asks you to allow DiscountFix to write customer data: the count is saved on each customer and nothing else is changed.
Good to know: the count updates a few seconds after each order, so two orders placed back to back can both go through. Guests can't be counted; by default the codes then only work for logged-in customers, unless you tick Let guests use the codes. A blocked customer sees the code as not applicable. Works with Percentage, Fixed value and Combined sets (created as an app discount).
Combinations
Whether the code can be used together with other discounts in the same checkout. All three are off by default.
- Product discounts
- Order discounts
- Shipping discounts (not shown for Free shipping sets)
Both discounts must allow the combination. If your automatic discount doesn't combine with product discounts, a DiscountFix code with Product discounts ticked still won't stack with it.
Stack on the same item Shopify Plus
Normally an item gets only one product discount, even when the discounts combine. On Shopify Plus, Stack on the same item with discounts tagged lets this code apply to an item that already has another product discount.
- Two discounts stack on the same item only when each allows a tag the other has. Enter the other discount's tags here, and allow this set's tags on the other discount.
- This set's own tags are its Campaign, Channel and Department values. Give the set at least one.
- Only for product discounts: Percentage or Fixed value on specific products or collections, Buy X Get Y and Free gift. Adding a tag ticks Product discounts.
- The field is shown only on Shopify Plus stores.
Sales channel access
This card has no setting. Shopify's Allow discount to be featured on selected channels option can't be set by apps. If you need it, wait until the codes are generated, click Open in Shopify next to the set, and set Sales channel access there.
That option only controls where the discount can be promoted. It doesn't restrict where customers can redeem it.
Maximum discount uses
| Option | Default | Details |
|---|---|---|
| Limit number of times this discount can be used in total | On, Total uses = 1 | How many times each code can be used. With 1, every code is single-use: 500 codes give 500 redemptions. Untick for unlimited use. |
| Limit to one use per customer | On | A customer can use a discount from this set only once, even if they have several of its codes. |
Unique single-use codes (newsletter, influencer lists, printed cards): leave both on with Total uses = 1.
A few shared codes (e.g. 10 codes for 10 partners, each usable 100 times): Total uses = 100, and decide whether one customer may use it more than once.
Active dates
- Start date and Start time: filled in with the current date and time. Codes work from this moment. A start in the past is allowed and simply means "active now".
- Set end date: tick to add End date and End time. The end must be after the start. Without an end date, codes never expire.
- If you move the start past the end, the end is moved forward for you.
Dates and times are read in the timezone set in Shopify under Settings › General, not your computer's. The default start time is taken from your computer's clock, so if you're travelling, check the start time before saving.
You can change the dates later with Edit settings, or push the end date from Shopify Flow. See Edit a set.
Summary card
The card on the right sums up the set as you build it, so you can check it before saving:
- An example code with your format, plus code type, count, length, prefix, suffix, allowed characters and separator.
- The discount in one line, e.g. 10% off for all products (max 2 items) + free shipping or Buy 1 items, get 1 at 50% off.
- Extra lines when you use them, e.g. Ships to 2 countries, rates up to 20 EUR, Applies to each eligible item or One-time purchases and subscriptions (first 3 payments).
- The minimum, e.g. Minimum purchase of 50.
- Who it's for: For all customers, For 2 customer segments or For 1 market.
- The limits, e.g. Limit of 1 use, one per customer.
Saving and generation
Clicking Save queues the set. You'll see Discount set saved successfully. and go back to the list. The codes are then created in Shopify in the background, in batches of 250:
| Status | Meaning |
|---|---|
| In queue | Waiting its turn. Your store's sets are processed one after another, in the order they were saved. Other stores' sets don't hold yours up. The card shows how many of your sets are ahead and roughly when it starts. |
| Running | The discount exists in Shopify and codes are being added. The list shows X / Y created, a progress bar and the estimated time left, and refreshes itself. |
| Completed | All codes are in Shopify and ready to use. |
| Failed | Shopify refused the discount, for example because of invalid dates or an empty product list. Nothing will change by waiting. Check the settings and create a new set; if you can't see what's wrong, contact us with the set ID and we'll tell you Shopify's reason. |
The first codes are usable as soon as the set is Running. You can close the app while it works; generation continues on our servers.
Roughly 2,000 codes a minute: a few hundred codes are ready in seconds, 10,000 in about 5 minutes, 50,000 in about half an hour. Shopify accepts 250 codes at a time, so size sets the pace. Several stores are processed in parallel, so a large set in another store doesn't make you wait. While a set is generating, the In-progress card shows an estimate based on the actual speed.
Save errors
Field problems are shown under the field itself, for example Title is required., Percentage cannot exceed 100., Select at least one product. or End date can't be before the start date. Other messages appear in a red banner at the top of the page:
| Message | What to do |
|---|---|
| You've reached your monthly limit | The form is locked until your allowance resets next month. Upgrade on the Pricing page to continue now. See Plans & limits. |
| We couldn't reach the server… | Check your connection. Ad blockers and some privacy extensions block the request; disable them for Shopify admin and try again. |
| Error saving discount set. Please try again. | A temporary problem. Try again in a minute. If it keeps happening, contact us. |