Markets, currencies and languages
Sell in several countries with Shopify Markets. Covers the country and currency switcher, the pickup location switcher, what changes with the country, and languages with Webflow Localization or Weglot.
Smootify shows each visitor the Shopify market of their country: its currency, its prices and the products it sells. You set up the markets in Shopify. On the site, a country switcher lets the visitor change country, and the language follows Webflow Localization or Weglot. This page says what happens when the country changes and what you build for it.
Note
Set up your markets in Shopify first, under Settings > Markets: the countries, their currencies and the products each market sells. Smootify lists only the countries of your markets. Product translations also come from Shopify, for example from the Translate & Adapt app.
How Smootify picks the country
From the first of these that gives one, in this order:
1. The visitor's choice
- From
- A country switcher, or Webflow's locale switcher.
- Kept
- In the visitor's browser: it wins from then on.
2. The page's language
- From
- A Webflow locale that names a country, such as
fr-CA, or the language Weglot shows.
3. The browser's language
- From
- The browser's language, such as
it-ITfor Italy. - Needs
selectMarketBasedOnBrowserLanguage, off by default.
4. Your store's primary market
- From
- Shopify, when nothing above gives a country.
To turn on the browser’s language, paste this in your site’s custom code, in the head, before the Smootify loader:
<script>
window.SmootifyUserOptions = { selectMarketBasedOnBrowserLanguage: true };
</script>If you already have a SmootifyUserOptions script, add the line to it instead: a second script replaces the first. To suggest the right country to a new visitor, see Market suggestion.
What changes with the country
- Prices and currency. Every product, card and the cart show the prices Shopify has for that market, in its currency. They reload in place, without reloading the page, and the cart moves to the new country.
- Taxes. Prices are shown as Shopify sends them for the market. Whether they include taxes is a setting of your Shopify store.
- Sales in Europe. When your primary market is outside the European Economic Area, Shopify hides the compare-at prices it converts for EEA countries. The reason is the EU Omnibus rule: a price reduction shown in the EEA must also show the lowest price of the 30 days before it, the “Omnibus price”, which a converted compare-at price does not carry. That is why the setting is on by default. There a product on sale shows only its price: no strikethrough, and
condition="on-sale"stays hidden. To show them, untick Hide compare-at prices for European Economic Area (EEA) customers under Settings > Markets > Preferences, and show the Omnibus price next to every reduction in those countries. - Products the market does not sell. Their
smootify-productstays empty and gets the classw-dyn-bind-empty. Smootify does not redirect the visitor. Style the class, or hide the block, for those products. - Search engines. The product’s structured data carries the price and currency of the current market. See SEO and structured data.
1. Add a country switcher
Add a Custom element with the tag country-switcher, anywhere on the page, usually in the navbar. Put a Webflow Dropdown inside it.
The Dropdown has two parts, each with its own job:
The toggle: the current country
- Name
- Goes into the first element without
data-prop, the dropdown icon aside. Put a Text block there, first: any other element before it, such as a wrapper, would have its content replaced. - Values
- Elements with
data-propshow the current country.
The links: one per country
- Template
- The first Dropdown link, copied once for each country of your markets. The other links you designed are removed.
- Current
- Its link gets the class
w--current. - A pick
- Changes the country and closes the dropdown.
Inside the link and the toggle, the elements with data-prop show a country:
data-prop="name": the country’s name;data-prop="iso-code": its code, such asIT;data-prop="flag": its flag, on an Image, or as the background of any other element;data-prop="currency-iso-code","currency-symbol","currency-name": its currency.
The currency elsewhere. A Custom element with the tag currency-code, anywhere on the page, shows the current currency code, for example in the footer. It is filled only while the page has a country-switcher.
A store that sells in one country. With a single country in your Shopify markets there is nothing to pick, so country-switcher removes itself. It fills the currency-code elements first, and the ones outside it stay. Add a second country in Shopify and the switcher shows, with nothing to change on the site.
A popover instead of the Dropdown. country-switcher also works with a popover: the first link or button inside the popover is the template. See Popovers. With both inside, Smootify uses the Dropdown.
Country and language together. When the country you pick has the same code as one of your store’s languages, such as IT for Italy and Italian, the language changes too. With Webflow Localization, the country switcher goes through Webflow:
- it opens the page of your locale for that language, so the address changes too, and from a product page it lands on the same product. A locale with the country, such as
it-IT, comes before one without, such asit; - if your site has no locale for that language, only the country changes;
- if the visitor is already on that locale, only the country changes.
Every value is in country switcher attributes.
2. Add a pickup location switcher
If your store offers local pickup, a location-switcher lets the visitor choose their store once, for the whole site. It is built like the country switcher, on a Dropdown or a popover, and the first link is the template of each location.
location="name"andlocation="address"show a location, in the links and in the toggle.- It lists your Shopify locations that offer local pickup. When the store has none, it is removed.
- The choice is remembered in the visitor’s browser and sent to Shopify as their preferred location. The pickup block of product pages then leaves it out of the list of other stores: see Pickup and store locator.
3. Languages
Webflow Localization. Smootify reads the locale of the page and asks Shopify for the product texts in that language. Shop policies, metaobjects and Magic Boxes come in that language and in the visitor’s market too, so an entry translated in Shopify, for example with Translate & Adapt, shows translated. Webflow’s locale switcher then changes the Shopify language too, and the country when the locale names one, such as en-GB, before it opens the page. On product and collection pages, its links use the handle translated in Shopify, and Smootify adds the alternate links search engines read when the page is missing them. Webflow Localization needs a Webflow site plan that includes it.
Warning
With Webflow Localization, the language changes only through Webflow’s locale switcher, which also changes the page’s address. Do not add another language picker: the page would stay in its Webflow locale, and the page and the Shopify texts would end up in different languages. The country switcher already goes through Webflow’s locales.
Weglot. Smootify waits until Weglot has translated the page, then asks Shopify in that language, so prices and texts arrive in the right language the first time. Weglot’s language subdomains, such as fr.example.com, are covered by the licence of example.com.
For developers, the country and the language can also be changed from code: see JavaScript API.
Selling in the EU
Since 19 June 2026, a store that sells online to consumers in the EU must offer a withdrawal button, which works without logging in. A Webflow site can host it on a page of its own or link to a withdrawal app’s page on Shopify: see EU right of withdrawal.
Coming from 1.x
- Products out of the market are no longer redirected: their block is hidden, and
condition="product-unavailable"shows your own message on the page, such as one with a country switcher. See Build the product page. location-switcherreadslocation="name"andlocation="address"in the toggle too, where 1.x readdata-prop.
Before you publish
Check these first
- The switcher is gone, or lists no country. Your store sells in one country only, so there is nothing to switch. Add markets under Settings > Markets.
- The switcher disappears. It has no Dropdown link, or no link in its popover: the first link is the template.
- The toggle loses its content. Its first element without
data-propgets the country’s name. Put the name’s Text block first. - The currency in the footer never changes.
currency-codeworks only while the page has acountry-switcher. - Sales show everywhere but in Europe. Shopify hides converted compare-at prices from EEA countries when your primary market is outside the EEA, because they lack the Omnibus price: see Sales in Europe above.
- Everything is sold out in one country. No shipping zone covers that country, and Shopify reports the products as unavailable there. Add the country to a shipping zone under Settings > Shipping and delivery.
- A product block is empty in one country. That market does not sell the product. Add it to the market’s catalog in Shopify, or design for the empty block.
- The language changes with the country. The country has the same code as one of your languages.
- Webflow’s locale switcher is missing. Webflow Localization needs a site plan that includes it.
- The page and the products are in different languages. With Webflow Localization, the language was changed by something other than Webflow’s locale switcher, such as a language picker of your own or custom code. Change it only with Webflow’s locale switcher.