Skip to content
elgentos
NL EN
All articles

Customer-specific prices in your B2B webshop: how to set it up.

You already have price agreements. Contract prices per customer, tiers for whoever buys more, annual deals agreed in March that still hold in November. They live in your ERP, and the exceptions live in the heads of your inside sales team.

None of that is in your webshop. There, everyone sees the same list price, or you have hidden prices entirely until somebody logs in. Customer-specific prices bring the agreement forward, so a logged-in customer sees their own price.

The technology is not the hard part. The agreements are. This piece is about the choices you make before anyone starts building.

What it costs when your prices are not online

A customer who cannot see their own price cannot order on their own. They mail inside sales, wait for a quote, approve it, and somebody re-enters the order. That is work that adds nothing on either side, and it repeats with every reorder.

Worse is what happens with the customer who does not call. They compare your list price against the net price they already know elsewhere and conclude you are expensive. Your agreement was sharp, but they never saw it.

And there is the point that rarely gets made: an invisible agreement earns you no goodwill either. You negotiated and gave a price, and nothing in the ordering process reminds the customer of it.

Where the price agreement belongs

Start at the source. Price agreements do not come from your webshop, they come from your ERP. That is where they are negotiated, recorded and adjusted, and that is where they should stay. The webshop shows the price, it does not decide it.

That sounds like a detail and it determines how you set this up. A few hundred agreements you maintain with an import: a file with company, item, quantity and price, and you are done. Thousands of rows that change monthly, and you want an integration that treats the ERP as the source.

Two questions to answer then, and they usually sit untouched until something goes wrong: how often do you synchronise, and what happens when an agreement disappears from the ERP? Does that customer fall back to the list price, or do you want somebody to look at it first? That is not a technical question.

At what level do you record the agreement?

Record the agreement against the company, not against the person logging in. A price agreement applies to the organisation. Add a second buyer tomorrow and nothing needs copying; when the first one leaves, the agreement stays.

The question that comes before it is how much of your range genuinely differs per customer. For wholesalers and manufacturers that is often a serious share: contract prices on the items that carry volume, catalogue prices on the rest. But if a handful of percentages per customer type covers it, you do not need to start here. More on that below.

Tiers: do you reward volume online?

You can record several prices per company and per item, each from a given quantity upward. One price at 1 unit, a lower one at 10, another at 100.

Commercially that is more interesting than it looks. A tier that is visible online is an incentive that works without anyone being on the phone. The customer sees for themselves that a larger quantity is better value and works out whether that suits them.

Do settle which price applies when several tiers qualify, and check it with real quantities before you go live - in the cart and on the listing page. It looks like a detail, but this is exactly what a pricing argument with a customer is about.

Do you show the discount, or only the price?

There is one choice that is commercial rather than technical: do you show the customer what their discount is, or only what they pay?

In the first case they see two amounts side by side, the catalogue price and their own. That makes the value of the agreement visible every single time. In the second case only their own amount appears, and the conversation is about that price instead of about a list price nobody ever pays.

Both are defensible. What does not work is making that call after the shop is already live.

What do visitors who are not logged in see?

As soon as prices differ per customer, you have to decide what a visitor without an account gets to see. There are three routes: the catalogue price, no price, or no catalogue.

  • Showing the catalogue price keeps you findable in Google and gives new visitors an indication. But it is a price your existing customers do not pay.
  • Hiding prices until after login keeps your margins out of your competitors view, and raises the threshold for someone who does not know you yet.
  • Putting the whole catalogue behind a login suits a range meant only for existing relationships, but you give up findability.

There is no right answer that holds for everyone. There is a wrong moment to think about it, and that is after you have built it.

Why this is more work than a field on the product

Two things make this harder than filling in a price. The first is speed: your category and product pages are cached so they load fast. A price that differs per customer means a separate version has to be kept per customer. That works, and with hundreds of companies you will not notice. With thousands you see it in your hosting bill. Worth knowing before you start.

The second is that the webshop is not your only channel. A large share of B2B orders arrives by phone or mail and gets entered by your inside sales team, and increasingly your customers procurement system requests prices directly. The same customer price has to come out in all of those cases. If it only works in the webshop, the order confirmation will eventually show a different amount than the customer saw online - and that is exactly the kind of difference that costs trust.

When you do not need this

Customer-specific prices cost you an ERP integration, an extra dimension in your hosting and a number of the decisions above. That is worth it when your agreements are made per company and per item and cannot be captured in a percentage.

But if a few fixed discount percentages cover it - dealer, reseller, end user - this is overkill. Then you set up customer groups with a discount per group and you are done with what Magento already does out of the box. No synchronisation that can stall, no extra maintenance.

So start with the question of how many of your prices genuinely differ per customer per item. If the answer is a few percent of your range, it may be cheaper to organise those few items differently than to rebuild your entire pricing.

We built customer-specific prices and tiers for Magento as part of the elgentos B2B Suite. Want to take a step back first and read why we build this kind of logic in Magento rather than in a SaaS package, that is in our piece on Magento as a B2B platform.

Want to talk shop?

We're happy to nerd out about Magento, Hyvä and B2B..