Skip to main content

Shopify Markets & Multi-Currency Setup for Vertex Theme

Vertex is fully wired to Shopify Markets out of the box โ€” no apps, no third-party currency converters, no FX scripts. If you sell to procurement teams across multiple countries, dealer accounts in different currencies, or operate trade catalogs for separate regions, this guide takes you from a single-market starter store to a polished multi-market B2B and B2C storefront in roughly 30 minutes.

B2B first

B2B buyers in Shopify are pinned to a single market by their company assignment โ€” they cannot freely switch currencies. Vertex still renders the currency pill for them (informational) so they always see which currency they are paying in at a glance. Procurement teams love this โ€” it removes one round-trip email per quote. The dropdown will just contain one option.


What "Markets" actually controlsโ€‹

Shopify Markets is the native subsystem that controls, per country or region group:

  • Currency the buyer sees and pays in (auto-converted from your store currency, OR overridden via a market-specific price list)
  • Language the storefront renders in (Vertex ships English, French, Italian, German, Spanish)
  • Pricing strategy โ€” automatic conversion at live FX rates with optional adjustment percentage, OR a fixed manual price list per market
  • Domain or subfolder โ€” example.com/fr-ca/ or a wholly separate .ca domain
  • Geolocation redirect โ€” auto-suggest or auto-redirect non-matching visitors to their nearest market
  • Tax and duties treatment (in markets that support DDP, like Shopify Markets Pro)

Vertex's job is to render this configuration faithfully: the currency pill, the language pill, the hreflang tags, the per-market price formatting, and the B2B greeting bar all reflect your live Markets configuration on every page load.


Prerequisitesโ€‹

RequirementWhy
Shopify plan: Basic or higherMarkets is included on every paid plan, but you need at least Basic for secondary markets. Shopify Plus unlocks unlimited markets + Markets Pro (duties + DDP).
At least one Secondary market publishedThe currency pill needs somewhere to switch to. Even without a secondary market, the pill itself still renders for B2B buyers (see Special case: B2B + Markets below).
Theme published OR previewedSome Markets configuration (geolocation redirect, default market) only renders correctly when the theme is published or being previewed via the theme editor.
Locales installedIf you want a language switcher (not just a currency switcher), publish the corresponding locale in Settings โ–ธ Languages. Vertex ships full UI translations for English, French, Italian, German, and Spanish.
Markets is free

Markets โ€” including multi-currency and multi-language โ€” is included on every Shopify plan. You only pay for FX conversion via Shopify Payments fees (already part of your transaction fee), not for the Markets feature itself. Duties + DDP collection (Markets Pro) is the paid add-on.


Step-by-step: enable Marketsโ€‹

Step 1 โ€” Open Markets in Shopify adminโ€‹

In your Shopify admin, go to Settings โ–ธ Markets.

You'll land on a page that lists your Primary market (created automatically when you opened your store, usually your country of incorporation) plus any Secondary markets you've added.

Shopify admin: Settings โ†’ Markets

Step 2 โ€” Configure the Primary marketโ€‹

Click into your Primary market. Confirm:

  • Country / region is correct (this drives default tax and duties)
  • Currency is your store currency (cannot be changed once orders exist)
  • Language is your default language (the locale flagged "Default" in Settings โ–ธ Languages)

This is the fallback market โ€” every visitor who is not matched to a secondary market sees Primary pricing and language.

Step 3 โ€” Add a Secondary marketโ€‹

Click Add market in the top right.

For each new market, configure:

FieldWhat to enter
Market nameInternal label โ€” "European Union", "Canada", "Asia-Pacific Wholesale"
Countries / regionsOne or more countries that share this market's pricing, currency, and language. EU buyers can share one market; UK and EU could be split if you want different VAT treatment.
CurrencyThe local currency (e.g., EUR for EU, GBP for UK, CAD for Canada). Shopify will auto-convert from your store currency at live rates unless you upload a manual price list.
LanguagesOne or more locales published in Settings โ–ธ Languages. Default language for this market is auto-detected from the country if you have a matching locale.
Pricing strategyAdjust prices by % from store currency (e.g., +5% to cover FX risk) OR Use a manual price list for that market.
Domain or subfolderexample.com/fr-fr/ (subfolder, recommended for SEO) OR a separate ccTLD like example.fr.
Use subfolders for SEO

Subfolder URLs (example.com/fr-fr/) consolidate domain authority, are auto-paired with hreflang tags by Vertex, and require zero DNS work. Separate ccTLD domains split your authority and require manual hreflang setup. We recommend subfolders unless you have a strong tax or legal reason to use ccTLDs.

Markets โ†’ Add market form

Step 4 โ€” Choose your pricing strategyโ€‹

You have three options for prices in each secondary market:

