B2B Module with VIES Validation & EU VAT Exemption for PrestaShop
Turn your PrestaShop into a full-featured B2B platform: validated company registration, real-time VIES VAT check, private shop and intra-EU VAT exemption.
«I only sell to trade customers and I do not want my prices on show for everyone.» It is one of the requests we get most often, and it almost always comes with a workaround already in place that does not hold up at all: hiding the price so it does not appear on the page.
The trouble is that hiding is not the same as removing. The price is still there on the page even if you cannot see it, and anyone who wants to look —a competitor, a price comparison site, somebody who does this for a living— can see it. If you really do sell to trade only, what you need is not to cover a number up: it is for the shop not to exist for anyone who has not logged in.
A properly built B2B shop has three pieces, and all three have to work on their own:
The usual approach is covering pages up one at a time: remove the price here, hide the button there. We do the opposite: the shop is closed completely and only what is strictly needed to register stays open.
What ends up open is the login screen, the signup form, password recovery and the legal pages. Everything else —product pages, categories, search, cart— is out of reach for anyone without an account, and nobody has to remember page by page.
If you have to make a list of what you want to hide, one day you will forget something. Make the list of what you want to show.
One detail worth knowing up front: when you add a new page and you want it to be public —a landing page, a form, a promotion— you have to open it on purpose. It takes a minute, but if nobody tells you, you go mad wondering why it does not show.
An ordinary shop registration asks for first name, surname and a password. For selling to companies that is no use, so the form is split into three blocks —person, company and billing address— and you decide which fields appear, which are mandatory and which are not needed.
What comes as standard is what we have seen asked for in almost every shop: company, tax number, EU VAT number if you sell abroad, phone and billing address. If your business needs something else —a licence, a permit, the code that customer has in your management software— it gets added, translated into your shop's languages.
And the EU VAT number is not stored blindly: it is checked against the European register while the customer is signing up, so the request reaches you with that already verified.
The logical thing seems to be checking at the end, when the invoice is issued. We do it at the start, when the customer registers, for two very down-to-earth reasons.
The first: a customer who gets a red error while they are paying leaves. Whereas while they are filling in the signup form they have time, they have their paperwork to hand and, if something does not add up, they write to you.
The second: that way, when the request reaches you for approval it already comes with that checked. No going to an official website to copy and paste numbers: you have it in front of you, with the date and time it was looked up.
Checking it at signup turns a tax headache into a two-second commercial decision.
This is what separates a shop that has actually been running from one that was thrown together. The European lookup does not always answer: each country keeps its own register, and when one country's register is under maintenance or overloaded, the answer is neither «yes» nor «no», it is «I cannot answer right now».
And there is the classic mistake: treating that «I cannot answer» as if it were a «no». In other words, rejecting a legitimate customer because a server in another country is having a bad day.
Our rule is simple: no answer does not mean fake. The signup is left pending with that flag, you see it and you decide. What we never do is wave through something that could not be checked, or turn somebody away over a breakdown that is not theirs.
You can invoice without VAT when three things are true at the same time:
The VAT does not vanish: the buyer declares it in their own country. And since 2020 all three conditions carry equal weight; if one fails, the exemption falls even if the other two are perfect. This is not minor paperwork, it is the condition itself.
The most common fix is creating a 0 % customer group and dropping the European customers into it. It works until the first exception, and the first exception shows up immediately: that same customer asks you to send the order to their warehouse down the road, or changes the delivery address at the last step.
The group says who the customer is. But the exemption also depends on where the goods are going, so the decision has to be made on every order, not once on the customer record. That is what the module does: it looks at the actual order —the customer, their checked number and the delivery address— and decides whether that shipment carries VAT or not.
And it does it through the shop's normal machinery: it invents no prices and edits no amounts by hand, it just tells PrestaShop which tax applies. That way the accounts and the reports still add up, which is what your accountant will thank you for.
When somebody signs up, three things happen at once: they get a notice that their account is under review, you get an email with all their details sorted out and with the result of the VAT check, and the account is created but with no access to the catalogue.
You go in, look at it and approve or reject. On approval that customer moves into whichever trade group you have set up —which is what opens up the prices and discounts they are entitled to— and automatically gets the email telling them they can order.
That last bit matters more than it seems: from then on everything is handled by the shop with its own usual rules. There is no parallel price list invented by some module, which is exactly what turns a shop into a problem two years later.
First, who gets in. The module checks the VAT number, sorts the details out and puts them in front of you; the yes is yours, in one click and with everything in view.
Second, how much shop you want to show. If on top of selling to trade you want people to find you searching for products, you leave a public part open —a catalogue with no prices, informational pages or a blog like this one— and decide it as you build. It is the first conversation we have on these projects, and having it early shows up later in the traffic.
Everything this article describes is done by our professional signup module: catalogue closed to anyone not logged in, registration with the fields you choose, VAT number checked and approval in one click. It installs on the shop you already have.
Turn your PrestaShop into a full-featured B2B platform: validated company registration, real-time VIES VAT check, private shop and intra-EU VAT exemption.
The email your customers open most goes out with the PrestaShop template, and its product table does not read on a…
From 27 September 2026 every shop selling to consumers in the EU has to show the harmonised legal guarantee notice.…
A course in three levels, an ebook in three formats, a one- or two-year licence. PrestaShop makes you choose between…
A module, a development, or just a second opinion. The first consultation is free, and a fixed quote comes out of it with a price and a date.