Skip to main content

B2B Pricing: Models, Price Lists and a Worked Net Price Example

B2B pricing models for product sellers, a worked list-to-net price example, price lists per customer group and how Shopify and Adobe Commerce store them.

B2B Pricing: Models, Price Lists and a Worked Net Price Example

B2B pricing is how a supplier, wholesaler or manufacturer sets prices for business buyers. Unlike a webshop with one price per product, a B2B seller usually publishes a list price and then gives each customer a net price: a customer group discount, quantity tiers, contract prices for named accounts and quotes for anything outside the list. The pricing model decides where the list price comes from; the price lists decide what each buyer actually pays.

The short version for product sellers: set a cost-based floor per SKU, a list price that reflects the market and the value to the buyer, and a small number of customer groups with a clear rule each. Then keep those price lists in one place, check the margin after every discount stacks, and push the result to each sales channel. This guide covers the models, a worked net price example with numbers, how Shopify, Adobe Commerce, WooCommerce and Lightspeed store B2B prices, and a hygiene checklist for price lists.

Six ways B2B sellers arrive at a price

Search results for this topic lean toward SaaS (per seat, usage-based). For companies selling physical products to other businesses, these six models do most of the work, and most sellers combine two or three of them.

Cost-plus pricing

Take the landed cost per unit and add a fixed markup or a target margin. It is simple, defensible to buyers and easy to automate across thousands of SKUs, which is why distributors with long tails use it. The weakness: it ignores what the market will pay, so it underprices specialist items and overprices commodities. Use it as the floor, not the whole answer. A 40% markup is not a 40% margin, so state which one a rule uses.

Value-based pricing

Price from what the product saves or earns the buyer. A spare part that stops a production line from standing still is worth more to the buyer than its cost suggests. Value-based pricing works best for specialist, low-volume items and for products where you can show the saving in the buyer's numbers.

Competitive or market pricing

Set the list price against what comparable suppliers charge. Standard consumables, fasteners and packaging usually end up here, because buyers compare prices line by line.

Tiered or volume pricing

The unit price falls as the order quantity rises: EUR 12.00 per box from 1, EUR 10.80 from 10, EUR 9.60 from 50. Tiers reward larger orders without negotiation. The choice between graduated and all-units tiers, and the price cliff that all-units tiers create, is covered in our guide to tiered pricing.

Customer-specific and contract pricing

Named accounts get fixed prices per SKU for a period, often in return for a volume commitment. Contract prices are the most valuable and the most fragile part of B2B pricing: they sit outside the normal rules, they expire, and nobody notices when the list price moves underneath them.

Quote-based pricing

For project orders, custom configurations or quantities far above your tiers, the buyer asks and you calculate a price for that order only. Our post on the request for quote process covers what a buyer sends and what a good quote contains.

From list price to net price: a worked discount stack

The list price is the published price before discounts (in B2B, usually excluding VAT). The net price is what the buyer pays after every discount that applies to them. The gap between the two is where B2B margin disappears, because discounts are granted by different people at different times and are rarely added up per order line.

Take an illustrative example: a 5-liter industrial degreaser with a landed cost of EUR 21.40 and a list price of EUR 48.00, so a gross margin of 55.4% at list. A dealer in the trade customer group gets 25% off list. The dealer orders 24 cans, which triggers an extra 5% volume discount. The dealer's contract also includes a 3% year-end rebate and a 2% discount for payment within 14 days.

Net price and gross profit per can as discounts stack

Illustrative example
CategoryPrice per canGross profit per can
List price€48€26.60
Trade group -25%€36€14.60
Volume tier -5%€34.20€12.80
Year-end rebate -3%€33.17€11.77
Payment discount -2%€32.51€11.11
Illustrative example: discounts totaling 32.3% off list cut gross profit per can by 58%, from EUR 26.60 to EUR 11.11.

Each step looks modest on its own. Together they take the price down 32.3%, and because the cost stays at EUR 21.40, gross profit per can falls from EUR 26.60 to EUR 11.11 and the margin from 55.4% to 34.2%. Run the same stack through the profit margin calculator with your own numbers, and then go one step further to contribution margin, which also subtracts freight, payment fees and the cost of serving that account.

