# B2B: quantity rules & volume pricing

How Techno shows and enforces the order quantity rules and volume pricing you set in a B2B catalog, on the product page, in Featured product, Kits and the cart, and how the Quick order list adds several variants at once.

With Shopify B2B, you can sell to companies through catalogs that set, per variant, an order minimum, a maximum and an increment ("order in multiples of 5"), and volume pricing: a lower unit price from a quantity up. Techno reads these rules wherever a shopper chooses a quantity, and shows nothing new to anyone else.

## Who sees it

Rules and volume pricing reach your storefront only for a customer who is signed in and buying for a company location whose catalog sets them. Every other shopper, signed in or not, gets Shopify's default rule (minimum 1, increment 1, no maximum) and no volume pricing, and sees the product page, cart and Kits exactly as without B2B.

Shopify's Spring '26 Edition made B2B, with company profiles, volume pricing and up to three B2B catalogs, available on the Basic, Grow and Advanced plans as well as Plus. Check **Settings › Plan** and Shopify's B2B guide for what your plan includes.

## Where to set rules

In Shopify admin, go to **Catalogs**, open a B2B catalog, and set **Quantity rules** and **Volume pricing** for its products. Assign the catalog to a company location under **Customers › Companies**. See Shopify's [Help Center](https://help.shopify.com/en/manual/b2b/catalogs/quantity-pricing).

## What buyers see

### Product page and Featured product

In the Buy buttons block:

* The quantity field starts at the variant's minimum. The − and + buttons step by the increment and stop at the minimum and the maximum.
* Rules apply to the cart line, so what's already in the cart counts. With 10 in the cart on a "Minimum 10 · Multiples of 5" rule, the field starts at 5 and the buyer can add 5 more; with 95 in the cart on a maximum of 100, at most 5 can be added, and at 100 nothing more.
* A line under the quantity reads, for example, "Minimum 10 · Multiples of 5 · Maximum 100 · 3 in cart". Only the parts that apply show, and the in-cart count updates after each add. Screen readers hear the line with the quantity field.
* A **Volume pricing** panel lists the unit price from each quantity, for example "10+ $4.00" and "50+ $3.60".
* A typed quantity the rule doesn't allow, such as 12 in multiples of 5, isn't added. The buy box says why, for example "Order in multiples of 5.", and puts the shopper back in the quantity field.
* When the buyer picks another variant, the field, the line and the panel change to that variant's rule once the page has updated, and Add to cart waits for that update.
* With "Show quantity selector" off, Add to cart adds the minimum, or, when the variant is already in the cart, the least that keeps the line within the rule, for example 5 with 10 in the cart. With the line at its maximum it tries to add 1, and the cart's own message says why it can't.

The sticky add-to-cart bar adds the quantity in the buy box, so it follows the rule too.

### Cart drawer and cart page

* Each line's − and + buttons follow its variant's rule. − at the minimum removes the line.
* A line with rules shows them under the variant, for example "Minimum 10 · Multiples of 5".
* A typed quantity the rule doesn't allow is put back, and a message names the product, for example "Tether 3M: order in multiples of 5."
* A line with volume pricing shows its unit price, for example "$3.60 each".
* Anything the cart still refuses shows Shopify's own message, as for stock limits.

### Kits

A kit's Add to cart adds the kit product's minimum, and its panel shows the rule under the price.

### Product cards

With Theme settings › Product cards › "Show quick add button" on, a card's Add to cart adds the variant's minimum and says so, for example "Add 6 to cart". The card doesn't show the rest of the rule. If the cart refuses the add, for example past the maximum, Shopify's message shows under the button. See [Product sections › Quick add](../building-pages/product-sections.md#quick-add).

## Quick order list

The **Quick order list** section lists every variant of the product in a table: the variant, its SKU, price (with volume pricing where the buyer's catalog sets it), stock, how many are already in the cart, and a quantity stepper on each row that follows the variant's rule. The buyer sets quantities on as many rows as they like, across pages, and one **Add to cart** adds them all in a single step. The cart drawer opens once, and the rows go back to 0.

* A sold-out variant's row can't be changed: its stepper is dimmed and doesn't respond.
* A quantity a row's rule doesn't allow is flagged on that row, for example "Order in multiples of 5.", and Add to cart says how many rows need changing instead of adding. As in the buy box, a row's rule counts what's already in the cart, and a flagged row is checked again when the cart changes, so an add from the buy box that makes it fit clears the message.
* If the cart can't add everything, Shopify's message shows under the button. A sold-out variant stops the whole add, and every row keeps its quantity to change. A quantity above the stock can be added in part, for example "Only 3 items were added to your cart due to availability.", and then the rest of the rows go in too: every row that went into the cart is cleared, so pressing Add again can't add it twice, a partly added row says so ("3 of 10 went into the cart."), a line under the button says how many rows were cleared, and the in-cart counts, the header count and the cart drawer show what's in the cart.
* Long variant lists split into pages of "Variants per page" (25 by default). Pages change without reloading, and quantities entered on one page are kept on the others.
* Without JavaScript, Add to cart is turned off and a line asks the buyer to choose a variant; each variant's name links to the product page with that variant selected.

The section works on product templates only. It shows nothing for a product with only one variant, or for a product that can only be bought with a purchase option, such as a subscription-only product or one sold through a pre-order app, because the list can't choose a purchase option for the buyer; the theme editor shows a note in its place. On a product whose subscriptions are optional, the list adds one-time purchases. It's for every buyer, B2B or not: without a catalog, rows simply have no rules.

> **Note:** The list doesn't know about [pre-orders](product-page.md#pre-orders): the Product section's pre-order settings don't reach it. A variant the buy box shows as "Pre-order" reads "In stock" in the list, and the list adds it without the "Pre-order" line item property, so the cart line, checkout and order don't say it's a pre-order. Don't add the list to a product template you use for pre-orders.

| Setting | Notes |
| --- | --- |
| "Heading" | Default "Quick order". |
| "Variants per page" | 10 to 50, step 5. Default 25. |
| "Show SKU" | On by default. |

**Recipe: a wholesale product template.** In the theme editor, open a product template and choose **Create template** to duplicate it, for example as "Wholesale". Add the **Quick order list** section below the product, and, if you like, turn off Buy buttons › "Show sticky add-to-cart bar" there. Then in **Products**, assign the Wholesale template to the products you sell by the case.

## Limitations

* The theme editor can't preview as a B2B customer, so rules and volume pricing don't show there. Check them on the storefront, signed in as a company contact.
* Without JavaScript, the quantity field still starts at the least the rule lets the buyer add, counting what the page showed in the cart, and the browser's own arrows step it by the increment; anything else is left to Shopify's checks at the cart and checkout.
* Product cards don't show rules, though a card's quick add adds the variant's minimum (see [Product cards](#product-cards) above).

## See also

* [Product page › Buy buttons](product-page.md#buy-buttons)
* [Cart drawer & cart page](cart.md#changing-quantities)
* [Product sections › Kits](../building-pages/product-sections.md#kits)
* [Product sections › Quick add](../building-pages/product-sections.md#quick-add)
