UnifyCart Help

Markets and Currencies

Selling into more than one country, and the one thing about prices that catches everybody out.

A market is a group of countries you serve on the same terms: one currency on the labels, one way of showing tax, one shipping zone, one warehouse, and optionally a payment account of its own. Shoppers are placed in a market automatically and can move themselves with the region switcher.

Markets, Currencies and Market Settings all live under Settings. If you cannot see them, the feature is switched off for your plan. It is on by default, and it does nothing at all until you create your first market, so switching it on is safe.

What a Market Decides

Six things, and they are independent of each other.

Which countries it serves. A country belongs to one market. If you list the same country in two, the one with the lower priority number wins and the other never sees it.

The display currency. What prices are shown in. This is the label in the shop, not necessarily the money that reaches your bank.

Whether prices include tax. Tax-exclusive adds it at checkout. Tax-inclusive bakes it into the price shown, using the VAT rate of the first country in the list, so the order of that list matters more than it looks.

The shipping zone. Which rates the market quotes from.

The fulfilment location. Which warehouse the orders are picked from. Leave it alone unless you really do ship that region from somewhere else.

The payment account. Which gateway takes the money, and in which currency it is actually charged.

Prices Are Converted, Not Set

This is the part people get wrong, and it is worth being blunt about.

You hold one price per product, in your base currency. Every other market shows that price converted at today's exchange rate. Rates refresh every morning, so a product that showed 10.60 in another currency yesterday may show 10.74 today, and the day after it may go back down.

You Cannot Set a Different Price for a Different Country

There is no per-market price. If your plan is "it is 15 dollars at home and 12 pounds in Britain", markets will not do that, and the number shown will drift with the exchange rate every morning. A rounded, stable foreign price list needs separate products, or a separate shop.

That is fine for a shop that genuinely wants one price converted. It is wrong for a shop with a printed foreign price list, and it is much cheaper to find that out now than after the catalogue is loaded.

Display Currency and Settlement Currency Are Different Things

Three figures exist for every order, and confusing them is the usual cause of "the total changed".

What it is
Base Your own currency. What the product is priced in and what reports count in.
Display What the shopper is shown, converted from base.
Settlement What the gateway actually charges the card.

Leave Settlement Currency blank and the gateway charges in your base currency: the shopper sees their own currency while browsing, and their bank converts at their own rate. Set it, and the gateway charges in that currency instead, so what they were shown is what they are charged.

Not Every Gateway Can Charge in Any Currency

Authorize.net and Braintree charge in the currency of the account and nothing else. Setting a settlement currency they do not hold does not fail cleanly at the point you save it: it fails at the moment a customer tries to pay. If you need to settle in a second currency, that usually means a second gateway account, set on the market itself.

A separate gateway per market is the common arrangement for a business with a bank account in each country. Leave Payment Gateway blank and the market uses the shop default.

How a Shopper Ends Up in a Market

In this order, first match wins:

  1. Their own choice. Once somebody picks a region, that is remembered for the rest of the session and nothing overrides it.
  2. Where they are, if you have switched that on. Automatic region detection is off until you turn it on in Market Settings. It looks up the country and picks the matching market once per session.
  3. The default market. Anyone whose country you do not serve, and everyone else if detection is off.

So with detection off, every shopper starts in the default market whatever their country, until they choose otherwise. That is deliberate, and it is the safer setting while you are still getting rates and tax right.

Marking a market as the default silently un-marks the previous one. There is always exactly one.

Build the Default Market First

Make the market your own country sits in, mark it default, and leave it as the only one until shipping and tax are right. Adding the second market then changes nothing for your existing customers, because they are already in the first.

Currencies

A currency has to exist and be active before a market can display it. Each one carries an exchange rate against your base currency, refreshed daily by the platform, a symbol, and the number of decimal places to show. The symbol always goes in front of the number.

Zero-decimal currencies are the ones to watch. If you sell in yen, the price has no decimal places and a rate that produces 1,234.56 is shown as 1,235. Rounding happens on display, so two items at that price may not add up to exactly twice it in the basket.

When Something Looks Wrong

Everybody sees the same currency. Detection is off, which is the default. Either turn it on or make sure the region switcher is somewhere visible in your theme.

The region switcher is missing. It only appears once you have more than one active market, so a single market shows nothing. In the themes supplied it sits in the header and is hidden on small screens, so a shopper on a mobile device cannot change region at all unless your theme has been changed to show it.

Prices moved overnight. Exchange rates refreshed. Expected behaviour, not a fault.

Tax looks wrong in one market only. Check the country order. The VAT rate comes from the first country listed, so a market with several countries shows the first one's rate to all of them.

A country gets the wrong market. It is listed in two. Lower priority number wins.

Nothing happens at all. Markets only take effect once at least one exists and is active. If markets exist and the storefront still ignores them, the region resolution has been skipped deliberately rather than crashing the shop: that is logged, so the error log is the place to look.