Two habits keep the stack under control. First, compound discounts multiply rather than add: 25% then 5% is 28.75% off, not 30%. Write down which discounts compound and which are calculated on list. Second, set a margin floor per product or category and check every price list against the deepest combination a customer can reach, not against the headline group discount.

Setting up price lists per customer group

A price list is a set of prices for one audience: a customer group, a country, a currency or a single account. The fewer you have, the easier they are to keep right, so start from the buyer types that genuinely behave differently.

  1. Define the groups by role, not by size. Distributor, dealer, installer and key account are typical. Each gets one sentence describing who qualifies.
  2. Give each group one base rule. Dealer: list minus 25%. Distributor: cost plus 18%. A rule recalculates automatically when the list price or cost changes; a typed price does not.
  3. Add fixed prices only where the rule is wrong. A product with a different cost structure, a loss leader, a contract SKU. Shopify's catalogs work exactly like this: an overall percentage adjustment for the whole catalog, with fixed prices that override it per product or variant (Shopify Help Center).
  4. Put quantity tiers on top of the group price, and decide whether tier discounts compound on the group price or are calculated on list.
  5. Date everything that can expire. Contract prices and promotional net prices need a start and end date, or they quietly become permanent.
  6. Set the currency and VAT basis per list. B2B lists are normally excluding VAT; a Belgian or German buyer may need a list in EUR excluding VAT with reverse charge on the invoice.
  7. Check the result against the floor before the list goes live, using the deepest discount stack the group can reach.

Buyers also expect the price list as a file. Our free price list template gives you the columns most wholesale buyers look for, including list price, net price, pack size and minimum order quantity. For how B2B and retail prices relate in the first place, see wholesale vs retail.

A dealer price list as a rule: cost plus 18%, rounded to two decimals, applied only to brand portals and the Excel export while the webshop keeps its own price.

B2B price lists in Shopify, Adobe Commerce, WooCommerce and Lightspeed

Every major platform can hold B2B prices, but the object you maintain, who can see it and what happens when two prices apply differ a lot. The last column lists the rule that most often causes surprises.

How four platforms store B2B and customer-specific prices

Shopify B2BCatalog: overall % adjustment plus fixed prices per product or variantB2B markets; companies and locations directly on Plus. Up to 3 active catalogs on Basic, Grow and AdvancedVolume pricing, up to 10 breaks per product in the catalog CSVLowest price wins among catalogs on the same company location; a location catalog beats a market catalog
Adobe Commerce B2BShared catalog: one public, any number of customCustom catalogs: logged-in users of assigned company accountsTier prices per shared catalogA fixed custom price is capped at the base price
Magento Open Source / Adobe Commerce without B2BAdvanced Pricing tier pricesCustomer group and website (shared catalogs need Adobe Commerce B2B)Yes, fixed or % off PricePercentage tiers are calculated on Price, not Special Price
WooCommerceCore: regular and sale price onlyCustomer roles or single customers through an extensionDepends on the extensionDefined by the extension
Lightspeed eComQuantity discounts per productAll customers or one customer groupYes, unit price or percentage per quantityEach row is one quantity for one product, optionally one variant
Shopify shows the lowest price among the catalogs assigned to one company location; Adobe Commerce uses the lower of base price and a fixed custom price.

Sources: Shopify on catalogs and plan limits and the catalog CSV; Adobe on shared catalogs, custom prices and tier prices; WooCommerce's product price fields and an example extension, Role Based Pricing; Lightspeed's quantity discounts API.

Two practical consequences. On Shopify, if a company location has a dealer catalog and a promotional catalog, the buyer gets whichever is lower per product, so a promotion can undercut a contract you thought was fixed. A catalog assigned to the location itself does beat a catalog assigned to the whole B2B market, even when the market price is lower. On WooCommerce, the price list lives in an extension's own settings, which means it is invisible to anything that only reads the product's regular price, including most feed tools.

Passing a supplier cost increase through every price list