Option A โ€” Auto-convert from store currency (default) Shopify converts your store-currency prices to the market currency at the live FX rate, rounded to your chosen format (e.g., .99 endings). Updated once per day. Free; no manual upkeep.

Option B โ€” Auto-convert + adjustment Same as A, plus a percentage adjustment (e.g., +5%, -10%) applied to every product in this market. Useful when you want to absorb FX risk or run a regional discount or markup uniformly.

Option C โ€” Manual price list per market Upload a CSV (or use the admin UI) with explicit prices per variant per market. Required when you have fixed contractual pricing in a region โ€” common for B2B distributors with negotiated regional dealer pricing.

B2B catalogs override Market pricing

If a B2B buyer is signed in and their company has a catalog assigned, the catalog's prices take precedence over Market pricing for that buyer. Markets pricing is the fallback when a B2B buyer has no catalog assigned, or for B2C and guest shoppers in that market.

Step 5 โ€” (Optional) Enable Geolocation redirectโ€‹

Still in Settings โ–ธ Markets, scroll to the Geolocation card.

Two choices:

  • Recommend a different market โ€” shows a small bar at the top of the storefront ("Looks like you're in France. Visit our French store?") with a Visit / Stay choice. Less aggressive โ€” recommended for B2B because some procurement buyers deliberately use a US storefront to compare prices.
  • Automatically redirect โ€” server-side redirects the visitor to their nearest market with no choice. Higher conversion in pure B2C, but can frustrate B2B buyers and bots.

Pick Recommend unless you have a strong reason otherwise. Vertex respects whichever you choose โ€” no theme changes required.

Step 6 โ€” Publish your secondary marketsโ€‹

Each market has an Active / Inactive toggle in the markets list. Toggle to Active when you're ready for buyers to see it. The currency pill in Vertex will start surfacing the new market's currency in its dropdown immediately on the next page load.


How Vertex renders the switcherโ€‹

Vertex's currency and language pills appear in two places:

  1. Desktop header (โ‰ฅ1170px) โ€” inline in the amber B2B greeting bar for signed-in B2B buyers, OR inline in the main white header for guests and B2C buyers
  2. Mobile drawer and tablet (<1170px) โ€” at the top of the hamburger drawer, as two pills in a 2-column grid for one-handed reach

B2B greeting bar with currency pill (desktop) Mobile homepage (drawer with lang + currency pills)

Pill anatomyโ€‹

Each pill is a compact rounded button with three elements:

  • Circular flag avatar โ€” the country's flag
  • 2-line text stack โ€” eyebrow label ("Currency" or "Language") above the ISO code ("EUR", "FR")
  • Chevron โ€” indicates the pill opens a dropdown panel

Tapping a pill opens a custom dropdown that highlights the currently selected option, closes on outside click or Escape, animates in cleanly, and is fully keyboard accessible. Vertex deliberately ships zero native browser dropdowns in the chrome โ€” everything matches your storefront's design language.

Why the pill always rendersโ€‹

Vertex shows the currency pill even on stores with one market and for B2B buyers pinned to a single market. The dropdown will simply have one option in those cases.

This is deliberate. B2B buyers paying in EUR want to see EUR on every page even if they cannot switch โ€” it's reassurance that they are not about to be charged USD. Procurement teams have flagged silent-currency-switch concerns in user testing repeatedly; surfacing the currency badge prevents that confusion.

If you want to hide the currency pill entirely (e.g., you have one market and want to declutter), open Customize, click the Header section, and toggle off Show currency switcher (under Localization switchers). The language pill (Show language switcher) is independent.


Special case: B2B + Marketsโ€‹

Shopify B2B has a strict rule: every company is pinned to exactly one market. When you create a company in Customers โ–ธ Companies, you choose the market it belongs to. Buyers in that company will always see that market's currency, language, and catalog โ€” they cannot switch.

Vertex respects this end-to-end:

