makseongmakseong

Shopify Markets and multi-currency

One store, several countries, prices and content that make sense in each.

Markets, currencies, domains, translated content and shipping rules set up so a customer in another country sees their own price and language. Includes the hreflang and canonical work that keeps search from treating the versions as duplicates.

StackShopify

Project pricing

From $2,750

That covers one additional market end to end: pricing and rounding, tax display, payment, shipping and the search side. Each further market adds to it, up to $11,000.

Send the brief and get a number back.

Describe the project

The store technically sells abroad and nothing converts

Currency switching was turned on, a second language was added, and the numbers did not move. What the foreign buyer actually sees is a price that reads as a conversion rather than a price, a checkout that switches back to English at the last step, no payment method they use at home, a delivery estimate that does not apply to their country, and, in the European Union, a price displayed without VAT where consumers are entitled to see it included. Each of those is small. Together they are the reason the second market looks like it has no demand.

What the setup covers

Prices that read as local, not as converted

A market gets its own price adjustment and rounding rules, so the number ends where a local buyer expects it to end rather than at an exchange-rate decimal. For consumer markets in the European Union that means VAT-inclusive display, and where the margin does not survive the local price point, you get told before launch rather than after the first month of orders.

Payment and delivery the country actually uses

Local payment methods where they decide the sale, shipping profiles and rates per market rather than one global rate, and the customs side wired properly: HS codes, country of origin, and duties calculated at checkout, which Shopify opened to every plan on 2 February 2025. A parcel that surprises the buyer with a customs bill is a refused delivery and a chargeback.

Several URLs, one catalogue, no duplicates

Domains, subdomains or subfolders assigned per market, with hreflang and canonical consistent across them. Shopify emits hreflang automatically for every international domain or subfolder tied to a market and language, so the work is making sure the structure is one it can emit for, and repairing it by hand where the setup is separate stores instead.

Why it is done this way

Localisation is a checkout problem before it is a translation problem

Translated product pages with an untranslated checkout, a missing local payment method or an impossible shipping estimate lose the order at the last screen, where the buyer has already decided to spend money. Translation raises the number of people who reach checkout. The checkout decides how many of them pay. Doing the second half first is why some stores translate everything and see no change.

Duplicates are how the second market damages the first

Two country versions of the same page competing for the same search results is not a neutral outcome. Google picks one, often the wrong one, and the market you already had loses positions to the one you just opened. That is why the domain structure, hreflang and canonical get decided before the content is duplicated rather than repaired afterwards, when the rankings have already moved.

How it runs

// 01

The target countries with the reason for each: existing orders, existing search demand, or a distribution deal. Markets you cannot ship to profitably get named before they get built.

// 02

A written plan for structure and pricing: domain or subfolder per market, language per market, price adjustment and rounding, tax display, shipping and payment per country.

// 03

The build on the store, with each market checked from the country itself rather than from an admin toggle: price, tax line, payment options, shipping options, checkout language.

// 04

The search side: hreflang across all versions, canonical, sitemap, and a check that the market you already sell in did not lose anything.

// 05

A live pass in the first weeks: which markets convert, which are all traffic and no orders, and whether any of them is worth closing again.

Background

What selling into a second country actually requires

The price is not a conversion

A converted price is instantly recognisable as one, because it ends in the wrong place. Local buyers read prices by shape before they read them by value, so a number that lands where the exchange rate put it signals a foreign store even when the currency symbol is right. Markets allow a price adjustment and rounding rules per country, which is how a catalogue reads as locally priced. The same setting is where margin gets decided: rounding down in a weak currency and up in a strong one is a real revenue difference and it should be a deliberate choice rather than a default.

The checkout is where a foreign market is won or lost

The last screen is the one that is hardest to localise and the one most often left alone. It decides whether the buyer sees a payment method they trust, whether the tax line makes sense to them, whether delivery reads as plausible for their address, and whether the language holds all the way through. Everything upstream only moves people towards that screen. This is why stores that translate the entire catalogue and change nothing at checkout see traffic rise and orders stay flat.

Duties, HS codes and the parcel that gets refused

Cross-border orders carry a customs cost, and it either appears at checkout or on the buyer's doorstep. Shopify has offered duty and import tax calculation at checkout on every plan since 2 February 2025, and its accuracy depends on data most catalogues do not have: an HS code per product, a country of origin, and for some destinations a weight. Without them the estimate is wrong and the buyer pays the difference to the courier. That is the version of this that produces refused parcels, chargebacks and a review about hidden charges.

One catalogue, several addresses, no duplicate content

The technical risk of a second market is that the search engine treats it as a copy of the first. Shopify generates hreflang tags automatically for each international domain, subdomain or subfolder assigned to a market and a language, which handles the common case correctly. The cases that break are the ones outside that structure: separate stores per country, a market without a language assigned, or a migration that left old country URLs answering. Six storefronts in the portfolio run this way, into Poland, France, Germany, Italy, Austria and worldwide, which is enough of the same problem to know where it usually goes wrong.

Describe the project

Tell us what you have and what should change. Within two working days you get a written calculation: the scope broken into parts with a price against each, or the questions needed to write one. No discovery call in between.

Your name, email and message are used to answer you and nothing else. Privacy policy

Questions

Selling into several countries, asked and answered

Subfolders on the main domain are the default for good reasons: one catalogue, one admin, hreflang generated for you, and the authority the domain already has works for every market. Country domains make sense when the brand or the legal entity really is separate per country, or where local trust demands it. Separate stores are the expensive answer and are usually chosen for a reason that turns out to be solvable inside one store.

No, and translating everything first is a common way to spend the budget in the wrong order. Product titles, the buying path and the checkout matter most, followed by policies and shipping information. Blog archives can wait or stay in one language with the situation labelled honestly. What should never be half-done is the path from product page to paid order.

You decide, and the decision belongs in the checkout rather than in the customer's letterbox. Charging duties at checkout is available on every Shopify plan since February 2025, and it needs HS codes and country of origin on your products to be accurate. Some destinations, Switzerland among them, also want a product weight. The alternative is a courier invoicing your customer on delivery, which is where refused parcels come from.

The store has to display and charge the right amount, which is configuration work and part of this. Whether you are registered correctly, which scheme applies to you, and where you owe the money is a question for your accountant, not for a developer. This work covers the store behaving correctly against the setup you have, not advice about which setup you should have.

Fewer than you want to. Each market adds price maintenance, translated content that goes stale, support in another language and a returns path. Two countries done properly beat six half-configured, and the six are how a store ends up with expired promotions in Italian and a French shipping rate nobody has looked at since launch.

Tell us what needs building

Send what exists and what should change. You get a scope and a price back, not a discovery call.

A tool, not legal advice - no guarantee of compliance.