---
title: "Coupons: create promo codes"
description: "Create and manage your store's promo codes, set their duration, cap how many times they can be used and launch sales in just a few clicks."
url: https://docs.vivlab.com/en/sections/coupons
---

# Coupons

The **Coupons** section gathers every promo code your customers can enter at checkout to get a discount. Come here whenever you launch a promotional event (sales, Black Friday, referral, seasonal offer…), when you want to adjust the duration of a code, limit its number of uses or disable a coupon that has expired.

Each row of the table shows the coupon **Name** (its code and how many times it has been used), the **Discount** applied (percentage or fixed amount), its **Conditions** (free shipping, selected products, minimum amount…), its **Expiration** date and its **Status**: **Active**, **Inactive** or **Expired** once the date has passed or the usage quota is reached. Click on a row to view the settings of a coupon.

The dashboard is shown in French, with English captions.

<DocsVideo
  video-id="walkthrough-coupons"
  src="https://docs.vivlab.com/videos/coupons/coupons.mp4"
  poster="/videos/coupons/poster.webp"
  captions="/videos/coupons"
  label="Tutorial: create an active coupon"
  locale="en"
  :duration="15.56"
/>

::: details Read the video steps

1. <VideoTimecode video-id="walkthrough-coupons" :seconds="0" label="Play at" /> — In Coupons, click “Create a discount coupon”.
2. <VideoTimecode video-id="walkthrough-coupons" :seconds="2.5" label="Play at" /> — The coupon is active and usable by default.
3. <VideoTimecode video-id="walkthrough-coupons" :seconds="3.9" label="Play at" /> — Click the code field, then enter MERCI15.
4. <VideoTimecode video-id="walkthrough-coupons" :seconds="6.45" label="Play at" /> — Scroll, click the amount, and enter €15.
5. <VideoTimecode video-id="walkthrough-coupons" :seconds="8.96" label="Play at" /> — Click “Save”.
6. <VideoTimecode video-id="walkthrough-coupons" :seconds="11.16" label="Play at" /> — The coupon is saved and active.
7. <VideoTimecode video-id="walkthrough-coupons" :seconds="12.36" label="Play at" /> — MERCI15 appears with a €15 discount and Active status.

:::

## Create a discount coupon

Click **Create a discount coupon** to open the creation form. You'll need to fill in the type of discount, the code the customer will type and possibly some usage rules.

::: warning Caution
Once a discount coupon is created, its settings can no longer be edited. You can only **disable** it (so it's refused at checkout) or **delete** it. So check the code, the discount value and the usage rules carefully before saving.
:::

::: tip Duplicate a coupon
To fix a coupon after creation, use the **Duplicate** action on its table row: the creation form opens pre-filled with its settings, and you only have to enter a new code before saving.
:::

## Coupon settings

Clicking on a coupon gives you access to all its settings. They are split into three blocks: **Information** (the status and the code), **Discount type** (what the discount covers, its nature and its value) and **Rules** (the usage conditions).

The choice between a **Fixed amount discount** (e.g. -€10) and a **Percentage discount** (e.g. -20%) changes how the discount is calculated:

|                                         | Fixed amount (e.g. -€10)                               | Percentage (e.g. -20%)                                  |
| --------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------- |
| Calculation                             | Takes a fixed sum off the eligible amount              | Takes a share of the eligible amount                    |
| When the eligible basket grows          | The discount stays the same                            | The discount grows proportionally                       |
| Capping the discount                    | Not needed, the amount is already fixed                | Possible with **Maximum discount**                      |
| With **Restrict to certain products**   | At most the price of one unit of each selected product | Calculated on one unit of each selected product         |
| With **Restrict to certain categories** | Taken once off the total of the category's products    | Calculated on every quantity of the category's products |

<DocsScreenshot name="coupons-percentage" alt="A 20% discount applied to products." :width="638" :height="365" />

### Settings in detail

Each field and option in the form, in the order they appear.

- **Coupon status**: toggles the coupon between **Active coupon** (usable at checkout) and **Disabled coupon** (refused), without having to delete it.
- **Coupon code**: the code the customer enters at checkout (e.g. `SALES2025`), made of letters, numbers and dashes only, with no space. The button next to the field suggests a random code.
- **Discount applies to**: what the discount covers, **Products only** (excluding shipping), **Shipping only** or **Products and shipping**. By default it applies to products.
- **Discount type**: **Fixed amount discount** or **Percentage discount**, then the value to enter in **Discount amount** or **Discount percentage**.
- **Maximum discount**: available for a percentage discount, caps the amount taken off (e.g. -20% but never more than €30 off). Protects your margin on large baskets.
- **Limit the number of uses**: makes the coupon unusable once the usage quota is reached.
- **Require a minimum order value**: the coupon only applies above a certain basket amount.
- **Add an expiration date**: the coupon stops being valid after the chosen date.
- **Restrict to certain products**: limits the discount to the selected [products](https://docs.vivlab.com/en/sections/products.md). Unavailable when the discount covers shipping only.
- **Restrict to certain categories**: limits the discount to products in the selected [categories](https://docs.vivlab.com/en/sections/collections.md). Unavailable when the discount covers shipping only.
- **Reserve for one member**: only the chosen [member](https://docs.vivlab.com/en/sections/members.md) can use the coupon, handy for a one-off gesture to a single customer.

::: tip Offer free shipping
For free shipping, create a **Percentage discount** of -100% with **Discount applies to** set to **Shipping only**: the discount then covers the shipping cost whatever its amount. A discount applied to shipping ignores product or category restrictions.
:::

::: info Products and categories: discounts are calculated differently
The scope you pick changes the discounted quantity, not just which items are covered:

- **Restrict to certain products**: the discount only applies to **one unit of each** selected product, even if the customer orders several. A -20% coupon on a product bought in two units therefore discounts a single unit.
- **Restrict to certain categories**: the discount applies to **every quantity** of the products belonging to the chosen categories.

To discount the full quantity of an item, group it into a category and restrict the coupon to that category rather than to the product.
:::

<DocsScreenshot name="coupons-rules" alt="A discount capped at €30, limited to 100 uses, for orders of at least €50." :width="638" :height="508" />

## Sell gift cards

You can use discount coupons to **sell gift cards** to your customers: create a **fixed-amount** coupon (e.g. €25, €50 or €100), with a **unique code**, a **single-use limit**, and hand the code over to the buyer after receiving payment.

A few points to keep in mind with this approach:

- **One card = one coupon**: each gift card corresponds to a unique code. To handle volume, generate several distinct coupons.
- **Not tied to a customer account**: the coupon isn't linked to an account; anyone with the code can use it.
- **No remaining balance**: the coupon is applied once; any leftover amount isn't kept for later use.

::: tip Readable code
For gift cards, prefer a clear, presentable code (e.g. `GIFT-2025-XYZ123`) the buyer can easily transcribe onto their own card or in the e-mail forwarded to the recipient.
:::
