> 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/order-management/order-limits/set-minimum-or-maximum-order-quantity-amount-your-customers-can-buy.md).

# Set Minimum or Maximum Order Quantity/Amount Your Customers Can Buy

Create order limit rules to control how much customers can buy — enforcing wholesale minimums or protecting against oversized orders.

Order Limits enforces purchasing rules for your wholesale customers, such as a minimum total order amount or a maximum product quantity. Customers must meet your criteria before they check out (for example, only orders above $200 are allowed).

## Before You Start

* Go to **B2B orders & discounts › Order Limits** and make sure the switch next to the **Order Limits** title is **On**. When it is off, your rules are saved but customers do not see them.

{% hint style="warning" %}
**Turn on the app embed first.** Order Limits is enforced by the app's storefront script, which only loads when the **App embed** is enabled in your theme. With the embed off, your rules are saved but **nothing is enforced**. See [Enable or disable the app in your theme](/b2b-wholesale-solution/getting-started/enable-or-disable-the-app-in-your-theme.md).
{% endhint %}

## 🧭 How to Create an Order Limit Rule

1. Go to **B2B orders & discounts › Order Limits**.
2. Click **Add rule**. If you have no rules yet, click **Add order limit** instead (next to **Quick create**).

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-4ec464b9f9c7342a9ad0b7db946ce0c4b4aadeea%2Fcms-ol-list-01.png?alt=media" alt="Order Limits page with Add order limit"><figcaption><p>Order Limits page with Add order limit</p></figcaption></figure>

The page **New order limit rule** is a single page of cards, from top to bottom: **Rule**, **Customers**, **Products**, **Markets**, **Limits**, **Exclusions (optional)** and **Advanced**. The last two are collapsed: click **Show** to open them. The **Make Order Limits live** card in the sidebar checks that the rule is saved, the module is on and the app embed is on. Click **Save** in the save bar when you are done.

### Rule

| Field      | Options          | What it does                                                                                                   |
| ---------- | ---------------- | -------------------------------------------------------------------------------------------------------------- |
| **Name**   | Text             | Internal label for the rule. Left empty, it is written for you, for example a limit type, value and customers. |
| **Status** | Enable / Disable | Disabled rules are not applied.                                                                                |

### Customers

| Field         | Options                                                                                                      | What it does                                                                         |
| ------------- | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ |
| **Customers** | **All** · **Logged-in customers** · **Not-logged-in customers** · **Specific customers** · **Customer tags** | Who the limit applies to. Search and add customers or tags, for example `wholesale`. |

### Products

| Field        | Options                                                                                                       | What it does                           |
| ------------ | ------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
| **Products** | **All products** · **Specific products** · **Specific variants** · **Product collections** · **Product tags** | Which products count toward the limit. |

### Markets

| Field       | Options                                | What it does                                 |
| ----------- | -------------------------------------- | -------------------------------------------- |
| **Markets** | **All markets** · **Specific markets** | Enforce different limits per Shopify Market. |

{% hint style="info" %}
For a market-scoped rule, the app checks the **country the shopper is browsing from** against the regions of the markets you picked. A shopper outside those regions is not affected.
{% endhint %}

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-21e06269fb778a0db3e2012cf73ab298272a3686%2Fcms-ol-rule-01.png?alt=media" alt="Who and what the limit applies to"><figcaption><p>Who and what the limit applies to</p></figcaption></figure>

### Limits

| Field          | Options                                                                                               | What it does                                                                                       |
| -------------- | ----------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| **Limit type** | **Minimum order amount** · **Minimum order quantity** · **Max order amount** · **Max order quantity** | What is limited. Each rule has one limit type. For both a minimum and a maximum, create two rules. |
| **Limit**      | Whole number                                                                                          | The threshold. Amounts are in your store currency.                                                 |

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

### Exclusions (optional)

Click **Show** to open it. **Exclude customers** (**Specific customers** or **Customer tags**) and **Exclude products** exempt promotional items, free samples or digital downloads from the limit.

### Advanced

Click **Show** to set **Priority** (`0` is the highest). If two rules of the same limit type match, the lower number wins; on a tie, the strictest limit applies.

### Make Order Limits live

Click **Save**. The sidebar card lists what is still needed: the rule must be enabled (and inside its dates), and the module and the app embed must be on. Turn on the module and the app embed there if either is off.

## How It Works on the Storefront

Limits are checked when a shopper clicks a checkout button in the cart (cart page or cart drawer) and when they click **Buy it now** on a product page. If the order breaks a rule, a pop-up lists the problems and checkout stops. Shoppers can keep adding to cart freely.

* **Buy it now** only checks the product and quantity on that product page, not the rest of the cart.
* Amount limits are converted with the market's currency rate for shoppers in another market.

{% hint style="warning" %}
A shopper who opens your `/checkout` page directly, or uses an express payment button in the cart, skips the check.
{% endhint %}

## Quick Create

Click **Quick create** on the rule list. One row becomes one rule: pick the customers (**Customers with tag**, **Specific customers**, **All customers** or **Logged-in customers**), the limit type and the limit. The rule applies to all products and all markets; open the rule afterwards to narrow it.

## Quick edit

To change a rule's **Rule name**, **Priority** or **Status** without opening it, click **Quick edit** in the rule's row actions. Select several rules and choose **Edit status** to turn them on or off together.

## Settings

Open **Order Limits › Settings** (a button in the module header).

<figure><img src="https://1478990334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGolQYRPH9iUGYatlTXwl%2Fuploads%2Fgit-blob-161403319778f96f3560a9929a73cdaf435c89d9%2Fcms-ol-settings-01.png?alt=media" alt="Order Limits settings"><figcaption><p>Order Limits settings</p></figcaption></figure>

### Choose level to limit (module-wide)

This applies to every rule. Choose one:

| Level                                                   | How it works                                                                                                       |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Apply order limit to each product variant** (default) | The min/max value applies to each product variant chosen in the order.                                             |
| **Apply order limit to each product**                   | The value applies to each product chosen in the order (all its variants combined).                                 |
| **Apply order limit to all products in the order**      | The value applies to all matching products combined. You can tick **Show list of products in validation message**. |

### Messages shown on the product page

Choose **Yes** to show the limit message on product pages, then set the **Message position** (**Below quantity selector** or **Below the "Buy it now" selector**) and the **Message color**. Choose **No** for no message on the product page.

{% hint style="info" %}
This controls the on-page message, not enforcement. The blocking pop-up at checkout always appears when a cart breaks a rule.
{% endhint %}

### Notification pop-up modal design

Set **Header's background color**, **Header's text color**, **Content's background color** and **Content's text color**. Click **Save** in the save bar.

## Translations

Open **Order Limits › Translations**, pick the language and edit **Pop-up header**, **Pop-up content** and **Error messages on product page**. There are no placeholders: the storefront adds the limit value (and "product(s)" for quantity limits) after your text, so write each text as the start of a sentence.

## Export

Go to **B2B orders & discounts › Order Limits › More actions › Export** to download all rules as a CSV.

## ❓ FAQ

**My limit does not apply.** Check the rule **Status** is on, the Order Limits module is on and the app embed is on. Also check the customer matches **Customers** and **Markets** and the products are covered.

**If I choose No for product page messages, are limits still checked?** Yes, the pop-up still appears at checkout.

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