> For the complete documentation index, see [llms.txt](https://docs.intelligems.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intelligems.io/merchandising-experiences/offer-modifications/how-to-set-up-a-volume-discount-experience.md).

# How to Set Up a Volume Discount Experience

A Volume Discount Experience rewards a bigger cart with a bigger discount. You set tiers, and each tier can carry a percentage off, a fixed amount off, free shipping, a free gift, or a discount and a perk together. Shoppers get the reward automatically when their cart qualifies, so a tier is worth chasing without a code to enter.

You build the offer once, then decide how it runs. Run it as a **Test** and Intelligems holds back a control group and reports what the tiers did to units per order and profit per visitor. Run it as a **Personalization** and the tiers stay on for the audience you target.

{% hint style="warning" %}
This offer changes the totals in the cart and at checkout. It does not change the prices shown on your product or collection pages. To show tier pricing before the cart, add the Quantity Buttons component.
{% endhint %}

### **Where to start**

### 1. Create the experience

On the left navigation, click **Merchandising**, then **New Merchandising Experience**. Pick the **Volume Discount** card, then choose whether to run a Test or create a Personalization.

{% hint style="info" %}
The builder is labelled **Quantity Discount** once you're inside it. Same offer type.
{% endhint %}

### **2. Set up the offer**

These fields are the same in both modes, and they apply to every tier.

* **Discount trigger:** **Quantity of items** counts units in the cart, **Subtotal of items** counts dollars. Quantity is the one that moves units per order. Subtotal is the one that moves AOV on a mixed catalog.
* **Discount value:** **Percentage off**, **Fixed amount off per order**, or **Fixed amount off per item**. Your choice applies to every tier, so you enter one number per tier rather than mixing discount types.
* **Applies to:** all products by default. Narrow it if the discount should only cover part of your catalog, and only the products you select count toward the tier thresholds.
* **Item mix:** off by default, so shoppers can mix and match eligible products to reach a tier. Check **Require same-item purchases for discount to apply** if they have to buy multiples of the *same* product. That's how you build a product-specific volume discount.
* **Combinations:** **Shopify discounts** and **Intelligems discounts** are both checked by default, so the offer stacks. Clear a box to stop it stacking with that kind of discount. Combining with a Shopify discount also depends on the Shopify side, so that discount has to be set to combine in your Shopify admin or it won't stack no matter what you check here.
* **Purchase type:** one-time purchases only by default. You can switch to subscription purchases only, or to both. On a subscription option the discount applies to the first order and not to refills.

{% hint style="warning" %}
**Selling in more than one currency?** Use **Percentage off**. A fixed amount is applied as a raw number and won't convert through Shopify Markets, so a $15 tier reward reaches a shopper browsing in another currency as 15 of their currency. A percentage scales correctly whatever the shopper is seeing.
{% endhint %}

### **3. Build your tiers**

The builder opens with two tiers and you can add up to seven with **Add tier**. Each tier takes:

* **Item quantity** or **Subtotal**, depending on your trigger. This is the threshold the cart has to reach.
* The percentage or amount off at that tier.
* **Discount name (shown in cart/checkout)**. This is the line the shopper reads as the reason they're paying less, so name it after the tier, like `Buy 4, save 20%`.
* **Free shipping** and **Free gift**, either or both, on top of the discount.

{% hint style="warning" %}
**Only the highest tier a shopper qualifies for applies.** Tiers don't stack. If tier 1 is 20% off at $100 and tier 2 is a free gift at $500, a shopper spending $600 gets the gift and not the 20%. To give them both, put both rewards on tier 2.
{% endhint %}

{% hint style="warning" %}
**Tier thresholds read the subtotal before discounts are applied.** A $598 product with a 20% off discount running alongside it will trip a $500 tier, even though the shopper pays $478.40. If a tier has to trigger on what the shopper actually pays, raise the threshold to cover the discount: $500 ÷ (1 − 0.20) = $625. That only holds for one known discount rate, so a cart carrying several discounts can still reach the tier early.
{% endhint %}

#### **Free shipping on a tier**

Check **Free shipping** on a tier and it applies to that tier and every tier above it. You configure it once, on the lowest tier that includes it, and the tiers above inherit that configuration. Free shipping on a middle tier alone isn't possible.

Once you check the box you'll set:

* **Powered by Intelligems** or **Powered by Shopify**. Intelligems discounts the shipping itself. Choose Shopify if free shipping is already configured there and you only want Intelligems to power the messaging and the progress bar.
* **Limit ship-to countries**, if free shipping shouldn't reach everywhere. Shoppers choose their country at checkout, so they'll see the progress bar and the cart messaging until then, and the discount may drop off once they pick an excluded country.
* **Choose eligible rates**. **All rates** discounts every rate that qualifies. **Limit to rates under amount** keeps you from giving away shipping on large, expensive items. **Limit to rates by name** excludes specific rates, and you can stack conditions with **Add condition**.

{% hint style="info" %}
**Choose eligible rates** opens on **Limit to rates by name** with an empty field, and **Next** stays disabled until you fill it in or switch to **All rates**.
{% endhint %}

#### **Free gift on a tier**

**Free gift** works per tier. Checking it on one tier leaves the others alone, so you can put a gift on your top tier only.

Pick one product with **Browse**, and one variant if the product has several. **Auto add GWP to cart** drops the gift into the cart the moment the tier is reached, which is worth turning on because a gift the shopper has to add themselves often doesn't get added. It becomes available once you've chosen a single variant.

{% hint style="info" %}
One gift per tier. To let shoppers choose which variant of the gift they get, add the **Cart GWP picker** component.
{% endhint %}

### **4. Add components**

Components are how shoppers find out the tiers exist, which on this offer type is most of the work. Volume Discount supports four:

* **Quantity Buttons** put the tiers on the product page, so shoppers see the 5-pack saving before they reach the cart.
* **Progress Bar** shows how close the cart is to the next tier, which is what turns a threshold into one more item added.
* **Offer message** carries the promotion on your homepage.
* **Cart GWP picker** lets shoppers choose their gift variant on a tier that includes one.

You add components here in the builder and style them in Global Styles. Quantity Buttons and the Progress Bar need a snippet in your theme the first time you use them.

{% hint style="info" %}
There's no component that shows tier pricing on collection cards, and none that adds tiers to a subscription widget you already have. If either is central to your test, plan on building that front end yourself.
{% endhint %}

### **5. Free shipping as its own offer**

A free shipping threshold can also run on its own, without a discount attached, and that version lives under **Shipping** rather than Merchandising. Use a Volume Discount tier when free shipping is a perk layered on a discount. Use a Free Shipping Experience when the threshold is the whole offer.

### **6. Set targeting (optional)**

For a Test, a visitor's group is assigned on their first visit and stored via a first-party cookie, so they'll see the same variant on repeat visits during the test.

For a Personalization, everyone who matches your targeting sees it every time.

Either way, you can narrow who's included in several ways, all under the Audience option unless noted:

* UTM parameters
* JavaScript expressions
* Device type (mobile or desktop)
* New vs. returning visitors
* [Mutually Exclusive Tests](/general-features/targeting/mutually-exclusive-experiments.md) prevent visitors from being targeted by related experiments at the same time, to avoid interaction effects

{% hint style="warning" %}
If you built your test groups by duplicating existing Personalizations, any targeting set on those Personalizations is ignored. The test's own audience, currency, and page targeting is used in its place.
{% endhint %}

### **7. Configure analytics**

Choose whether analytics should default to only orders containing specific products (helpful if your offer targets a particular PDP), or orders containing any products in your shop. You can always change this later in your Analytics filters.

What you configure next depends on which path you chose in step 2:

* Personalization? Add any [Custom Metrics](/analytics/overview/custom-events.md) you want to track, beyond the built-in ones.
* Test? Choose your Key Metrics and Primary Metric to measure against your control group, plus any [Custom Metrics](/analytics/overview/custom-events.md).

### **8. Preview and activate**

Preview your changes on the live site, then activate. The [Merchandising Experience QA Checklist](/merchandising-experiences/offer-test-qa-checklist.md) covers what to check in the cart and at checkout before a shopper sees it.

{% hint style="info" %}
Testing tier structures against each other is what this type is for. Keep the trigger and the discount value the same across groups and vary the thresholds, so the result tells you where the threshold belongs. The more groups you have, the longer it will take to get statistically significant results. You'll need about 300 orders for each group in the test to detect a 10% change in conversion with 90% confidence.
{% endhint %}

### **Before you start**

Your tiers won't apply to real carts until you start the test or activate the Personalization. Intelligems creates the Shopify Discount Function when you build the offer and it stays dormant until then, so an unstarted offer showing no discount in cart is expected.

{% embed url="<https://www.loom.com/share/16220a85e4b04eddb1c334b3f7713055>" %}


---

# 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.intelligems.io/merchandising-experiences/offer-modifications/how-to-set-up-a-volume-discount-experience.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.