What renders for B2B buyerBehavior
Currency pillRenders. Dropdown has 1 option (their market's currency). Shown as the currency they will be charged at checkout.
Language pillRenders if more than one language is published in their market. Otherwise renders with a single option.
Ship-to switcherRenders if the buyer has more than one ship-to address authorized for their company. Independent of market.
Company switcherRenders only if the buyer is attached to more than one company (rare; usually accounts-payable staff at parent companies).
Volume pricing, NET-30, tax-exemptAll drawn from the company's market and catalog assignment. Unchanged by anything in the localization switchers.
Do not remove the B2B currency pill

If a buyer asks "why is my currency pill not changing currency?", the answer is because B2B buyers are pinned, not because the pill is broken. Removing the pill to avoid the question creates a worse problem โ€” buyers no longer see what currency they are paying in. Leave it on.


Verifying your setupโ€‹

After publishing Markets and the Vertex theme, run through this checklist:

  1. Open the storefront in an incognito window. You should see your Primary market by default (USD if US, GBP if UK, etc.).
  2. Click the currency pill in the desktop header. All your published markets should appear. Selecting one should reload the page in the new currency.
  3. Switch to a mobile breakpoint (or open on a real phone). Open the hamburger drawer. The currency and language pills should appear at the top of the drawer in a 2-column grid.
  4. Sign in as a test B2B buyer. The pill should now render in the amber greeting bar (desktop) or stay in the drawer (mobile). The dropdown should show only the buyer's market currency.
  5. Inspect the page HTML. Look for <link rel="alternate" hreflang="fr-fr" href="https://example.com/fr-fr/" /> tags in <head> โ€” one per published locale. Vertex emits these automatically.
  6. Open Google Search Console โ–ธ International targeting. After Google recrawls (1โ€“14 days), your hreflang tags should appear validated with no errors.

Troubleshootingโ€‹

"My currency pill is not showing"โ€‹

Most common causes, ordered by frequency:

  1. Only one market published. The pill does render with one option โ€” make sure you're looking in the right spot (greeting bar for B2B, main header for guests, drawer for mobile or tablet).
  2. Currency switcher toggled off in the Header section. Open Customize, click the Header section, and confirm Show currency switcher (under Localization switchers) is on.
  3. Storefront mode set to "B2B-only" with no B2B buyer signed in. B2B-only mode hides the main header for guests entirely. Sign in or switch to Hybrid.
  4. Theme not published. Markets only renders correctly on the published theme. Preview theme works for the theme editor but does not always render Markets correctly.
  5. Caching. Hard-refresh (Ctrl+Shift+R) or open in incognito.

"Prices are not converting to local currency"โ€‹

  1. Market is Inactive. Toggle to Active in Settings โ–ธ Markets.
  2. You're previewing the theme on a Markets-disabled URL. Currency conversion only happens on the published theme via the buyer's actual market URL (e.g., /fr-fr/).
  3. B2B catalog override. B2B buyers with a catalog assigned see catalog prices, not Markets prices. This is correct behavior.
  4. Cached storefront. Shopify caches storefronts aggressively. Wait 5 minutes or hard-refresh.

"hreflang tags missing"โ€‹

  1. Languages not published. Go to Settings โ–ธ Languages and ensure each language is Published, not just Visible.
  2. Theme too old. hreflang tags ship in Vertex v1.0.0 and later. Check your theme version in Online Store โ–ธ Themes.

"Geolocation redirect is too aggressive"โ€‹

Switch from Automatically redirect to Recommend a different market in Settings โ–ธ Markets โ–ธ Geolocation. The latter shows a polite "Visit our French store?" bar instead of a hard redirect.

"B2B buyer sees the wrong currency"โ€‹

The buyer's currency is determined by the company's market assignment in Customers โ–ธ Companies โ–ธ [Company] โ–ธ Market. Change the market here, not in the theme.


SEO impact of multi-market setupโ€‹

A well-configured multi-market storefront is a strong international SEO signal. Vertex automatically emits:

  • <link rel="alternate" hreflang="xx-yy" ... /> for every published locale in your store. Tells Google "this same page is available at this URL in this language for this region". Critical for ranking in localized SERPs.
  • <html lang="xx" dir="ltr|rtl"> based on the active locale. Helps screen readers and browser translation tools recognize the language.
  • <meta property="og:locale" content="xx_YY"> for the active locale plus alternates for siblings. Drives correct Open Graph previews per region.
  • Localized JSON-LD โ€” Product, BreadcrumbList, Organization, and FAQPage schema all use the locally rendered strings (names, descriptions, FAQ answers) โ€” not the master English copy.

Result: Google can serve French buyers your /fr-fr/ URL, German buyers your /de-de/ URL, and Spanish buyers your /es-es/ URL โ€” without ever showing them the English version unless they explicitly request it.

Recommend currency in pricing requests

If you do international B2B, mention the buyer's expected currency on your RFQ form. Vertex's RFQ page does not auto-detect currency, so you'll want a free-text "Quote currency" field if you negotiate in multiple currencies regularly.



Summaryโ€‹

  • Shopify Markets is the native subsystem that controls per-market currency, language, pricing, and domains. Free on every paid plan.
  • Vertex's currency pill renders even for single-market and single-option B2B scenarios โ€” informational by design.
  • B2B buyers are pinned to one market by their company; the pill becomes a "current currency" badge.
  • hreflang tags emit automatically for every published locale. Helps Google serve international searchers the right URL.
  • Manual price lists override auto-conversion when you need fixed regional dealer pricing.
  • Geolocation should be set to Recommend, not Auto-redirect, in B2B contexts.

Time to first multi-currency render: about 30 minutes including theme publish and market verification.