## Coupons in Fabric Offers

With the Coupons feature in fabric Offers, you can create targeted discounts, incentives, and pricing rules tailored to specific products, categories, collections, product attributes, and customer segments. You can also configure coupon conditions, set exclusions, and define how multiple coupons interact through stacking rules. The key elements of a coupon include:

| **Elements**          | **Description**                                                                                                                                                       |
|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Eligible products     | The SKUs, categories, and collections that qualify for the coupon.                                                                                                   |
| Conditions            | Criteria that define the requirements to activate the coupon, such as a minimum purchase quantity or specific product features.                                        |
| Discount type         | Formats of the discount, including percentage reductions, fixed amount discounts, or free shipping.                                                                   |
| Coupon stacking       | Rules determining how coupons combine, whether by allowing multiple discounts or making them exclusive.                                                                |
| Dynamic discounting    | Controls the way discounts are applied when multiple coupons are eligible, preventing over-discounting by limiting how discounts stack.                               |
| Coupon messaging      | Customizable coupon messages visible on product pages, in the customer’s cart, or at checkout, tailored for specific customer segments.                                |

To redeem a coupon the customer must enter a coupon code. If the items in their cart meet the criteria you specify, the discount will apply. Unlike [Promotions](https://developer.fabric.inc/v3/offers/user-guides/offers/promotions/overview), customers need to provide a code to receive the discount.

## Types of Coupons

fabric supports three types of coupons:

- **SKU Coupon**: A discount targeting specific SKUs, where individual products are selected for eligibility, and a discount type is assigned. This coupon type is ideal for sales on specific products, clearing inventory, or spotlighting new arrivals.
- **SKU Quantity Coupon**: A discount applied when a customer buys a specific quantity of a particular SKU. This coupon is often used to clear inventory or promote high-margin products. For example, a _Buy 3, get 15% off_ coupon to encourage customers to purchase in bulk and increase average order value.
- **Buy X Get Y Coupon**: A free or discounted product, Y, is offered when customers purchase a designated product or quantity of X. This coupon is ideal for bundling complementary products, driving larger transactions, and increasing cart size.

## Coupon Setup

Setting up a coupon includes configuring key elements such as price lists, coupon codes, product eligibility conditions, discount types, exclusions, and how multiple coupons interact, as described in the following workflow:

1. Create a [coupon code](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#coupon-code). When customers enter the coupon code during checkout, the discount will apply if the code is eligible.
2. Choose a [price list](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#price-lists) to establish the baseline pricing, ensuring that discounts apply correctly depending on whether items are full-price or already discounted.
3. Set the [conditions](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#product-eligibility-definitions-for-coupons) that determine which products qualify for the promotion.
4. Set the [coupon limit](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#coupon-limit) that determines how many times a shopper can redeem the coupon.
5. Apply [exclusions](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#product-exclusions-from-coupons) to refine the promotion by targeting specific products or excluding certain items from the offer.
6. Specify the type of [discount](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#defining-discounts-and-how-they-re-applied) the customer receives.
7. Set up [stacking](https://developer.fabric.inc/v3/offers/user-guides/offers/coupons/overview#stacking-and-additional-settings) to apply multiple promotions simultaneously.
8. Configure [promotion messaging](https://developer.fabric.inc/v3/offers/user-guides/offers/promotions/overview#promotion-messaging) to determine where details appear for customers.

### Coupon code

Coupons can be configured as the following:

- **Multiple-use coupons**: Allow you to set a usage limit.
- **Single-use coupons**: Restricted to one-time use per customer.

To create more than single-use coupons, the **Total coupon count** field is used. For example, if you set **Prefix** to `SALE`, **Starting number** to `1`, and **Total coupon count** to `3`, the following coupon codes are generated: `SALE1`, `SALE2`, and `SALE3`.

### Price lists

Price lists determine how discounts are applied to products. The following table outlines the different types of price lists and how they determine the application of discounts during a coupon:

| **Price list**            | **Description**                                                                                       |
|---------------------------|-------------------------------------------------------------------------------------------------------|
| Only base price           | The discount applies only if the item isn’t already on sale.                                         |
| Only sale price           | The discount applies only if the item is on sale.                                                   |
| Both sale & base price    | The discount applies regardless of whether the item is at base price or already on sale.            |

### Product eligibility definitions for coupons

The **Customer buys** section allows you to define conditions that specify which products are eligible for the coupon. The following table describes the options to define product eligibility based on the price list or lists you selected:

| **Condition**  | **Description**  |
|-----------------|------------------|
| All SKUs       | The coupon applies to all products. | 
| SKUs          | The coupon applies to specific products you select. |
| Categories     | The coupon applies to one or more categories of products that you select. |
| Collections    | The coupon applies to one or more collections of products that you select. |
| Attributes     | The coupon applies to products based on specific attributes, such as color, size, or brand. |

### Coupon limit

Defining the initial group of products—based on SKUs, categories, collections, or product attributes—is the first step in configuring a coupon. Usage limits can be established to manage coupon availability and overuse prevention when creating **Multiple-use** coupons. The following are limits that can be set:

- **Limit use per customer**: Specifies how many times a single customer can redeem the coupon.
- **Limit use per site**: Specifies the total number of redemptions allowed across your retail site.

### Product exclusions from coupons

After setting your coupon usage limit, you can refine your coupon by excluding specific products. The **Exclude** field allows you to remove certain items from the coupon, even if they meet the initial coupon criteria. You can exclude products in the following ways:

| **Exclusion List**        | **Description**        |
|---------------------------|-----------------------|
| SKUs                      | Specify the SKUs of individual products to exclude from the coupon. |
| Category                  | Specify the categories to exclude from the coupon. |
| Collection                | Specify the collections to exclude from the coupon. |
| Attributes                | Specify the products by their attributes to exclude from the coupon. |

### Defining discounts and how they’re applied

Different types of discounts can be applied to various aspects of a coupon. Here’s an overview of the most common discount applications:

| **Discount on**     | **Description**      |
|----------------------|---------------------|
| SKU                  | The discount applies to the specific SKU or SKUs you specify. |
| Shipping             | The discount applies to shipping. |
| Cart                 | The discount applies to the total value of the customer’s cart. |

### Shipping discounts

Shipping discounts can be applied with one of the following options:

- Entire cart: Each item in a cart must qualify for the coupon to apply.
- Entire shipment: Only the items that share the same ship-to locations qualify for the coupon.

### Dynamic discounting

Dynamic discounting allows coupons to have variable discount amounts, preventing over-discounting when multiple coupons stack. By enabling dynamic discounting, you can set limits on the discount percentage or amount applied, ensuring that the total discount remains controlled even when coupons overlap.

## Stacking and Additional Settings

Coupon stacking refers to combining multiple coupons or discounts on the same cart. When coupon stacking is enabled, a customer can apply more than one discount to their cart, increasing the overall savings. Coupon stacking is controlled by assigning a priority to each coupon. Coupons with a lower priority number are applied first, and subsequent coupons are stacked on top, applying their discounts to the already-discounted price.

### Coupon messaging

Coupon messaging allows you to create custom messages to customers on the Product Detail Page (PDP), Product List Page (PLP), in the customer’s cart, and on the checkout page, or any combination of these. Additionally, you can target specific customer groups by choosing the locale, ensuring the message is displayed in the appropriate language or region.
