# B2B Price List: What It Is and How It Works in Your Store

> What a B2B price list is, how to set one up in Shopify and BigCommerce (discount, fixed price, volume tiers) and which price search engines see.

URL: https://clione.ai/glossary/b2b-price-list/
Lang: en

A B2B price list is not the PDF price sheet you email a distributor, and it is not a discount code anyone can type at checkout. It is **a store setting that changes the price each business customer sees when they log in**. It is the piece that makes [B2B ecommerce](/glossary/b2b-ecommerce/) possible in an online store, and it matters to you because of a consequence that gets forgotten during setup: your store now has two truths about price, the public one and each customer's, and **only the public one reaches search engines and assistants**.

## How it works

Platforms call it different things, but the pieces are the same: who the list is assigned to, how the price is expressed and what happens with quantity.

|                        | Shopify                                                                                    | BigCommerce                                                                                                                           |
| ---------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| What it is called      | B2B catalog[^shopify-catalogs]                                                             | Price list[^bc-price-lists]                                                                                                           |
| Who it is assigned to  | B2B markets and, on the Shopify Plus plan, also a company location[^shopify-catalogs]      | Combinations of sales channel and customer group[^bc-price-lists]                                                                     |
| How the price is set   | A blanket percentage adjustment and fixed prices per product or variant[^shopify-catalogs] | A new price per product or variant, with its percentage discount, plus new sale and recommended retail (MSRP) prices[^bc-price-lists] |
| Volume pricing         | Up to 10 tiers per product[^shopify-quantity]                                              | Three kinds of tier: percentage, amount per unit or fixed price[^bc-price-lists]                                                      |
| If there is a conflict | With several catalogs for the same location, the lowest price is shown[^shopify-catalogs]  | Each combination of channel and group takes only one list at a time[^bc-price-lists]                                                  |

**Shopify** combines two ways of setting the price inside a catalog, and **the fixed price beats the blanket adjustment**. Its own example: candles at $10, a catalog with a 20% adjustment that brings them to $8, and one particular candle, costlier to make, with a fixed price of $9 that the adjustment does not touch.[^shopify-catalogs] On the Basic, Grow and Advanced plans you can have up to 3 active catalogs across all your B2B markets; Shopify Plus has no such limit, and each company location can have up to 25 catalogs assigned.[^shopify-catalogs]

Quantities are handled separately. A quantity rule forces purchases in multiples or sets a minimum and a maximum per order, always per variant. Volume pricing adds tiers: in Shopify's example, one unit at $20, $18.50 from 20 units, $17.75 from 50 and $16 from 100. One detail that changes the math: **when a product has volume pricing, its price is fixed and the catalog's blanket adjustment stops applying**.[^shopify-quantity]

**BigCommerce** starts from the catalog price, the one any visitor sees, and the list overwrites it product by product or variant by variant. It does not limit the number of lists, though it warns that keeping many can slow down the control panel, and it cautions that **a price change can take up to 10 minutes to show in the store**.[^bc-price-lists]

## Which price search engines and agents see

A [crawler](/glossary/web-crawler/) does not log in with your customer's account. In a mixed Shopify store, **only logged-in B2B customers see B2B prices**,[^shopify-store-type] and BigCommerce describes the typical case as one standard price for every visitor and another that only the chosen groups see.[^bc-price-lists] The price that a search engine or an agent can read on your [product page](/glossary/product-page/) is therefore the public one.

That settles what goes in your [structured data](/glossary/structured-data/). Google asks you not to mark up content that readers of the page cannot see,[^google-sd-policies] so the offer price in the markup of the public page is the public price, not a customer's. The closest thing Google documents is member prices for a loyalty program: they are marked up separately and, if you provide them, **you must also provide the regular price**.[^google-merchant-listing]

[Schema.org](/glossary/schema-org/) does have vocabulary for describing prices by tier or by customer type: a unit price specification,[^schema-unit-price] the `eligibleQuantity` property, which says for which quantities a price applies,[^schema-eligible-quantity] and `eligibleCustomerType`, which says for which type of customer an offer applies.[^schema-eligible-customer] But Google's documentation on [merchant listings](/glossary/merchant-listings/) mentions neither property,[^google-merchant-listing] and `eligibleCustomerType` appears on **between 1,000 and 10,000 domains**, according to Schema.org itself.[^schema-eligible-customer]

## In a store

**Fictional example.** An invented coffee roaster sells 1 kg bags of coffee to individuals and to cafes from the same store. The public price is $20. Its "Hospitality" catalog has a 15% adjustment, a quantity rule (bags in multiples of 5) and two volume tiers. This is what each person sees on the same product page:

| Who opens it                                  | Price per bag                  | How they buy |
| --------------------------------------------- | ------------------------------ | ------------ |
| A visitor without an account, and any crawler | $20                            | By the unit  |
| A cafe with the "Hospitality" catalog         | $17                            | In 5s        |
| The same cafe, from 20 bags                   | $16 (fixed price for the tier) | In 5s        |
| The same cafe, from 50 bags                   | $15 (fixed price for the tier) | In 5s        |


Both tiers have a fixed price, as in Shopify, so the 15% adjustment is not stacked on top of them.[^shopify-quantity] And on the public page, the one Google and agents read, the markup carries a single price: the one in the first row.

```json
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Roasted coffee beans, 1 kg bag",
  "offers": {
    "@type": "Offer",
    "price": 20.0,
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock"
  }
}
```


Believing that the B2B customer's price reaches Google. No visitor without an account sees it,[^shopify-store-type] and marking it up on the public page would be marking up something the reader cannot see.[^google-sd-policies] The other half of the error is the opposite one: showing the cheapest tier's price on the public page as if it were the price. What gets marked up is what someone sees when they open the page without an account.


## How to check it

1. **List which catalogs or price lists each customer has.** In Shopify, if a location has several with the same product, it gets the lowest price.[^shopify-catalogs]
2. **Log in as a test B2B customer** and review prices, tiers and quantities. Shopify recommends that the product page show the minimum quantity, so the customer knows how many units to add to the cart.[^shopify-quantity]
3. **Open the same product page in a private window** and compare the price you see with the one in the page's markup: they have to match.[^google-sd-policies]
4. **In BigCommerce, wait a few minutes** before trusting a change: it can take up to 10 to show.[^bc-price-lists]
5. **Export the catalog to CSV** to review every price in a spreadsheet. Shopify lets you export each catalog's prices, publishing and quantity rules, edit them and import them again.[^shopify-catalogs]

## Related concept: AggregateOffer

With price tiers in sight, it is tempting to summarize them with [AggregateOffer](/glossary/aggregateoffer/), the type that gives a low and a high price. But AggregateOffer is meant for **one product with several offers, for example from different merchants**,[^schema-aggregateoffer] not for the prices one merchant gives different customers. And Google is clear about merchant listings: they accept AggregateOffer in product snippets, but **merchant listings require an [Offer](/glossary/offer-schema/)**, because the merchant has to be the seller.[^google-merchant-listing] Its entry explains what that offer carries.

To keep going, the [catalog and entities reading path](/learn/catalog-and-entities/) orders the rest of the terms.
