How customer-specific pricing works in B2B, the five ways it breaks as you scale, and how to structure price lists, tiers and discounts so the rules hold.
In this article
Two buyers from the same retail group meet at a trade fair and compare what they pay you. The numbers don't match. Neither of them can remember agreeing anything different, and neither can you — the discount was set by someone who left, in a spreadsheet nobody has opened since.
That conversation is the reason customer-specific pricing is worth taking seriously as a system rather than as a favour. Almost every wholesale brand offers different prices to different customers; very few can explain, on demand, why any given customer pays what they pay. The gap between those two states is where margin leaks and where trust gets damaged.
This article covers what customer-specific pricing means in B2B, the five ways it reliably breaks as a brand grows, and the structure that keeps it under control past a few hundred accounts.
What is customer-specific pricing?
Customer-specific pricing means the price a business customer sees is determined by who they are, not just by what they're buying. The same SKU can carry a different price for an independent boutique, a chain, a distributor, and an export partner — all at the same time, all legitimately.
It's the single biggest structural difference between B2B and consumer commerce. A retail webshop has one price per product. A wholesale environment has one price per product per customer relationship, and it has to hold that consistently across every channel a customer might reach you through. It's also why consumer platforms need so much configuration before they work for wholesale — something we cover in more detail in Shopify Plus B2B limitations.
In practice it's built from four or five overlapping mechanisms rather than one:
Mechanism | What it does | Typical use |
|---|---|---|
Customer group price list | A whole assortment priced for a segment | Independents vs chains vs distributors |
Volume tiers | Price breaks at set quantities | 12+ / 48+ / 144+ units |
Contract pricing | Negotiated prices on named products | A key account's core range |
Promotional pricing | Time-boxed reductions | New season, clearance, first order |
Market pricing | Prices per region or currency | Export lists, local market conditions |
Most brands need at least three of these running at once, which is exactly why the whole thing becomes hard to hold in a spreadsheet.
Five ways customer-specific pricing breaks
1. The discount nobody removed
A one-off 15% was agreed to win an account in 2023. It had no end date, because at the time it was a conversation rather than a rule. Three years later it's still applied to every order, it's now the customer's baseline expectation, and removing it feels like a price increase.
This is the most expensive failure mode and the most common. Every negotiated price needs an end date or an explicit review date attached at the moment it's created — not because you intend to withdraw it, but because "permanent" should be a decision rather than a default.
2. Spreadsheet drift
Price lists live in files. Files get copied, emailed, edited locally, and re-sent. Within a season there are four versions in circulation and no reliable way to know which one a given buyer is working from. When a buyer quotes a price you no longer offer, you either honour it or start an argument — and both cost you.
The tell is when someone has to check before an order can be confirmed. If confirming a price requires a person to look something up, the pricing lives in the wrong place. This is one of the clearest reasons brands eventually replace Excel for wholesale orders entirely.
3. The rep quoting from memory
A sales rep at a showroom or trade fair is the most likely person in your business to quote a stale price — not through carelessness, but because they're working from what they last saw. Whatever they say becomes the commercial reality, and correcting it afterwards costs goodwill.
The fix is not training. It's giving reps a sales app that shows the customer's live pricing while they're standing in front of them, so the quoted price and the system price are the same number by construction.
4. Channel divergence
A customer sees one price in the portal, another in a PDF from last season, and a third from a rep. Each channel was set up separately and each holds its own copy of the prices.
Multi-channel selling only works when every channel reads from the same pricing data. When it doesn't, more channels means more divergence, which is the failure mode behind most struggling multi-channel B2B strategies.
5. Exceptions that became the rule
Enough individual exceptions and you no longer have a pricing structure — you have several hundred bespoke arrangements. Nobody can answer what an independent retailer "normally" pays, because there is no normal any more.
The warning sign is arithmetic: if the number of distinct price arrangements is climbing at roughly the same rate as your customer count, you've stopped operating a structure. Healthy setups have a handful of groups and a small number of genuine exceptions on top.
The structure that holds
Four rules keep customer-specific pricing manageable more or less indefinitely.
Price groups, not price customers. Define a small number of customer groups and price the assortment for each. Every account belongs to exactly one group by default. This is the difference between maintaining five price lists and maintaining five hundred.
Exceptions sit on top, and they're named. A key account with negotiated prices on twelve products is an exception layered over its group list — not a bespoke list of its own. When your cost base moves, the group list updates and the twelve exceptions stay visible as exceptions rather than disappearing into a wall of numbers.
Everything has a start and an end. Promotions expire on their own. Negotiated prices carry a review date. Nothing is permanent unless somebody actively decided it should be.
Prices attach to SKUs, not to documents. When a price is a property of a product for a group, changing it changes it everywhere at once. When a price is a cell in a file, changing it changes one file. That distinction is the whole game.
Where the rules have to be enforced
A pricing structure is only real where the order is placed. If the rules live in a document and the order is typed by a person, the rules are advisory.
In a B2B portal, the retailer logs in and sees their own prices — there is no version to be out of date with, and no opportunity to apply the wrong one. Their minimum order quantities and volume breaks apply automatically at checkout. A rep in the field sees the same numbers on the same customer record. And the resulting order flows into your ERP through API integration already carrying the right prices, so nothing has to be corrected downstream.
That's the practical value of customer-specific pricing as software rather than as policy: not that it makes the pricing cleverer, but that it makes it true everywhere at once. It's why customer-specific pricing consistently shows up as a core requirement when brands evaluate B2B webshop software.
Moving off spreadsheets without freezing sales
Brands often delay this because it looks like a data project with no natural stopping point. It's more tractable in stages.
Start by writing down the groups you actually have — most brands discover they have three or four, not the twenty they feared. Set a clean list price per SKU as the base. Rebuild each group as a percentage or a fixed list off that base. Then load the genuine exceptions, and — this is the part that pays for the whole exercise — read every one of them as you go. There will be discounts you'd forgotten, prices below current cost, and at least one customer on terms that made sense for a business you no longer run.
Migrate your largest customers first, since they carry the most exceptions and the most risk. Run the old sheets in parallel for one ordering cycle to catch discrepancies, then retire them properly rather than leaving them in a shared drive to be reopened by accident.
How Orderchamp Cloud handles customer-specific pricing
Orderchamp Cloud includes pricing management built for exactly this: pricing customised by customer group, product, or region, with price lists, bulk price adjustments, volume-based pricing, and targeted promotions.
In practice that means each retailer logs into your branded B2B Portal and sees their own assortment at their own prices, your sales team works from the same customer records in the Sales App, and every order lands in the same order management flow with the correct pricing already applied. A cost change becomes a bulk update rather than a week of file edits. For the wider picture of what a complete setup covers, see our guide to a B2B e-commerce solution.
Want every customer to see the right price automatically? Explore Orderchamp Cloud or book a demo.



