> For the complete documentation index, see [llms.txt](https://docs.roadmap.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roadmap.so/discounts-and-gwp/using-gwp-and-discounts/create-a-product-discount.md).

# Create a product discount

Build automatic product-level discounts for buy-x-get-y, mix-and-match, bundles, and quantity tiers.

Use a product discount when only specific items should change price.

This is the right fit for bundle offers, mix-and-match offers, and product-led upsells.

### What a product discount changes

A product discount applies to eligible line items.

It does not discount the whole order.

Use it when the rule depends on:

* specific products or variants
* a product combination such as **Buy X Get Y off**
* quantity-based tiers on eligible items

### Choose the right condition

Use **Buy X Get Y off** when one product unlocks a discount on another.

Use **Buy A+B+C Get Y Off** when shoppers must add a specific mix.

Use **Bundle Discount** when a set of products should work as one offer.

### Before you start

Decide these four things first:

* which products should qualify
* whether the offer is for one-time purchases, subscriptions, or both
* whether the discount should stack with other Roadmap product discounts
* whether larger quantities should unlock stronger pricing

### Create the product discount

{% stepper %}
{% step %}

#### Open the discounts dashboard

Go to **Discounts / Gift with Purchase**.

Create a new discount and choose **Product Discount**.
{% endstep %}

{% step %}

#### Add the internal setup details

Enter a clear **Name**.

Set the **Status** to **Active** when you are ready to run it.
{% endstep %}

{% step %}

#### Choose the condition and product scope

Pick the condition type.

Then use **Applies to** and the product or variant picker to define the eligible range.
{% endstep %}

{% step %}

#### Set the purchase type

Choose the correct **Purchase Type**.

Use this to limit the offer to **One-time purchase**, **Subscription**, or the supported purchase types in your store.
{% endstep %}

{% step %}

#### Set the discount value

Add the **Discount Note** if you want customer-facing cart messaging.

Choose the discount type, then enter the value.
{% endstep %}

{% step %}

#### Add tiers if needed

Use **Add Discount Tier** when the discount should increase with quantity.

If your store shows **Tier application method**, choose how the tiers should behave.
{% endstep %}

{% step %}

#### Set usage and display options

Use **Max uses per order** to cap how many items can receive the discount.

Then review the optional display settings such as stacking, product-page pricing, and cart upsell messaging.
{% endstep %}

{% step %}

#### Set eligibility, dates, and save

Choose the correct **Customer Eligibility**.

Set the **Active Dates**, save the discount, then test with a fresh cart.
{% endstep %}
{% endstepper %}

### Flat vs cumulative tiers

Use **Flat** when the highest qualifying tier should apply to all eligible items.

Use **Cumulative** when each tier should apply progressively.

Example:

* **Flat** — buy 4, qualify for the 4+ tier, get that tier on all 4 items
* **Cumulative** — buy 4, get the lower tier on the first band and the higher tier only on the next band

{% hint style="info" %}
Use **Flat** for simple shopper-facing offers.

Use **Cumulative** when you want true stepped pricing.
{% endhint %}

### Optional settings that matter most

#### Max uses per order

Use this when only part of the cart should receive the offer.

Leave it blank only if unlimited use is intentional.

#### Allow stacking with other Roadmap Product Discounts

Turn this on only when the overlap is deliberate.

If two product discounts can target the same item, test the combination before launch.

#### Show discounted prices on product detail pages

Use this when you want the product page to preview the offer.

This setting needs theme-level support.

#### Show upsell message in the cart

Use this when the discount should encourage shoppers to add more items.

This setting also needs theme-level support.

### Use product discounts when

Choose a product discount when you want:

* only selected items discounted
* bundle or mix-and-match logic
* product-specific tiers instead of a whole-cart discount

If the whole basket should be discounted instead, use an order discount.

### Test before launch

Run these three tests:

1. a cart that should not qualify
2. a cart that should qualify once
3. a larger cart that should test the tier or usage limit

If eligibility uses tags, membership, or login status, test with a real customer account.

### Related guides

* [When to use Roadmap or Shopify for discounts](/discounts-and-gwp/using-gwp-and-discounts/when-to-use-roadmap-shopify-or-klaviyo-for-discounts.md)
* [Use tags for discount eligibility](/discounts-and-gwp/using-gwp-and-discounts/use-tags-for-discount-eligibility.md)
* [Run multiple discounts & GWPs](/discounts-and-gwp/using-gwp-and-discounts/run-multiple-discounts-and-gwps.md)
* [Discounts not applying correctly](/discounts-and-gwp/troubleshooting/discounts-not-applying-correctly.md)


---

# 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 dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.roadmap.so/discounts-and-gwp/using-gwp-and-discounts/create-a-product-discount.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
