Retail customers accept your price. B2B buyers expect their price — the negotiated rate, the volume discount, the contract terms their procurement team signed off on. If your WooCommerce store shows every visitor the same number, you’re either leaving margin on the table or losing wholesale deals to competitors who quote properly. Here’s how the three pricing models that actually work in B2B fit together.
1. Tiered (volume-break) pricing
Tiered pricing is the simplest B2B model: the unit price drops as the quantity rises. Buy 10 units at $20 each; buy 100 and they’re $16. It’s transparent, it’s easy for buyers to understand, and it directly rewards bigger orders — which is exactly the behavior a wholesaler wants to encourage.
Where it works best: products with straightforward per-unit economics and a wide spread of order sizes — packaging, components, consumables, apparel blanks. Where it struggles: highly configured products where “quantity” alone doesn’t capture the cost, and negotiated enterprise deals where a public tier table undermines your sales team’s leverage.

Implementation-wise, tiered pricing maps cleanly onto WooCommerce: quantity-break tables per product, displayed on the product page so buyers can see the next discount threshold. The UX detail that matters most is showing the next tier — “add 14 more to unlock $16/unit” — because that’s what actually lifts average order value.
2. Contract / negotiated pricing
Contract pricing is the opposite of public: specific products at specific prices for a specific customer, usually with an expiry date. This is how most real B2B trade works — the price list is an agreement, not a menu. A distributor might have 400 SKUs at individually negotiated rates, valid through Q2, with a different set of rates under discussion for Q3.
This model lives or dies on administration. Somebody has to enter those 400 prices, somebody has to update them when the contract renews, and the store has to apply them reliably at checkout — including to quotes, reorders, and partial shipments. Spreadsheets and memory don’t scale; a proper customer-specific price list in the store does. Our WooCommerce B2B development work usually starts here, because getting contract pricing wrong means either honoring prices you didn’t agree to or embarrassing a key account at checkout.

3. Role-based pricing
Role-based pricing assigns prices — or discounts — to customer groups rather than individuals: retailers get 20% off list, distributors get 35%, VIP partners get 40% plus free freight. It’s coarser than contract pricing but far easier to administer, and it covers the common case where you genuinely do treat whole segments alike.
The hidden work in role-based pricing is everything around the price: hiding retail prices from guest visitors, requiring account approval before wholesale prices appear, applying tax exemption per role, and gating payment methods (purchase orders for approved roles, cards for everyone else). The discount percentage is the easy part; the access control is the project.
Combining them without chaos
Most serious B2B stores use all three at once, which means you need explicit precedence rules — the single most skipped step in B2B pricing projects. A workable default:
- Contract price wins when one exists for that customer and product. A negotiated rate is a promise; nothing should silently override it.
- Role discount applies where no contract price exists. This is the segment default.
- Tiered breaks apply within whichever base price won — so a distributor’s contract price of $16/unit still drops to $14 at 500+ units, unless the contract says otherwise.
- Sale prices never stack with B2B pricing unless you explicitly allow it. Retail promotions leaking into wholesale checkout is a classic margin leak.
Write these rules down before anyone configures anything. Every B2B pricing dispute we’ve ever debugged traced back to precedence that lived in someone’s head instead of in the system.
Frequently asked questions
Can WooCommerce handle B2B pricing out of the box?
Not really. Stock WooCommerce has one price per product for all visitors. Tiered, contract, and role-based pricing all require either specialized B2B plugins or custom development — and at serious scale, custom usually wins on reliability.
How do I hide wholesale prices from retail visitors?
Show list prices (or no prices) to guests and require an approved wholesale account to see B2B pricing. This is access control as much as pricing — account approval workflows and role-based visibility rules do the heavy lifting.
Should B2B discounts stack with sale prices?
Almost never by default. Letting a 35% wholesale discount combine with a 20% retail promotion is one of the most common margin leaks in B2B stores. Decide the stacking rules explicitly and enforce them in code.
How do contract prices handle renewals?
Give every contract price list an expiry date and a renewal workflow — even a simple admin reminder beats discovering expired pricing when a customer complains. Larger operations sync this with their ERP or CRM so sales, not the website, owns the price book.
B2B pricing isn’t a plugin setting — it’s a pricing policy expressed in software. Get the policy right (which model, what precedence, what never stacks), and the implementation follows. If your wholesale operation is outgrowing spreadsheets and manual quotes, see how we build WooCommerce B2B stores with pricing logic that matches how your sales team actually sells — or tell us about your price book and we’ll map it to a working model.