In this article · 15 sections
- Which 8 discount types CloudCart has and what each one is for
- How to create a discount code in CloudCart: every field
- How to limit a discount code to one customer or a customer group
- Single-use discount codes: the Container for your newsletter
- Discount code generator: Discount code (PRO) for partners and influencers
- Fixed price and quantity discount on a product
- How to set up a countdown timer discount
- Free shipping with a code or over a threshold
- Cart Rules: a promotion with several conditions
- Which discounts stack in one cart
- How to see how many sales a discount code brought in
- Discount codes with an AI assistant instead of forms
- 7 best practices for discount codes
- Mistakes that stop a discount code from working
- Frequently asked questions
In short: a discount code in CloudCart is created in Marketing → Discounts → + Add discount with the Discount with promo code card. You fill in a name, the value, what it applies to, the code and a start date. The admin offers 8 discount types: global, single code, many single-use codes, Discount code (PRO) with a generator, fixed price, quantity, Countdown with a timer and Cart Rules with several conditions.
A discount code (also called a promo code or coupon code) is a word or a mix of letters and digits that the shopper types into the cart to get money off, free shipping or another benefit. For the store it is also a tracking tool: every code shows how many orders and how much revenue it brought in. This guide is for merchants who already know which promotion they want and need to find the right field. When to discount and by how much is covered in the guide discount codes and 10 promotions for Black Friday and Christmas. Here you get only the admin settings. The card and field names are exactly as the admin of CloudCart, the ecommerce platform from Bulgaria, shows them in English. They come from the platform documentation and the Promotions and discounts page.
Which 8 discount types CloudCart has and what each one is for
You choose the discount type when you create it: Marketing → Discounts → + Add discount opens a window with 10 cards. Eight of them lower the price, and the last two (Label Discount and Visual Label/Image) only put a label or sticker on the product. The right card depends on three questions: do you need a code, who is the discount for, and what does it reduce.
| Card in the admin | What it reduces | Code | Limit per plan (Baby / Starter / CC Pro / CC Master) |
|---|---|---|---|
| Global discount | A percentage, an amount or shipping, with no code | No | 3 / 5 / unlimited / unlimited |
| Discount with promo code | A percentage, an amount or shipping, once a code is entered | One | 3 / 5 / unlimited / unlimited |
| Discount with multiple promo codes - Container | The same terms for many single-use codes | Many, 10 characters each | no / no / yes / yes |
| Discount code (PRO) | Codes under one campaign, each with its own terms | Many, in your own format | no / no / yes / yes |
| Fixed discount | A new price for a product or variant | No | 3 / 5 / unlimited / unlimited |
| Quantity discount | The unit price by quantity, up to 12 tiers for a product without variants | No | 3 / 5 / unlimited / unlimited |
| Countdown discount | The whole order, with a timer at checkout | No | one per store |
| Cart rules | An "if… then…" rule with several conditions | No | 1 / 1 / 2 / 3 rules |
The limits come from the pricing page. The Discount code (PRO) generator creates up to 5,000 codes at once by default. The offer validity timer is listed on /pricing for CC Pro and CC Master, so check your plan before you plan a Countdown. When you reach the limit for a type, the admin shows how many you have used out of how many.
How to create a discount code in CloudCart: every field
A discount code is created with the Discount with promo code card. The form has 7 blocks, and only the name, type, value, target, code and start date are required. Here is the path for a code WINTER15 that gives 15% on orders over €50:
- Open Marketing → Discounts → + Add discount. Choose the Discount with promo code card.
- Fill in General settings. Discount name is for you (up to 191 characters). In Discount type choose Percentage, Fixed amount or Free shipping. In Discount value enter 15 for 15%. The percentage is a whole number up to 100, never a fraction like 0.15.
- Choose the Discount target. There are seven options: the whole cart, orders over an amount, products, a category, a brand, a smart collection, or a category plus a brand. For orders over an amount, enter the threshold in Order amount threshold (up to €10,000). The threshold is strictly "over": for "from €50" enter €49.99.
- Set the limits. Global discount limit is the total number of uses, and Discount limit for customer is how many times one customer can use it. Both take 1 to 100,000 or Unlimited. The global limit only appears for the whole cart and for orders over an amount.
- Enter the code. Promo code takes up to 20 characters: letters, digits, a dot and #. The code is unique across the whole store, and the shopper can type it in upper or lower case.
- Decide about reduced products. By default the code does not apply if the cart holds a product with another discount. Turn on Apply discount even if the cart contains products with a discount to allow it. Then Apply to the regular price of products, if this discount is greater appears: the code is calculated from the regular price when that gives the bigger discount.
- Set the dates and colors. Start date is required, End date or No expiration is optional. Background color and Text color style the label on the storefront, and Show discount amount in label as shows the discount as a percentage or an amount. Save and test the code in the cart from another browser.
The global discount (the Global discount card) has the same form without the code. It applies to everyone who meets the conditions. If you turn it off and on again, the second activation is possible after 10 minutes, because the store recalculates the prices of every affected product.
Important: a use is counted when the order becomes paid, completed or fulfilled. A cancelled or refunded order frees the slot, so a code with a limit of 200 can accept new orders after the counter has reached 200, as soon as one of those orders is cancelled.
How to limit a discount code to one customer or a customer group
A code for one customer is set in the Customers field of the discount form: you select the registered customer and the code works for nobody else. Add Discount limit for customer = 1 if the code is for a single order. Once the customer reaches the limit, the store removes the code from their cart.
A discount for a customer group only is set in the same block:
- Create the group. Customers → Customer groups, for example "VIP" or "Wholesale". You get 3 groups in Starter Pack, 5 in CC Pro and 100 in CC Master. Baby Pack has no customer groups.
- Turn off All groups. The Customer groups list appears in the discount form. Pick one or more groups.
- Block guests if needed. Discount available only to registered users keeps the discount for registered customers. The field appears when the target is "orders over an amount".
- Limit the region. Codes have Region (Geo zone): the code is valid only for delivery to the selected zone, for example Bulgaria only when the store also ships to Romania and Greece. Make it Global removes the restriction.
Example: a cosmetics store gives the "Salons" group 20% on orders over €150 with no code, using a global discount. Regular shoppers never see the discount, and a salon gets it automatically as soon as it logs in.
Single-use discount codes: the Container for your newsletter
Single-use codes are created with the Discount with multiple promo codes - Container card, available in CC Pro and CC Master. The Container is a parent discount: it holds the terms (percentage, target, customer groups, regions and dates), and each code under it is good for one order.
- Create the parent. + Add discount → Discount with multiple promo codes - Container. Fill in the name, the percentage value, the target and the dates. Save.
- Open the codes. On the discount's row in the list, click Promo code management.
- Generate. The Generate codes button opens a window with two fields: Amount of the discount (percentage) and Amount of codes (how many). The store creates exactly that many codes, each 10 capital letters and digits.
- Send them. Each code is a separate row with a copy button. If a code leaks to a coupon site, switch off only that code with its toggle.
The shopper does not have to type the code. The link your-store-address/cart/discount:CODE adds the code to the cart the moment it is opened. Campaigns in Marketing → Campaigns also have code variables for the message ({$dynamic_discount_code} and {$generate_discount_code:10%}), which need a linked discount. How to build the email itself is in the guide email campaign in CloudCart step by step.
The same principle works for abandoned carts: the link in the reminder email can carry a discount code that applies itself when opened, with nothing to type. When a code in the reminder pays off and when it only eats your margin is covered in the article on abandoned carts in an online store.
Discount code generator: Discount code (PRO) for partners and influencers
Discount code (PRO) is a campaign in which every code has its own terms, limit, dates and customer group. The card is in CC Pro and CC Master, and on smaller plans it opens an upgrade window. It is the right choice when ANNA15 gives 15%, MARK20 gives 20% and STAFF26 is for your team. For a standing programme with commission for partners, see the article on an affiliate program for an online store. For working with creators, see influencer marketing for an online store.
One code by hand
- Create the campaign. + Add discount → Discount code (PRO). Save the campaign name.
- Open Codes management. The row in the list has the link Codes management (N), where N is the number of codes.
- Add a code. + Add code: the code (up to 20 letters and digits), the start date and at least one condition. A code can have up to 5 condition rows, each with a type (amount, percentage or free shipping), a value and a target. For "orders over an amount" the amount is required.
Hundreds of codes with the generator
The Generate codes button in Codes management creates many codes with the same terms at once. There are two modes:
| Mode | Fields | Result | When to use it |
|---|---|---|---|
| Range | From and To | Sequential numbers: 1000, 1001 … 1999 | Printed cards, numbered codes |
| Random | Limit, Length (6-18), Structure (letters, digits or both) | Random codes that cannot be guessed | Newsletter, ads, partners |
The generator saves the whole batch or nothing. In Range mode, if one code already exists, the batch is rejected. Range drops leading zeros (0100 becomes 100), so for codes that start with zero use Random with digits. The Export button downloads every code in the campaign as a CSV file with terms, dates and uses, ready for a partner or your accountant.
| Container | Discount code (PRO) | |
|---|---|---|
| Terms | The same for all codes | Separate for each code |
| Code format | 10 characters, capitals and digits | Range or Random, 6-18 characters |
| Uses per code | One | As many as you set, 1-100,000 |
| Code list | Copy and switch off each code | Export of all codes to CSV |
| Best for | Single-use codes for subscribers | Influencers, partners, staff |
Fixed price and quantity discount on a product
A fixed discount sets an exact new price on a product, and a quantity discount lowers the unit price when the shopper buys more. Neither needs a code, and both show on the product page.
Fixed discount: "was €59.90, now €44.90"
Create the discount with the Fixed discount card and choose the products. Then open the list from the Products link on the row, add a product with + Add product and set the new price: Common price (one price for all sizes) or Multiple price (S, M and L at different prices). The storefront shows the old price struck through. Each product can be switched on and off on its own.
Important: under EU price indication rules (Article 6a of Directive 98/6/EC, in force across the EU since May 28, 2022 and part of the Bulgarian Consumer Protection Act), a price reduction must quote as the earlier price the lowest price you charged in at least the previous 30 days (Directive (EU) 2019/2161). CloudCart strikes through the product's regular price and does not calculate the 30-day lowest price itself, so do not change the product price for at least a month before the promotion. The full calendar is on the page Black Friday preparation in 30 steps.
Quantity discount: "10 or more at €15 each"
- Choose the product. + Add discount → Quantity discount. One quantity discount covers one product, and a product can sit in only one quantity discount, even a disabled one.
- Build the tiers. Each tier is a quantity and a unit price. A product without variants can have up to 12 tiers. For a product with variants, click the tier price: Common price is one price for all variants, Multiple price is a price per variant.
- Decide how units are counted. By default each cart line counts on its own. Turn on counting across all lines if 5 red and 5 blue mugs should add up to 10.
- Limit groups and dates if needed. This discount has no code and no usage limit.
"3 for the price of 2" on one product is a quantity discount: at the 3-unit tier set a unit price equal to 2/3 of the regular price. For three different products use Cart Rules.
How to set up a countdown timer discount
The timer is the Countdown discount: a discount on the whole order with a timer that appears at checkout. The timer starts separately for each shopper, from the moment they see the window. Two shoppers who reach checkout 30 minutes apart each get the full time.
- Choose the Countdown discount card. Its description says it reduces the price of the whole order for a set time.
- Set the discount. An amount or a percentage, for the whole cart or for orders over an amount.
- Set the time. Validity time is in minutes, for example 60.
- Write the text. Description is the content of the window ("20% off your whole order, only for the next 60 minutes").
- Pick the effect. Display effect: confetti, fireworks or a parade. The Preview button shows the animation right away.
- Set the dates and save. You can limit the discount to groups or to registered customers.
The timer rules: a store can have only one Countdown discount, even a disabled one. To make a new one, delete the old one. The timer shows only at checkout, never on product pages. An amount discount is not shown if the amount is larger than the cart. Fast Order does not show the window.
Free shipping with a code or over a threshold
Free shipping is set with a Global discount (no code) or a Discount with promo code by choosing Free shipping in Discount type. The discount sets shipping to zero at checkout, and product prices stay the same. The target can only be the whole cart or orders over an amount.
Two things often surprise merchants. Shipping cannot be reduced by a percentage ("50% off shipping"): use Cart Rules for that. And free shipping over a threshold always applies, even when the cart contains reduced products. How to pick the threshold against Econt, Speedy and BOX NOW rates (the three main parcel networks in Bulgaria) is in the guide on the free shipping threshold and courier costs.
Cart Rules: a promotion with several conditions
Cart Rules is a separate module for "if… then…" promotions, for example 10% when the cart has 3 products from brand X and is over €50. It opens from the first card in + Add discount or from Apps → Cart Rules. A rule has rows, each row has conditions (all must be met) and one action: an amount, a percentage or free shipping.
- Create the rule. + New rule, or + Generate with AI if you want to describe the promotion in words.
- Fill in the titles. The name is for you, the title is what the shopper sees. Set the dates and the priority.
- Add the rows. Conditions on the cart, the product or the customer, plus the action. Fill in the row message ("Add €6 more for free shipping"): it shows in the cart and at checkout.
- Test it. The module has no test cart. Create the rule, try it in the cart, and only then put it in your ads.
The number of rules, rows and conditions depends on the plan: 1 rule with 1 condition in Baby Pack and Starter Pack, 2 rules with 3 conditions in CC Pro and 3 rules with 5 conditions in CC Master. Cart Rules has no usage limit, so for limited offers use a code.
Which discounts stack in one cart
CloudCart applies discounts in the cart in a fixed order: first the fixed price and the quantity discount on the product, then Countdown, then the global discount and the code, and finally Cart Rules on the already reduced total. Discounts do not compound (10%, then 5% of what is left): each is calculated from its own base. Only Cart Rules check their conditions against the reduced total.
| Situation | What happens |
|---|---|
| The shopper enters a second code | The second replaces the first. The exception is single-use codes from the same Container: they add up. |
| A code with a reduced product in the cart | The code is rejected unless Apply discount even if the cart contains products with a discount is on. |
| Two global "orders over an amount" discounts | Only the one that gives the bigger discount in euros applies. |
| Countdown and a code | They stack. |
| Quantity and fixed discount on one product | The quantity discount wins. |
| A discount and Cart Rules | Cart Rules see the total after the discount. |
How to see how many sales a discount code brought in
Discount code results in CloudCart are in Analytics → Order discounts: a box with the 5 order discounts that gave away the largest amount in the selected period, with the number of uses and the split between mobile and desktop. See details opens the full table of every discount (orders and amount given away), and View more on a row lists each order that used the code. Orders count in the statuses paid, completed, pending, payment authorised and fulfilled. Product-level discounts (fixed and quantity) are in the neighbouring product discounts box.
The number of uses alone does not tell you whether a promotion made money. Five numbers do:
| Metric | What it shows | Where in CloudCart |
|---|---|---|
| Code uses | How many orders went through with it | Order discounts and the uses column in Marketing → Discounts |
| Discount given in € | What the promotion cost | Order discounts, sorted by amount |
| Revenue from orders with the code | How much the code sold | The orders opened from the discount row, or an AI assistant |
| Average order with and without a code | Whether the "over €50" threshold lifts the basket | An AI assistant comparing the two groups of orders |
| Share of mobile orders | Where to test the code field and the banner | Order discounts, the mobile / desktop split |
A worked example: WINTER15 (15% over €50) was used in 200 orders with an average value of €68. Revenue is €13,600, the discount given is about €2,040, and the average order without a code in the same period is €41. The basket with the code is €27 bigger, so the threshold pays off. If the average order with the code were close to €50, the threshold would be too low. If more than half the uses come from mobile, check first how the code field looks in the mobile cart.
Discount codes with an AI assistant instead of forms
With an AI assistant such as Claude Code or ChatGPT Codex connected to the store through a PAT token, you create a discount with one sentence in plain English. The assistant works through the store's Admin GraphQL API and creates percentage, amount, fixed-price and free shipping discounts, quantity discounts with per-variant prices and Discount code (PRO) codes. After it saves, open the discount in Marketing → Discounts and check the fields.
- "Create WINTER15 for 15% over €50, one use per customer, from November 27 to November 30."
- "Create 20 PRO codes for the partners on this list, each with its own percentage and a limit of 100."
- "Set a fixed price on these 30 products and show me the list before you save."
- "Which November codes brought new customers and what did they cost in euros?"
The assistant goes through the same checks as the admin, so plan limits and cart rules are the same. The last question shows the biggest benefit: the assistant reads the orders directly and returns orders, revenue, average order and discount given for every code in one answer, with no table to assemble from several screens. A token with "Read only" access is enough for reports, and you can revoke the key at any time from the "PAT tokens" screen in the admin.
The gap between the form and the assistant is widest for repeated tasks and reports:
| Task | In the admin | With an AI assistant |
|---|---|---|
| 20 partner codes, each with its own percentage | 20 separate entries in Codes management | One list in one sentence |
| Fixed price on 30 products | 30 rows with + Add product | One sentence and a list review before saving |
| Revenue and average order by code | Order discounts gives uses and amount given, revenue is pieced together from orders | A table with orders, revenue, average order and discount given per code |
| Comparison with orders without a code | By hand, with an export | One question for the same period |
| Quantity discount with 12 tiers and a price per variant | Tier by tier, variant by variant | The tiers and prices are described once |
The same assistant answers the wider questions after the campaign: how many new customers it brought, which channel the orders came from and what the conversion rate was during the promotion.
7 best practices for discount codes
- A different code for each channel. FB15, G15 and MAIL15 with the same terms show which channel sold, even when Meta or Google ads miss the order. How to tie a code to an ad is in the article on Facebook and Instagram ads for an online store.
- A name that says it all. "BF, newsletter, 15% over €50" in Discount name saves you opening the form a month later.
- A per-customer limit on every public code. 1 or 2 uses are enough.
- Single-use codes for emails. A Container code is useless to anyone else once it has been used.
- Set the start date in advance. A saved discount starts on its own on the start date, so nobody has to switch it on at midnight.
- Test from another browser. As a guest and as a registered customer, with and without a reduced product in the cart.
- Review the result after the campaign. Compare the average order with and without the code, as described in measuring the discount code. A code that does not lift the basket is not repeated.
Mistakes that stop a discount code from working
- "From" instead of "over". A code over €50 does not apply to a cart of exactly €50.
- A code with a reduced product. Without Apply discount even if the cart contains products with a discount, the code is rejected for every cart with a reduced product. This is the most common reason behind "the code doesn't work".
- A second timer. Countdown is one per store, and a disabled one still takes the slot.
- Switching back on straight away. Global and fixed discounts can be switched on again after 10 minutes.
- The same code in two campaigns. A code is unique across the store and the form rejects it.
- New prices right before the promotion. Changing the price in the 30 days before a sale makes the struck-through price inaccurate under the EU 30-day rule. The European Commission's guidance on Article 6a adds that a code offered to most customers ("20% off with code XYZ") counts as a price reduction, while a genuinely personalised code, such as a birthday code, does not. The Commission's overview is on the Price Indication Directive page. Gift vouchers are a separate tool, described in the article on gift vouchers in an online store.
Frequently asked questions
Open Marketing → Discounts → + Add discount and choose the Discount with promo code card. Enter a name, the type (percentage, amount or free shipping), the value, the target, the code and the start date, then save. Test the code in the cart from another browser.
In the discount form, select the customer in the Customers field and set Discount limit for customer = 1. The code then works only for that registered customer and only once. For one code per customer across many customers, use the single-use codes of a Container.
Yes. Create the group in Customers → Customer groups, then turn off All groups in the discount form and pick the group. The discount can work with or without a code. Customer groups are available in Starter Pack, CC Pro and CC Master.
Use the Countdown discount card: set the discount, Validity time in minutes, the window text and the effect (confetti, fireworks or a parade). The timer shows at checkout and runs separately for each shopper. A store can have only one such discount.
There are two. The Container generates single-use codes of 10 characters with the same terms. Discount code (PRO) generates up to 5,000 codes at once by default, sequential (Range) or random (Random), and exports them to CSV.
The most common reason is a reduced product in the cart while Apply discount even if the cart contains products with a discount is off. Also check the threshold (it is strictly "over"), the dates, the limits, the customer group and the region. For Discount code (PRO), both the campaign and the code must be active.
Open Analytics → Order discounts: it shows the 5 discounts with the largest amount given away, the number of uses and the mobile share, and each row opens the orders that used the code. For revenue and average order per code, ask an AI assistant connected to the store with a read-only PAT token.
Usually not. The cart has room for one code and a second code replaces the first. The exception is single-use codes from the same Container, which add up. A code can stack with a Countdown discount and with Cart Rules when their conditions are met.
Sources
- Directive (EU) 2019/2161eur-lex.europa.eu
- guidance on Article 6aeur-lex.europa.eu
- Price Indication Directivecommission.europa.eu
