> For the complete documentation index, see [llms.txt](https://help.recart.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.recart.com/discounts/create-discount-codes-in-recart.md).

# Create & Manage Discount Codes

Create, edit and manage general, unique and expiring discount codes in Recart. Every code syncs to your Shopify store automatically.

Create every discount code on the Recart **Discounts** page, then add it to your popups, automated flows and campaigns. You don't need to create codes in Shopify first: Recart creates the discount in your Shopify store for you and keeps it in sync.

### The kinds of discount code

| Kind                                           | What it is                                                                 | Automated flows | Campaign flows | Popups |
| ---------------------------------------------- | -------------------------------------------------------------------------- | --------------- | -------------- | ------ |
| **General**                                    | One code that everyone gets                                                | ✓               | ✓              | ✓      |
| **Unique**, Automated flows & Popups placement | A different one-time code for each subscriber, created on demand           | ✓               | ✗              | ✓      |
| **Unique**, Campaign flows placement           | A different one-time code for each subscriber, from a pool you size        | ✗               | ✓              | ✗      |
| **Expiring**                                   | A unique code that stops working a set time after the customer receives it | ✓               | ✗              | ✓      |

When you pick a code in a popup or message, Recart only lists the codes that work there.

For more detail on each kind, see [General Discount Codes](/discounts/general-discount-codes.md), [Unique Discount Codes](/discounts/unique-discount-codes.md) and [Expiring Discount Codes](/discounts/expiring-discount-codes.md).

### Create a discount

#### Step 1: Click Create new on the Discounts page

Open [**Discounts**](https://app.recart.com/discounts) in the left menu and click **Create new**. Choose:

* **New discount** — build a general or unique discount from scratch
* **Import from Shopify** — bring in a discount that already exists in your Shopify store (see [Import an existing Shopify discount](#import-an-existing-shopify-discount))

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FvEYsOrWFDFk7SR5ecaeY%2Fdisc-create-new.png?alt=media" alt="The Discounts page with the Create new discount window open, offering New discount or Import from Shopify"><figcaption></figcaption></figure>

#### Step 2: Choose the discount type, customization and placement

**Discount type**

* **Amount off product** — discount specific products or collections
* **Buy X get Y** — discount products based on what the customer buys
* **Amount off order** — discount the total order amount
* **Free shipping** — offer free shipping on an order

**Discount code customization**

* **Unique** — each customer gets a different code
* **General** — every customer gets the same code

**Placement** (unique codes only)

* **Automated flows & Popups** — each customer receives a unique code, created on demand
* **Campaign flows** — you set how many codes to create for a campaign

Click **Continue**.

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FFMOkckGi3kTMvGEgjOpn%2Fdisc-type-unique.png?alt=media" alt="The discount type selection screen with Amount off product and Unique selected, showing the two placement options"><figcaption></figcaption></figure>

#### Step 3: Set up the discount

The form depends on the type you chose. A summary panel on the right keeps track of your choices as you scroll.

**Discount value**

* **Amount off product** and **Amount off order** — choose **Percentage** or **Fixed amount** and enter the value. For product discounts, choose what it **Applies to**: **Specific collections** or **Specific products**
* **Buy X get Y** — set what the customer buys (a minimum quantity or amount, from specific products or collections), what they get, and the discount on it: a **Percentage**, an **Amount off each** or **Free**. You can also limit the number of uses per order
* **Free shipping** — choose **All countries** or **Selected countries**, and optionally exclude shipping rates over a certain amount

If your store sells subscriptions, you can also choose whether the discount applies to one-time purchases, subscriptions or both.

**Discount code and name**

* **General codes** — enter the **Discount code** customers type at checkout, and a **Discount name** for your own reference. If the code already exists in Shopify, Recart tells you and offers to import it instead
* **Unique codes** — enter a **Discount name** and an optional **Discount code prefix**. Each code is your prefix followed by six random characters, for example `WELCOMEABC123`
* **Campaign flows placement** — also set the **Target discount pool size**: how many codes to create for your campaign, between 10,000 and 2,000,000. Set it about 20% higher than your campaign's target audience

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2Fbdnru5S4b9Ki16okgsoc%2Fdisc-form-campaign.png?alt=media" alt="The discount form for a unique campaign discount, with discount value, collections, name, prefix and target pool size fields and a summary panel"><figcaption></figcaption></figure>

**Scheduling**

* **Fixed date & time** — set when the discount becomes active, and optionally tick **Set end date**
* **Expires after a certain time** — only for unique codes with the **Automated flows & Popups** placement. Each code stops working a set number of minutes, hours or days after the customer receives it in a popup or SMS. The default is 24 hours. See [Expiring Discount Codes](/discounts/expiring-discount-codes.md)

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2Fh0z0Gk51uuFN6mBl5MIb%2Fdisc-scheduling-options.png?alt=media" alt="The Scheduling section with Fixed date and time selected and the option to make the discount expire after a certain time"><figcaption></figcaption></figure>

**Conditions**

* **Minimum purchase requirements** — none, a minimum purchase amount, or a minimum quantity of items
* **Maximum discount uses (optional)** — limit how many times the discount can be used in total, limit it to one use per customer, or both
* **Combinations (optional)** — choose whether it can be combined with product, order or shipping discounts. By default it doesn't combine with any other discount
* **Eligibility** — all customers, specific customer segments, or specific customers

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FwQwqQc1uRjwCZMJJsiNl%2Fdisc-conditions.png?alt=media" alt="The Conditions section showing minimum purchase, maximum uses, combinations and eligibility options at their defaults"><figcaption></figcaption></figure>

{% hint style="info" %}
When you tick a combination, Recart explains how it applies at checkout, for example "Each eligible item in the cart may receive up to one product discount". Test your combinations before going live to avoid unexpected reductions.
{% endhint %}

#### Step 4: Click Create discount

Recart creates the discount in your Shopify store and adds it to your Discounts list.

### The Discounts list

The [Discounts](https://app.recart.com/discounts) page lists every discount with its **Status**, **Customization** (General or Unique), **Available codes**, **Activation** and **Expiration** dates. Search by name or prefix, or filter by customization and status.

| Status        | What it means                   |
| ------------- | ------------------------------- |
| **Active**    | The discount can be used        |
| **Scheduled** | The start date is in the future |
| **Expired**   | The end date has passed         |

Expiring codes show **On demand** as the activation date and their duration as the expiration, for example **In 24 hours**.

### Edit a discount

Open a discount from the Discounts list, make your changes and click **Update**. If the discount is used in a flow or opt-in tool, Recart asks you to confirm first.

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FuCX470XbAHGOc6Fws92V%2Fdisc-edit-page.png?alt=media" alt="The edit page of an active discount for selected collections, showing the purchase type, the selected collection and a summary panel"><figcaption></figcaption></figure>

| You can change                        | Fixed after creation                                          |
| ------------------------------------- | ------------------------------------------------------------- |
| Discount name                         | Discount code customization (General or Unique)               |
| Discount value and what it applies to | Placement                                                     |
| Purchase type                         | The code itself (general codes)                               |
| Minimum purchase requirements         | Discount code prefix (unique codes)                           |
| Maximum discount uses                 | Scheduling mode (fixed dates or expires after a certain time) |
| Combinations                          |                                                               |
| Eligibility                           |                                                               |
| Active dates, or the expiry duration  |                                                               |

### Manage a discount

The summary panel on a discount's page shows its **Performance** (how many codes were sent and used), **Where it's used** (the flows and opt-in tools using it) and a **Code on Shopify** link to the discount in your Shopify admin.

From the **⋯** menu you can:

* **Deactivate** — stop the discount from being used without deleting it. Not available for expiring codes. If the discount is in use, Recart shows how many flows and opt-in tools use it before you confirm
* **Duplicate** — copy it as the starting point for a new offer. This keeps the old and new offers' performance separate
* **Delete** — permanently remove it from both Shopify and Recart, including its Shopify statistics. For an expiring code, codes already sent keep working, but no new codes are created

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FDNtT8T8EVM24aZreOyoF%2Fdisc-menu.png?alt=media" alt="The edit page of an active discount with the more-actions menu open, showing Deactivate, Duplicate and Delete"><figcaption></figcaption></figure>

{% hint style="warning" %}
You can't delete a discount while it's used in an opt-in tool, an automated flow, or a campaign that hasn't been sent or cancelled yet. Remove it from those first.
{% endhint %}

### Add a discount code to a message

In the flow or campaign editor, click the **%** (Add discount code) icon in the message toolbar. The **Discount code** panel lists your active and scheduled discounts that work in that message. Select one to insert it.

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FKcJpaYpOjwfZYCUzdF3z%2Fdisc-panel-empty.png?alt=media" alt="The SMS message editor next to the Discount code panel, which shows an empty state with Create new discount and Import Shopify discount"><figcaption></figcaption></figure>

If you don't have the right discount yet, click **+ Create new discount**. Recart saves your flow, takes you to the Discounts page to create it, then brings you back.

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FqmfqviNIFoLp4bmgjd6U%2Fdisc-leave-editor.png?alt=media" alt="A warning that you are leaving the flow editor to create a new discount, with Back to editor and Save and create discount buttons"><figcaption></figcaption></figure>

* A message can contain one unique code. You can add general codes alongside it
* To apply the discount automatically when a subscriber clicks your link, use **Connect link to discount (optional)** in the link settings
* In a Welcome Flow, Recart asks whether to send the same unique code the popup showed or a new one. See [Unique Discount Codes](/discounts/unique-discount-codes.md)

### Import an existing Shopify discount

If a discount already exists in Shopify, import it so you can use it in Recart.

1. On the **Discounts** page, click **Create new**, then **Import from Shopify**. You can also import from the Discount code panel in a message
2. Enter the **Discount ID or code**. The code is usually quickest: for a discount called `15OFF`, type `15OFF`. The ID is the 13-digit number at the end of the discount's URL in your Shopify admin
3. Check the summary on the right, choose whether the discount is **General** or **Unique** and, for unique codes, its placement
4. Click **Import**. The discount appears in your Discounts list and stays synced with Shopify

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2FKI06iA9q0YovcfnQEjgj%2Fdisc-import.png?alt=media" alt="The Import existing Shopify discount page with a field for the discount ID or code"><figcaption></figcaption></figure>

<figure><img src="https://2167119381-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2I45aTZ733MBi8Vps3Ib%2Fuploads%2F8PMOY5aDAYpX8i4Df8Jk%2Fdisc-import-help.png?alt=media" alt="A help window explaining where to find a discount code or ID in Shopify Admin, with an example of the discount URL"><figcaption></figcaption></figure>

Some discounts can't be imported:

* Discounts limited to Shopify customer segments or specific customers. Set the eligibility to all customers in Shopify, then import
* Automatic discounts, because they apply without a code
* Discounts that are already imported, or that already have generated codes
* Discount types Recart doesn't support

### Syncing with Shopify

* Every discount you create in Recart is created in your Shopify store automatically
* Changes you make in Shopify sync back to Recart
* Discounts that already exist in Shopify only appear in Recart once you import them

### Limitations

* **The customization, placement and scheduling mode are fixed** once the discount is created. To change them, create or duplicate a new discount
* **The prefix and general code can't be changed** after creation
* **Campaign pools must cover your audience.** If a campaign's pool doesn't have enough codes, Recart asks you to extend the pool size or choose another discount before you can send

### Best practices

* **Match the placement to the job.** Use Automated flows & Popups for anything ongoing, and Campaign flows for a one-off send
* **Size campaign pools generously**, about 20% above your target audience
* **Use descriptive names and prefixes**, like `WELCOME10` or `WINBACK15`, so codes are easy to recognise in reports
* **Duplicate rather than edit** when you change a live offer, so the old and new offers keep separate performance data
* **Set an end date or expiry** to create urgency and stop old codes being used months later

If you have any questions, do not hesitate to [contact the Recart Support team.](/contact-recart-support.md) We'd be happy to help!


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.recart.com/discounts/create-discount-codes-in-recart.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
