> For the complete documentation index, see [llms.txt](https://docs-shpf.bsscommerce.com/b2b-wholesale-solution/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-shpf.bsscommerce.com/b2b-wholesale-solution/b2b-pricing/volume-pricing/set-tiered-pricing-by-purchase-volume.md).

# Set Tiered Pricing by Purchase Volume

This guide walks you through creating a Volume Pricing rule — from turning on the module to defining tiers and publishing the rule on your storefront.

Want to reward your bulk buyers and boost average order value? With our **Volume Pricing** feature, you can easily configure **tiered discounts** that automatically adjust pricing as customers add more to their cart — based on either **quantity purchased** or **total spend**.

## 🛠️ How to Configure Volume Pricing

### Open Volume Pricing and Add a Rule

1. Go to **B2B pricing › Volume Pricing** in the app sidebar.
2. Make sure the **module on/off switch** next to the title is **On**. Rules only apply on your storefront while the module is on.
3. Click **Add rule** above the rule list. If you have no rules yet, click **Add volume pricing rule** instead.

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-409206fb474581610c59aa38ab2d2eedfd3cb0f8%2Fcms-qb-rule-01.png?alt=media" alt="Volume Pricing rule list with Add rule and Quick create"><figcaption><p>Volume Pricing rule list with Add rule and Quick create</p></figcaption></figure>

The rule opens as **one page of cards**, from top to bottom: **Rule**, **Customers**, **Products**, **Markets**, **Volume pricing settings**, **Quantity-based settings**, **Exclusions and schedule (optional)** and **Advanced** (the last two are collapsed until you open them). A **Make Volume Pricing live** card (the Publish step) sits in the right sidebar. Use the **Save** bar at the top to save the rule.

### Rule

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-6e769212b81da6c0f66fb9f04de58ab184461850%2Fcms-qb-rule-02.png?alt=media" alt="Rule section"><figcaption><p>Rule section</p></figcaption></figure>

| Field      | Options          | What it does                                                                                                                                           |
| ---------- | ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Name**   | Any text         | Names the rule in the rule list. Leave it empty and the app writes a name from the customers you pick, for example "Volume pricing for tag wholesale". |
| **Status** | Enable / Disable | Only enabled rules take effect on the storefront. You can also flip the switch in the **Status** column of the rule list.                              |

### Customers

Choose who gets the tiers (**Apply to customers**).

| Option                                          | What it does                                                                                                                                                     |
| ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **All (logged-in and not-logged-in customers)** | Applies to everyone.                                                                                                                                             |
| **Logged-in customers**                         | Applies only to customers who are logged in.                                                                                                                     |
| **Not-logged-in customers**                     | Applies only to guests.                                                                                                                                          |
| **Specific customers**                          | Search and pick individual customers.                                                                                                                            |
| **Customer tags**                               | Enter tags such as `wholesale`, `vip` or `reseller`.                                                                                                             |
| **Company locations**                           | Pick Shopify B2B company locations (branches). Selecting a whole company covers its current locations only; locations added later are not covered automatically. |

{% hint style="warning" %}
**Company Location rules only reach buyers who have B2B access.** If your store uses **legacy (classic) customer accounts**, a company contact only gets Company Location pricing after you send them B2B access: in Shopify admin, open **Customers** → the customer's profile → click **Send B2B access email**. Customers who have not been sent this email are not matched by Company Location targeting.
{% endhint %}

### Products

Choose which products the tiers count and apply to (**Apply to products**).

| Option                  | What it does              |
| ----------------------- | ------------------------- |
| **All products**        | Every product.            |
| **Specific products**   | Pick individual products. |
| **Specific variants**   | Pick individual variants. |
| **Product collections** | Pick collections.         |
| **Product tags**        | Enter product tags.       |

> Products must be published to the **Online Store** sales channel.

### Markets

Keep **All markets**, or choose **Specific markets** to limit the rule to selected Shopify markets or currencies.

### Volume pricing settings and Quantity-based settings

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-7287c0b255fa0b7a842ec905f7aba1f7aae0e734%2Fcms-qb-rule-03.png?alt=media" alt="Volume pricing settings and Quantity-based settings cards"><figcaption><p>Volume pricing settings and Quantity-based settings cards</p></figcaption></figure>

The tiers are set in two cards.

**Volume pricing settings**

| Field                   | Options                                                                                                      | What it does                                                                                                                                                |
| ----------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Volume pricing type** | **Quantity-based pricing** / **Value-based pricing**                                                         | Quantity-based counts the number of items. Value-based counts the amount spent.                                                                             |
| **Apply to**            | **Entire order** / **All eligible products in the order** / **All eligible product's variants in the order** | Decides what is counted toward a tier. Text under the field explains it. With **Specific variants**, **All eligible products in the order** is not offered. |

**Apply to** works like this:

| Option                                           | How it works                                                                                                    |
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------------------- |
| **Entire order**                                 | The quantity (or value) of every cart item the rule covers is added up, and each of those items gets that tier. |
| **All eligible products in the order**           | Each product is counted on its own, adding up its variants.                                                     |
| **All eligible product's variants in the order** | Each variant is counted on its own.                                                                             |

Use **Show example** / **Hide example** to see a worked calculation. More detail is in the **Real-World Example** below.

**Quantity-based settings** (or **Value-based settings**)

| Field                               | Options                                                                                                                                                                                                                                                                                                                | What it does                                                                                                                                               |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Table style**                     | **Full range & discounts**, **Full range & discounted prices**, **From & discounts**, **From & discounted prices 1**, **From & discounted prices 2**, **From & discounts with discounted prices 1**, **From & discounts with discounted prices 2**, **Legacy 1**, **Legacy 2**, **From & discounted prices and total** | The layout of the table customers see. **From & discounted prices and total** is not available with value-based pricing.                                   |
| **Quantity from** / **Quantity to** | Whole numbers                                                                                                                                                                                                                                                                                                          | The range of each tier. Leave **Quantity to** empty for no upper limit (**Infinity**). Value-based pricing uses **Amount from** and **Amount to** instead. |
| **Discount type**                   | **Fixed price**, **Fixed-amount decrease**, **Percentage decrease (%)**                                                                                                                                                                                                                                                | How the price changes at this tier.                                                                                                                        |
| **Discount value**                  | Number of 0 or more                                                                                                                                                                                                                                                                                                    | The price, amount or percentage. A percentage can't go above 100.                                                                                          |

Click **Add range** to add another tier (for example 5–20 units = 10% off; 21–50 units = 20% off). The ranges must not overlap.

<table><thead><tr><th width="235.6953125">Discount Type</th><th>Description</th></tr></thead><tbody><tr><td><strong>Fixed price</strong></td><td>Sets a specific price per item at this tier<br><sub>For example, you have 2 products priced at $10 and $12 in the rule. If you choose Fixed price and the Discount value is $8, both products will be $8 when the quantity/amount meets the criteria.</sub></td></tr><tr><td><strong>Fixed-amount decrease</strong></td><td>Subtracts a fixed dollar amount from the price<br><sub>For example: Discount value is $2, then your products will be discounted from $10 to $8.</sub></td></tr><tr><td><strong>Percentage decrease (%)</strong></td><td>Reduces price by a percentage<br><sub>For example: Discount value is 20%, then your products will be discounted from $5 to $4.</sub></td></tr></tbody></table>

{% hint style="info" %}
The price is adjusted based on the customer's market. To change the colors, borders and position of the table, open **Settings** in the Volume Pricing header. See [Settings for Volume Pricing](/b2b-wholesale-solution/b2b-pricing/volume-pricing/settings-for-volume-pricing.md).
{% endhint %}

### Exclusions and schedule (optional)

This card is collapsed by default (click **Show**). It opens by itself if the rule already has exclusions.

| Field                 | Options                                                                                           | What it does                                                                                                                |
| --------------------- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| **Exclude customers** | **None**, **Specific customers**, **Customer tags**, **Company locations**                        | Customers who should **not** receive this pricing, even if they match the conditions above.                                 |
| **Exclude products**  | **None**, **Specific products**, **Specific variants**, **Product collections**, **Product tags** | Products to leave out of this rule, for example limited editions, services or gift cards.                                   |
| **Schedule**          | **Start date**, **Start time**, **Set end date** → **End date**, **End time**                     | Runs the pricing for a limited time. Time is based on your browser's time zone. The start date must be before the end date. |

{% hint style="info" %}
Products and collections must be published to the Online Store to be able to apply the rule.
{% endhint %}

### Advanced

Open the **Advanced** card to set **Priority (0 = highest)**, a number from 0 to 99. When several rules match the same customer and product, the rule with the lowest number applies. If the numbers are equal, the oldest rule applies. This card is collapsed by default (click **Show**) and opens by itself when the rule's priority is above 0.

### Save and Make Volume Pricing Live

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-a67a0a79cabfb10c145cde8b647c624315f83340%2Fcms-qb-rule-04.png?alt=media" alt="Make Volume Pricing live card"><figcaption><p>Make Volume Pricing live card</p></figcaption></figure>

Click **Save** in the save bar. After you create a new rule, the page reopens with the **Make Volume Pricing live** card at the top of the page (for an existing rule it stays in the right sidebar). It shows a **Live** or **Not live yet** badge and three checks:

1. **Rule saved** — the rule is stored and ready to apply. Save the rule first; the checks update as soon as it is saved.
2. **Rule is enabled** — the rule's **Status** is **Enabled** and it is inside its dates. It shows **Rule is disabled** when the status is off.
3. **Volume Pricing module is on** — if it is off, click **Turn on module**.
4. **App embed is on in your theme** — if it is off, click **Open theme editor**, turn on the B2B Solution app embed and come back; the check updates automatically. Use **Check again** to refresh it.

Below the checks, **Volume pricing table in your theme** explains how to test the table: log in as a test customer the rule applies to, then open a product in the rule. If the table doesn't appear, ask support — theme setup is free.

If the rule doesn't show on your theme, open **Storefront setup** in the Volume Pricing header and choose **Automatic installation** or **Advanced installation** (manual). See [Settings for Volume Pricing](/b2b-wholesale-solution/b2b-pricing/volume-pricing/settings-for-volume-pricing.md#storefront-setup).

## ⚡ Quick Create Many Rules at Once

Use **Quick create** (next to **Add rule**) to create several rules from one screen.

1. Click **Quick create** to open **Quick create volume pricing rules**.
2. Under **Quantity breaks**, set the quantity where each break starts (**From quantity**). The discount starts at each quantity and runs until the next break. You can use up to 5 breaks — click **Add break** or **Remove break**.
3. Choose the **Adjustment type**: **Percentage decrease**, **Fixed amount decrease** or **Fixed price**.
4. Fill in one row per customer group: choose **Applies to** (**Customers with tag**, **Specific customers**, **All customers** or **Logged-in customers**), enter the **Customer tag** (or pick the customers for **Specific customers**), and enter a value for each break. The **Rule name** is written for you (**Auto-named**) unless you type your own.
5. Click **Add row** for more groups, or **Paste tags** to add many rows at once (one row per line: customer tag, then one value per break).
6. Create the rules. The page shows progress ("Creating x of y") and then "n rules created".

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-ab78333f21d8e06ecf093b82e660a3ec68d76d7d%2Fcms-qb-quick-01.png?alt=media" alt="Quick create volume pricing rules"><figcaption><p>Quick create volume pricing rules</p></figcaption></figure>

{% hint style="info" %}
Quick rules apply to all products and all markets. Open a rule afterwards to narrow it. Each row must have a different set of customers, and a tag that already has a rule is flagged.
{% endhint %}

## 📋 The Rule List

The rule list shows "Showing X of Y rules", a search/filter and sort controls, and the columns **Name**, **Applies to**, **Products**, **Status** and **Actions**.

* **Status** is a switch on each row. When a rule is switched on but not running right now, a badge appears next to the switch: **Scheduled** (future start date) or **Expired** (past end date).
* When the module is off, the title shows an **Off** badge, a **Why isn't this live yet?** link and the switch, plus the line "Volume Pricing is off. Your rules are saved but customers don't see them."
* A banner appears above the list when the module cannot run yet: **Volume Pricing is off. Your rules are saved but customers don't see them.** (with **Enable Volume Pricing**), or **App embed is off, so your rules aren't applied**. The badge next to the module name shows the same state: **On**, **Off** or **App embed off**.
* Row actions include **Edit**, **Duplicate**, **Quick edit** (name, priority, status and **Applies to** without opening the rule) and **Delete**. Select several rules to change their status in bulk with **Edit status**.

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-75f1657ac8158994b3cfb3b1243fd60c8a633132%2Fcms-qb-list-01.png?alt=media" alt="Rule list with status switches and badges"><figcaption><p>Rule list with status switches and badges</p></figcaption></figure>

## 🔍 Real-World Example

Imagine you have two products — A and B — and you create discount tiers:

* **5 to 20 units** → “10% off”
* **21 to 50 units** → “20% off”

If someone orders **45 units total**:

* **Order-level** rule → Entire order gets 20% off
* **Product-level** → Product A (35 units) gets 20%, Product B (10 units) gets 10%
* **Variant-level** → Discounts applied per variant (e.g. size/color), based on individual variant quantities

## 🛒 What Customers See on Storefront

* When shoppers meet a tier, the discounted price replaces the original automatically
* Quantities may “jump” to threshold numbers when clicked (e.g. clicking a tier label adjusts quantity accordingly)
* At checkout, the final tiered discount is applied
* When combined with **Custom Pricing / Price List**, the app prioritizes the Custom Pricing / Price List rules first

You can also click on the quantity range, and the quantity automatically jumps to the number.

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-0af83ce34ccf9209aeaac6ee812f91b848e68a60%2Fcms-qb-storefront-01.png?alt=media" alt="Volume pricing table on the product page"><figcaption><p>Volume pricing table on the product page</p></figcaption></figure>

{% hint style="info" %}
By default the quantity jumps to the **maximum** number of the row (in the example, clicking **10 - 49** sets the quantity to 49). To use the minimum instead (10), go to **B2B pricing › Volume Pricing › Settings › Behavior** and change **Row click** — see [Settings for Volume Pricing](/b2b-wholesale-solution/b2b-pricing/volume-pricing/settings-for-volume-pricing.md).
{% endhint %}

Here's the result on the Cart page:

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2FPXrTUZmIb2rXefmpL7zP%2Fimage.png?alt=media&amp;token=98c771f3-eb3a-469b-8767-60531d768e89" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you use Volume Pricing in conjunction with Custom Pricing or Price List, the app will apply the prices from the Custom Pricing/Price List rule first.
{% endhint %}

{% hint style="info" %}
If you need further assistance, please feel free to reach us at [**support@bss-b2b.solutions**](mailto:support@bss-b2b.solutions) or [**Live Chat**](https://go.crisp.chat/chat/embed/?website_id=9f64b5a9-1a02-4190-93b8-8ef56b19f740).
{% endhint %}
