> 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/custom-pricing/set-unique-prices-for-wholesale-customers.md).

# Set Unique Prices for Wholesale Customers

Assign exclusive wholesale pricing to specific customers or groups — without duplicating products or using coupon codes. Eligible customers see their personalized prices automatically when logged in.

You don’t have to create duplicates of your products just to offer wholesale rates. With the **Custom Pricing** module, you can assign **exclusive pricing** to wholesale customers—right on your original catalog. Customers who match a rule see their special price automatically on your storefront.

<div align="center"><figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2FUG8Pmg7peOnZYv2huos8%2Fimage.png?alt=media&amp;token=dac59ee1-61b3-495f-9a1d-7714e3bda0de" alt="" width="375"><figcaption><p>Wholesale price</p></figcaption></figure> <figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2FiyDxzfcO6g1yANDmAjlZ%2Fimage.png?alt=media&amp;token=896728fd-cf82-414a-87a4-44bdbae105ac" alt="" width="375"><figcaption><p>Retail price</p></figcaption></figure></div>

## Before You Start

* Go to **B2B pricing › Custom Pricing** and make sure the switch next to the **Custom Pricing** title is **On**, so your rules apply.

## How to Create a Custom Pricing Rule

The page **New custom pricing rule** is a single page of cards, from top to bottom: **Rule**, **Customers**, **Products**, **Markets**, **Price**, **Exclusions and schedule (optional)** and **Advanced**. The last two are collapsed: click **Show** to open them. A **Make Custom Pricing live** card in the right sidebar checks that your rule is live once it is saved. Click **Save** in the save bar when you are done.

### Open the Rule Page

1. In the Shopify admin, open the B2B Solution app and go to **B2B pricing › Custom Pricing**.
2. Click **Add rule** above the rule list. If you have no rules yet, the page shows **Give B2B customers their own prices**: click **Add price rule** instead (next to **Quick create** and **Import from CSV**).

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-0e915454c0aab719a7dc65277b2771541cedf9a4%2Fcms-cp-rule-01.png?alt=media" alt="Custom Pricing rule list"><figcaption><p>Custom Pricing rule list</p></figcaption></figure>

### Rule

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

| Field      | Options                                    | What it does                                                                                                                                                                                                              |
| ---------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Name**   | Up to 200 characters (counter shows 0/200) | Use a clear, descriptive name to find the rule later. Leave it empty and the name is written for you, for example `10% Percentage decrease for tag wholesale`. The name is generated once you choose customers and price. |
| **Status** | Enable / Disable                           | Disabled rules will not be applied to your storefront. Keep it on **Enable**                                                                                                                                              |

### Customers

Choose who gets this pricing.

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

| Field                  | Options                                                                                                                                                                      | What it does                                                                                 |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| **Apply to customers** | **All (logged-in and not-logged-in customers)** · **Logged-in customers** · **Not-logged-in customers** · **Specific customers** · **Customer tags** · **Company locations** | Picks the customers who see this price. Search and add customers, tags or company locations. |

{% hint style="warning" %}
**Company locations:** selecting a whole company covers only its **current** locations. Add locations created later yourself.

Company Location rules only reach buyers who have B2B access. If your store uses **legacy (classic) customer accounts**, a company contact gets Company Location pricing only after you send them B2B access: in Shopify admin, open **Customers** → the customer's profile → click **Send B2B access email**.
{% endhint %}

{% hint style="info" %}
**Limit prices to approved customers only:** choose **Customer tags** and add the tag your registration form sets in **Assign tag when customer is approved**. That tag is only added on approval, while **All** and **Logged-in customers** include anyone who creates an account.
{% endhint %}

### Products

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

| Field        | Options                                                                                                       | What it does                                    |
| ------------ | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
| **Products** | **All products** · **Specific products** · **Specific variants** · **Product collections** · **Product tags** | Chooses which products the custom price covers. |

### Markets

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

| Field       | Options                                | What it does                                  |
| ----------- | -------------------------------------- | --------------------------------------------- |
| **Markets** | **All markets** · **Specific markets** | Restricts the rule to chosen Shopify markets. |

### Price

Pick how the price changes, then enter the **Amount**. Custom Pricing supports price decreases and price increases.

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

| Option                        | What it does                                  | Example                                |
| ----------------------------- | --------------------------------------------- | -------------------------------------- |
| **Apply a decreasing price**  | Uses the **Amount** as the new price          | Change $50 or $65 products to $40 each |
| **Decrease a fixed amount**   | Subtracts a set amount from the current price | $50 – $10 = $40                        |
| **Decrease in percentage**    | Reduces the current price by a percentage     | 10% off: $50 → $45                     |
| **Apply an increasing price** | Sets a higher specific price                  | Set a $50 product to $60               |
| **Increase a fixed amount**   | Adds a set amount to the current price        | $50 + $10 = $60                        |
| **Increase in percentage**    | Raises the current price by a percentage      | 10% markup: $50 → $55                  |

{% hint style="info" %}
Amounts are in your store currency and are adjusted based on your Shopify Markets setting.
{% endhint %}

{% hint style="warning" %}

* With **Apply a decreasing price**, enter an amount **below** the product's current price. A higher amount leaves the price unchanged.
* Percentage and fixed-amount decreases are calculated from the product's current price in Shopify, **not** from the compare-at price.
* If a rule raises the price, customers see the new price without a crossed-out price. The editor shows a warning in that case.
  {% endhint %}

