Two people are looking at the same product in your shop. One is in Madrid and the other in Lisbon. Both see exactly the same price on screen and, when they reach the end of the checkout, the amount changes for one of them. That is the one who does not finish the order.
Your shop shows one price, and it is not everybody's
Until a visitor tells it where they are from, PrestaShop has to decide which rules to price with, and it uses the country you have set as the default. That is reasonable, there is nothing else it could do. But it means every visitor sees one particular country's price, even when they are somewhere else.
The day that visitor types their delivery address, the shop finally knows where they are and recalculates. And that is where the surprise turns up, at the worst possible moment: on the payment step.
And it is not only about tax. If you sell in several markets, your price for France may well not be your price for Portugal or the Canary Islands, because costs, competition and shipping are not the same. All of that is lost if the shop shows a single price to everyone.
A price without a country is, for somebody, the wrong price.
What a country selector changes
On arrival, the visitor is asked which country they are in. They are not left guessing: the one their connection suggests is offered, with its flag, and they confirm it or pick another. That is what Geolocation for PrestaShop does — the module this very site runs on.
From that moment the shop shows them their price: in their currency, with the taxes that apply to them, and with the rate you decided for that market. The price on the listing, on the product page, in the basket and at payment is the same number from start to finish.
They are asked once. The choice is remembered and the selector stays at the top, always within reach, in case anyone wants to change it.
Every country with its own language, currency and price
Behind the flag there is a table you decide: for each country, which language the visitor arrives in, which currency they see prices in and, with the currency, which price list applies to them. Germany and Austria in German and euros; Switzerland in German and francs, with its own rate; the United Kingdom in English and pounds.
You set it once and it holds for the whole shop. Countries that are not in the table come in through the general rule, so nobody ends up staring at a blank page for living somewhere you did not expect to sell.
Why it has to be the only selector
This is the part we get asked about most. If, on top of the country, you leave a loose currency selector and a loose language selector, the visitor can end up with one country's currency, another one's price and a third one's language. And the person handling that support query afterwards is you.
That is why the country choice is the single door: the country sets everything else. On this very site we removed the loose selectors from the top bar for exactly that reason.
One thing it does not do: translate
Worth saying plainly, because it is the most common confusion. This does not translate your shop or invent languages you do not have. If your shop is in several languages, each one lives at its own web address, as it should so that Google finds them all; what the selector does is take each visitor to theirs and give them their country's price.
If you sell abroad and you are not sure that part is set up properly, it is the first thing we look at, because it is where most traffic is lost without anyone noticing.
Google still sees all your languages
This is the scary part, and rightly so: if every visitor gets a different page depending on where they come from, you can end up with one language in Google and the rest simply not there.
That is why the addresses are left alone. Each language lives at its own, and whoever is already on one stays there, because that is what they asked for; only visitors arriving at the generic address are walked to their language. And search engines are never moved: each address is always crawled in the same language and the same currency, which is exactly what Google needs in order to index your five markets instead of one.
Try it right here
It is running on this site. At the top of the page, next to the search box, you will see the selector with the flag and the currency. Open it, change the country and have a look around the catalogue: you will see prices change exactly as a customer from that country would see them.
Where the suggested country comes from
From one of two places, and both are fine: a database on the server itself that turns the visitor's connection into a country, or the country your site's front-end service already hands you, if you use one.
What is reliable in both cases is the country. City or region through this route get it wrong often enough that you should not base decisions on them. And either way it is there to suggest: the visitor always has the final word.
Where this is running
The selector you have just tried, the country table and the redirects that leave your addresses alone are all the same module, already in the catalogue and with updates included. You install it, fill in the countries you sell to, and from then on every visitor arrives in their language, with their currency and with the price you set for them.
Modules featured in this article
Every visitor lands in the language, currency and price of their own country, automatically. Country rules, a flag selector and redirects that respect your SEO. Works with Cloudflare.