Cost increases are where rule-based price lists earn their keep. When a supplier raises the degreaser's cost from EUR 21.40 to EUR 23.00, a cost-plus rule moves the distributor price on its own, and a list-minus-25% rule follows as soon as you change the list price. Fixed prices do not move at all. Those are the ones to find first.

  1. Recalculate the floor. Apply the new cost and check which groups and contracts now sit below the margin floor at their deepest discount stack.
  2. Decide the new list price and let the group rules follow it, instead of editing each group's prices by hand.
  3. Sort fixed prices by contract end date. Contracts usually hold their price until expiry; plan the renegotiation, and look for an indexation clause that lets you pass on cost changes earlier.
  4. Give buyers notice with a date. Most B2B buyers accept an increase they can plan for. Send the new price list with an effective date, the products affected and the old and new price per SKU.
  5. Publish everywhere on the same day: webshop, buyer portal, marketplaces and the downloadable file, so no channel keeps selling at the old price.

Price list hygiene: the checks that keep net prices honest

Most B2B pricing errors are not strategy errors. They are stale data: a contract that should have ended, a list price that moved while a fixed price did not, a new SKU that never got a group price. A monthly check catches most of them.

Monthly B2B price list check

0 of 8 done0%

When a buyer disputes an invoice, the question is always which price applied and why. Keep the rule, the source price and the date on record for each list, so the answer takes a minute instead of an afternoon.

Customer groups, volume discounts and dealer price lists in WISEPIM

WISEPIM holds the product side of B2B pricing: cost and list price per SKU, plus customer groups and volume discounts. A volume discount applies to products, a category or the whole catalog, targets all customers, specific groups, specific customers or logged-in customers, can run between dates and holds tiers as a fixed unit price, a percentage off or an amount off.

What reaches a shop depends on the platform, and we would rather be exact than broad. Tiers export to Magento 2 as tier prices for the Magento customer group you map to each WISEPIM group, and to Lightspeed eCom as quantity discounts for all customers or a mapped customer group. A discount whose audience the platform cannot express, or a group without a mapping, is skipped with a warning on the product rather than widened to every shopper. The other connections, including Shopify and WooCommerce, do not receive tiers or customer group prices from WISEPIM, so on those platforms the B2B catalog or extension stays the place to maintain them.

List and net prices per audience come from channel pricing rules, which change the exported price without touching the stored one: percent markup, fixed amount, cost plus markup, cost plus margin or a fixed price, with rounding and safeguards such as a minimum margin. A rule can target one shop, the CSV or Excel export, a feed or a brand portal. That makes a dealer price list a portal with its own pricing rule and an optional password: dealers browse or download the catalog at their net price, while the webshop keeps the retail price.

Switching on Apply pricing rules shows portal visitors prices with the rules scoped to brand portals or to this portal, and a password limits who can open it.
Diego Nijboer

CTO and Co-Founder at WISEPIM, building AI-powered solutions that transform product data management for e-commerce businesses. Over 10 years of experience solving complex technical challenges in e-commerce and PIM systems.

Frequently asked questions

Still have questions?

Can't find the answer you're looking for? Please get in touch with our team.

Contact Support

The list price is the published price before any discount, usually quoted excluding VAT. The net price is what a specific buyer pays after their customer group discount, quantity tiers, contract terms and any rebates or payment discounts. Two buyers can see the same list price and pay very different net prices, which is why margin should be checked at net price.

Most wholesalers and distributors combine models rather than choose one. Cost-plus sets a floor per SKU, the list price follows the market for comparable products, and customer group discounts, quantity tiers and contract prices adjust it per buyer. Quotes cover project orders and quantities beyond the published tiers.

As few as the buyer types that genuinely behave differently, often three to five, such as distributor, dealer, installer and key account. Each extra group is another price list to check whenever cost or list price changes. Handle exceptions for single accounts with dated contract prices instead of a new group per customer.

Yes, through B2B catalogs. A catalog sets an overall percentage adjustment and fixed prices per product or variant, plus volume pricing. Basic, Grow and Advanced plans can assign up to three active catalogs across B2B markets, while Shopify Plus allows unlimited catalogs assigned directly to companies and locations. When several catalogs on one company location include a product, the lowest price is shown.

Calculate the deepest discount a buyer can reach by stacking group discount, top quantity tier, rebates and payment discounts, and compare it with a margin floor per product or category. Put end dates on contract and promotional prices, review fixed prices whenever cost changes and keep one master price list that every sales channel reads from.

Keep exploring

Hand-picked next steps to go deeper.

Better product data, better results.Get more sales.

4.7