{% hint style="info" %}
If every product needs its own wholesale price, use [**Price List per Customer**](/b2b-wholesale-solution/b2b-pricing/price-list-per-customer/set-customized-pricing-per-product-per-customer.md) instead. A Custom Pricing rule applies one price change to every product it covers.
{% endhint %}

### Exclusions and Schedule (Optional)

Click **Show** on the **Exclusions and schedule (optional)** card.

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-00a4552faa07726f5a00378e1686fb1b3d31adbf%2Fcms-cp-rule-07.png?alt=media" alt="Exclusions and schedule"><figcaption><p>Exclusions and schedule</p></figcaption></figure>

| Field                       | Options                                                            | What it does                                                               |
| --------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------- |
| **Exclude customers**       | **Specific customers** · **Customer tags** · **Company locations** | Keeps these customers on standard prices.                                  |
| **Exclude products**        | Specific products, variants, collections or tags                   | Keeps these items at their standard price.                                 |
| **Start date / Start time** | Date and time                                                      | When the rule starts. Times are based on your browser's time zone.         |
| **Set end date**            | Checkbox, then **End date** and **End time**                       | Stops the rule automatically. The end applies only when the box is ticked. |

### Advanced (Optional)

Click **Show** on the **Advanced** card to set **Priority** (0 = highest, up to 99). When several rules match the same customer and product, the rule with the **lowest** number applies. If numbers are equal, the **oldest** rule applies.

### Save and Make the Rule Live

Click **Save**. After you save a new rule, the **Make Custom Pricing live** card moves to the top of the page and shows whether the rule is **Live** or **Not live yet**, with these checks:

| Check                                               | If it is not done                                                                                                   |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Rule saved**                                      | Save the rule first. The checks update as soon as it is saved.                                                      |
| **Rule is enabled** (**Rule is disabled** when off) | Set **Status** to **Enabled** and save. A scheduled rule waits for its start date; an expired rule needs new dates. |
| **Custom Pricing module is on**                     | Click **Turn on module**                                                                                            |
| **App embed is on in your theme**                   | Click **Open theme editor**, turn the B2B Solution app embed on, then click **Check again**                         |

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

{% hint style="success" %}
To check the price, log in to your storefront as a test customer the rule applies to, for example one with the rule's tag.
{% endhint %}

## Create Many Rules at Once with Quick Create

* Each row becomes **one rule**. Choose **Applies to** (**Customers with tag**, **Specific customers**, **All customers** or **Logged-in customers**), the **Adjustment type** (**Percentage decrease**, **Fixed amount decrease** or **Fixed price**) and a **Value**. For **Specific customers**, pick the customers in the row. The **Rule name** is written for you.
* Use **Add row** for more rows, or **Paste tags** to add many rows at once: one row per line, as `tag`, `tag, value` or `tag, value, type`.
* Start from a template with **Start from:** **Tiers by tag (5 / 10 / 15%)**, **Wholesale 10%** or **Logged-in 5%**.
* Quick rules apply to **all products** and **all markets**. Open a rule afterwards to narrow it.

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

## Manage Your Rules

The rule list shows **Name**, **Applies to**, **Discount**, **Status** and more. Use the search box to find a rule by name.

| Item           | What it does                                                                                                                                                                                                                                                                                                                                      |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Status switch  | Turns a single rule on or off.                                                                                                                                                                                                                                                                                                                    |
| Status badge   | Next to an enabled rule: **Scheduled** (start date is in the future) or **Expired** (end date has passed). A rule that is running shows no badge.                                                                                                                                                                                                 |
| **Edit**       | Opens the rule page.                                                                                                                                                                                                                                                                                                                              |
| **Duplicate**  | Creates a copy of the rule.                                                                                                                                                                                                                                                                                                                       |
| **Quick edit** | Changes **Rule name**, price adjustment and value, **Priority**, **Status** and **Applies to** (**Customers with tag**, **Specific customers**, **All customers** or **Logged-in customers**) without opening the rule. Guests, company locations and exclusions stay as they are. Select several rules to use **Edit price and status** in bulk. |
| **Delete**     | Removes the rule. This can’t be undone.                                                                                                                                                                                                                                                                                                           |

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

## How It Looks on the Storefront

* Non-eligible visitors see the standard retail price.
* When wholesale customers log in, product pages automatically reflect the adjusted pricing.
* Discounted prices appear throughout the shopping experience, maintaining transparency and trust.

<div align="left"><figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2FiyDxzfcO6g1yANDmAjlZ%2Fimage.png?alt=media&amp;token=896728fd-cf82-414a-87a4-44bdbae105ac" alt="" width="375"><figcaption><p>Not logged-in</p></figcaption></figure> <figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2FUG8Pmg7peOnZYv2huos8%2Fimage.png?alt=media&amp;token=dac59ee1-61b3-495f-9a1d-7714e3bda0de" alt="" width="375"><figcaption><p>Logged-in</p></figcaption></figure></div>

Learn how to change what customers see in [Display Custom Pricing](/b2b-wholesale-solution/b2b-pricing/custom-pricing/display-custom-pricing-how-prices-appear-to-customers.md).

## FAQ

**My rule is saved but prices do not change. Why?** Check that Custom Pricing is on, the app embed is on, the rule's **Status** is **Enable** and it is inside its schedule, and that you are logged in as a customer the rule applies to. If a price list applies to the same customer and product, the price list price is used instead.

**Two rules match the same customer and product. Which applies?** The rule with the lowest **Priority** number. If numbers are equal, the oldest rule applies.

{% 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 %}
