Shopify Markets Multi-Currency Setup: Checkout & FX QA
A technical guide to Shopify Markets multi-currency setup for US brands: exchange rates, rounding, checkout limits, duties, hreflang, and a launch QA checklist.

This is a setup and validation guide for brands selling internationally through a single Shopify store. The goal is to verify that each target market sees the intended currency from product page through checkout, that pricing and shipping rules behave as expected, and that localized URLs are crawlable. The decision to operate separate stores is a different architecture question; this guide concentrates on getting a Markets configuration ready for launch.
Test the actual checkout, not only the currency selector. A localized price on a product page does not establish that payment, discounts, taxes and refunds behave as intended for that country.
Key takeaways
- Local-currency display and local-currency charging are different things. Charging in the shopper’s currency depends on your payment provider, and with an unsupported gateway checkout converts back to your default currency.
- Pricing is a decision, not a default. Automatic rates with rounding, a percentage adjustment per market, or fixed prices per market each suit different catalogs, and the choice affects margin and price consistency.
- Markets can generate hreflang tags, canonical URLs, and sitemaps for you, but only when domains, languages, and content are configured cleanly. Your job is to avoid breaking that output with themes, apps, and redirects.
- Duties and import taxes are a separate workstream. With Markets alone you stay the merchant of record, and the compliance stays yours.
- Test with real carts in every market, including discounts, shipping, apps, and analytics, before you open the market to the public.
Table of Contents
- What Markets multi-currency actually does
- Requirements before you touch Markets
- Configuring markets and currencies
- Pricing: exchange rates, rounding, and fixed prices
- Checkout currency limitations and payment processing
- Duties, taxes, and who is responsible
- One store or several stores
- International SEO: domains, subfolders, hreflang, and canonicals
- Perspective: where these projects go wrong
- Setup checklist
- Troubleshooting common scenarios
- International launch QA process
- When to bring in help
- FAQ
- Sources
What Markets multi-currency actually does
Shopify Markets lets one store sell to different countries or regions with their own currency, language, domain, pricing, and shipping. Multi-currency is the piece that decides what the shopper sees and what the shopper pays.
When it works fully, customers browse, pay, and receive refunds in a familiar currency. When your payment provider does not support it, the storefront can still show local prices, but checkout converts to the store’s default currency and the customer is charged in that currency. That gap is the single most common source of “the price changed at checkout” complaints, so decide early which of the two experiences you are building.
The commercial case is straightforward. Shopify’s own guidance says showing prices in local currencies improves the customer experience and can help conversion in international markets. Treat that as a hypothesis to test in your own analytics, not a promise. We do not guarantee conversion outcomes for any store, and neither should a vendor.
Requirements before you touch Markets
Check these first. Each one can silently block the rest of the setup.
- Payment processor. To accept payments in multiple currencies, you need to use Shopify Payments or Adyen. With another processor, local currencies affect displayed prices only.
- Shipping rates. You need rates configured for every country or region you want to sell to. Markets can be activated only for countries and regions that have shipping rates.
- Plan and payout eligibility. If you want to receive payouts in more than one currency, Multi-Currency Payouts require the Advanced or Shopify Plus plan and specific location and bank account eligibility. This is separate from accepting local currencies at checkout.
- App inventory. List every app that reads or writes prices: reviews, upsells, subscriptions, loyalty, bundles, shipping bars, analytics. Some third-party apps might not work as expected with multiple currencies, and Shopify flags incompatible ones under Settings > Apps and sales channels.
Feature availability by plan changes over time, so confirm the current matrix on Shopify’s requirements page before you scope work.
Configuring markets and currencies
Market structure
Start with how many markets you really need. A common US-expansion pattern is a Canada market, a Europe market grouping euro countries, a UK market, and a rest-of-world market. Grouping countries shares some market-level settings, but a multi-country market can still display different local currencies by country. Catalogs, pricing and localization rules must be checked for each country. Split a country into its own market when it needs a different price, domain, language, or legal setup.
A market per country gives the most control and the most maintenance. A market per region gives the least maintenance and the most compromise. For most established brands we would start with the smallest number of markets that lets pricing and shipping make sense, then split when data says so.
Turning on a local currency
In Shopify admin, go to Markets, select the market, and click next to Currency. Select the currency, then choose automatic or manual exchange rates. Rounding can be activated in the same place.
Pricing: exchange rates, rounding, and fixed prices
There are three pricing models. Pick per market, not once for the whole store.
| Model | How it works | Best for | Watch out for |
|---|---|---|---|
| Automatic conversion | Shopify converts with the current market rate, updated regularly through the day | Large catalogs, fast launch | Prices drift with FX; fee is built into the price |
| Manual exchange rate | You set the rate yourself | Stable prices, controlled margin | You must revisit the rate as currencies move |
| Fixed prices per market | You enter the price for each product or variant | Hero SKUs, price-sensitive markets, local price points | Maintenance across variants and imports |
Payment-provider limitation: Shopify documents that manual exchange rates and some local-currency pricing controls require Shopify Payments. Adyen can process local-currency transactions for eligible approved merchants, but its feature compatibility and supported currencies must be checked separately before launch.
Exchange rates and the conversion fee
With automatic rates, a currency conversion fee of 1.5% or 2%, depending on the store’s location, is included in the price shown to the customer. Model this in your margin sheet before you set market adjustments, because it sits inside the displayed price rather than appearing as a separate line.
Price adjustments
Merchants can use percentage-based catalog price adjustments for international markets. A typical use is a Canada adjustment that reflects higher shipping and fulfillment cost, or a Europe adjustment that reflects VAT-inclusive pricing norms. Apply the adjustment first, then rounding, so you can reason about the final number.
Rounding
Exchange conversions can leave product prices and shipping rates with inconsistent endings. Shopify’s rounding rules let you round up to a set value so prices stay stable as the rate moves, and you can preview converted prices from the Markets page. Rounding rules do not apply to gift cards.
A practical convention: for euro and pound markets, round to a .99 or .00 ending that matches how local competitors price. Whatever you choose, apply it consistently so that a $48.00 product does not become 44.37 EUR on Monday and 44.52 EUR on Friday.
Fixed prices
Use fixed prices when conversion produces a price you would never choose by hand, or when a market has a distinct price architecture. Fixed prices override conversion for that product in that market. They are also the cleanest route for B2B price lists, since a wholesale buyer in Canada expects a stable negotiated number. Keep a spreadsheet of fixed prices under version control and import changes in batches so you can audit them.
Discounts
Fixed-amount discounts can be created only in the store’s default currency, and the amount is converted at checkout using current exchange rates. A $10 off code therefore becomes a floating amount abroad. If you need exact local discounts, use percentage discounts or test your discount logic market by market.
Checkout currency limitations and payment processing
Three behaviors cause most checkout surprises.
- Processor mismatch. Using a processor other than Shopify Payments or Adyen means checkout converts prices to your default currency. The shopper sees euros on the product page and dollars at payment.
- Bank fees you do not control. A customer’s bank or card issuer might charge international transaction fees even when the customer pays in local currency. Those fees are set and collected by the bank, not Shopify. Put a line in your shipping and returns FAQ so support is not surprised.
- Payout currency. Charging in euros does not mean you are paid in euros. Without Multi-Currency Payouts, settlement follows your store currency. Finance should decide before launch whether to hold foreign balances.
Refunds follow the currency the customer paid in when local-currency payment is active, which matters for reconciliation. Ask your finance lead to confirm how refunds appear in your accounting export before the first return arrives.
Duties, taxes, and who is responsible
With Shopify Markets on its own, you remain the merchant of record, so tax registration, duties, and customs compliance stay your responsibility. Shopify’s Managed Markets offering builds on Markets by adding Global-e as merchant of record, which takes on those responsibilities for a per-order fee. Shopify also documents a separate route for having duties and import taxes calculated at checkout while you remain merchant of record.
The decision comes down to three questions:
- Do you want to register for VAT or GST in destination markets and handle customs paperwork? If yes, Markets plus duty and import tax calculation fits.
- Do you want to outsource that burden and accept a per-order fee and less control over the post-purchase experience? Managed Markets is the documented alternative. Check eligibility and the current fee on Shopify’s page, since both change.
- Do you want delivered-duty-paid pricing, where the shopper sees one total? Whichever route you choose, test that the duty-inclusive total shows at checkout in each market.
Send your tax and customs questions to your accountant or a customs broker. This guide covers configuration, not tax advice.
One store or several stores
For most international launches, Shopify Markets can localize currency, pricing and language within one store. Multiple stores introduce independent checkout, app, reporting and inventory operations; use them only when legal, operational or brand separation requires it. See our Shopify multi-store architecture guide for the decision framework and inventory sync for reconciliation mechanics.
International SEO: domains, subfolders, hreflang, and canonicals
Shopify’s international SEO documentation says that when markets are configured with domains, languages, and localized content, the technical requirements search engines expect, including hreflang tags, canonical URLs, sitemaps, and crawler access, are handled automatically. That is a strong default. It is also conditional on your configuration being clean.
Choosing a URL structure
You can use subfolders, subdomains, or top-level domains for each market. Our default for an established US brand entering Canada and Europe is subfolders on the primary domain (for example /en-ca/ and /fr-ca/), because authority consolidates on one domain and there is one property to maintain. Country-code domains make sense when you have local brand equity, local legal requirements, or a team that will run the market independently. Subdomains rarely beat the other two.
If you want to go deeper on the fundamentals, our technical SEO cleanup service page covers how we audit crawl, indexation, and structured data, and we keep this guide to the Markets-specific parts.
Language versus currency
Currency and language are separate controls. A Canadian market can show CAD prices in English and French. A euro market spans several languages. Do not assume one URL per currency: search engines care about language and region targets, while shoppers care about currency.
Hreflang
Shopify outputs hreflang annotations for published market and language combinations. What you verify:
- Every localized URL references itself and each alternate, and the references are reciprocal.
- Language and region codes match the actual content (en-CA, fr-CA, en-GB, de-DE).
- An x-default points at your primary experience.
- A market you have not published, or have password-protected, is not referenced.
If your theme or an SEO app injects its own hreflang tags, you can end up with two sets that conflict. Pick one source. We usually leave Shopify’s native output in place and remove the app’s.
Canonicals
Each localized page should canonicalize to itself, not to the US page. A theme that hardcodes the canonical to the primary domain, or a redirect app that forces everyone to /, will collapse your international pages and undo the hreflang. View source on one product page per market and confirm.
Translated content and duplicate content
If a market uses the same language as another, such as the US, Canada, and UK in English, the pages will be near-identical. That is acceptable when hreflang tells search engines which version serves which region, but you reduce risk by localizing what actually differs: currency, spelling, shipping and returns copy, sizing, and legal text. Shopify’s own guidance notes customers are more likely to complete a purchase when they can browse and check out in their preferred language, and that a wrong price format can create confusion.
For translations, check that product titles, descriptions, metafields, meta titles, meta descriptions, alt text, URL handles, and navigation are all translated, not only body copy. Untranslated meta fields are a common leftover that produces mixed-language search snippets.
Geolocation redirects
Automatic redirects based on IP can stop crawlers from reaching localized pages, since crawlers mostly come from US IP addresses. Prefer a dismissible banner or a market selector that suggests the right store and never forces the redirect.
Analytics segmentation
Decide on reporting before launch:
- GA4: build segments or a custom dimension for market and currency, and confirm purchase events send the transaction currency. Check that the value parameter matches the currency the customer paid.
- Ad platforms: if you run conversion tracking or server-side events, verify the currency sent matches the order. Our article on the Shopify Conversions API explains the event pipeline.
- Search Console: verify the domain property so subfolders roll up, and filter by country and URL path to read each market.
- Finance reports: reconcile by presentment currency and settlement currency separately.
Perspective: where these projects go wrong
We treat international setup as an engineering problem with a measurable finish line. In our experience at Shugert, the settings inside Markets are rarely what fail. The failures sit in the layer around them: a theme with a hardcoded currency symbol, an app that prints a price from a cached value, a canonical tag written years ago for a single-market store. That is why we scope this kind of work with acceptance criteria per market, release it in a controlled environment, and compare before-and-after data rather than trusting that the admin toggles did what they say.
We also push back on launching every market at once. Open one market, run it through the QA process below, and then replicate. A mistake found in Canada costs a fix. The same mistake found in twelve markets costs a quarter.
Setup checklist
- Confirm you use Shopify Payments or Adyen, and note any plan requirement for payouts.
- Inventory every app that touches price, cart, checkout, or analytics.
- Define markets: countries, currency, language, domain or subfolder.
- Configure shipping rates for every country in each market.
- Choose the pricing model per market: automatic, manual rate, or fixed.
- Apply price adjustments, then rounding rules, and preview converted prices.
- Set fixed prices for hero products and B2B price lists.
- Decide your duty and tax route: Markets plus duty calculation, or Managed Markets.
- Translate all content types including metadata and handles.
- Verify hreflang, canonicals, and sitemaps on one page per template per market.
- Configure analytics dimensions and ad conversion currency.
- Run the QA process, fix findings, then publish the market.
Troubleshooting common scenarios
Local currency shows on the product page but checkout is in USD. Check the payment processor first. Anything other than Shopify Payments or Adyen means checkout converts to the default currency.
A country will not activate in a market. Look at shipping. Only regions with shipping rates can be activated as markets.
A price in the cart or a widget is wrong. Suspect an app. Shopify recommends testing apps that send or display monetary values, since customers might otherwise see incorrect amounts. Review incompatible apps in admin and check theme code that formats money with a hardcoded symbol or the wrong Liquid money filter.
Discount codes give odd amounts abroad. Fixed-amount codes are created in your default currency and converted at checkout. Switch to percentage codes or accept a floating local value.
Prices keep changing by a few cents. You are on automatic rates without rounding. Turn on rounding, or move to a manual rate.
Wrong language or region in search results. Inspect hreflang and canonicals on the live page, look for duplicate tag sources from apps, and confirm no geo-redirect is blocking crawlers.
Customers complain about extra charges. Bank-side international fees are outside Shopify’s control. Add a note to your FAQ and checkout help text.
Country-by-country currency acceptance test
Record the result for each launch country instead of treating one successful checkout as proof that all markets work. Use the same product and an eligible local shipping address for each test, then document differences.
- Storefront: Record country, language, displayed currency, product price and price formatting on the product and cart pages.
- Checkout: Confirm the checkout currency, payment-method eligibility, discount behavior, shipping rate, tax and duty presentation for that country.
- Payment and refund: Run an approved test transaction where your payment setup permits it; verify the transaction currency, settlement expectations and refund handling without assuming the payout currency matches the buyer's currency.
- Search: Inspect the localized URL, canonical and hreflang output, and confirm that geo-redirects do not prevent crawlers from reaching country-specific pages.
- Evidence: Save screenshots, order IDs and pass/fail results by market; do not launch paid campaigns for a country with unresolved checkout or pricing mismatches.
International launch QA process
Shopify’s testing guidance is to browse the store, create test orders, and simulate payment with test credit card numbers to confirm prices and customizations work. Extend that into a repeatable protocol, run per market:
- Price audit. Sample at least 20 products across collections, including variants, bundles, and sale items. Compare storefront price, cart price, and checkout total against your pricing sheet.
- Currency display. Check symbol, decimal and thousands separators, and currency code on product, collection, search, cart, drawer, and checkout pages.
- Shipping and tax. Run carts to a domestic and a remote address. Confirm shipping rates, thresholds for free shipping, and any duty or tax line.
- Discounts and gift cards. Test a percentage code, a fixed-amount code, and a gift card.
- Test orders. Place test orders with a test card, then confirm the order record, currency, payment, and refund behavior in admin.
- Apps. Walk every app-driven surface: reviews, upsells, subscriptions, pop-ups, emails. Check transactional emails for the right currency.
- SEO. Crawl the localized subfolders or domains. Check status codes, canonicals, hreflang reciprocity, sitemap entries, and indexability.
- Analytics. Confirm purchase events carry the correct currency and value, and that market is segmentable.
- Performance. Re-test Core Web Vitals on localized templates, since added scripts for selectors and translation can slow pages. Our performance work uses before-and-after measurement for this reason.
- Rollback plan. Know how to unpublish a market quickly if something fails.
When to bring in help
If your theme is heavily customized, you run B2B price lists, or you are on Shopify Plus with checkout extensibility requirements, the setup stops being a settings exercise. Shugert is a senior-led Shopify and Shopify Plus engineering partner. Our fixed-price Shopify Performance Fix runs $2,500 to $4,000, our CRO and Technical SEO Fix runs $3,000 to $5,000, and Custom Development and Replatforming starts from $5,000, all listed on our pricing page. If you want an international launch scoped against your theme and apps, request a fixed-price quote.
FAQ
Do I need Shopify Payments to sell in multiple currencies?
To accept payments in multiple currencies you need Shopify Payments or Adyen. With another processor, local currencies change the displayed prices, but checkout converts to your default currency and the customer is charged in it.
Does Shopify Markets handle hreflang automatically?
Yes, when markets are configured with domains, languages, and localized content, Shopify generates hreflang tags, canonical URLs, and sitemaps. You still need to check the live output, especially if a theme or SEO app adds its own tags.
Are subfolders or country domains better for international SEO on Shopify?
Shopify supports subfolders, subdomains, and top-level domains. Subfolders are usually the simpler choice for an established brand because authority stays on one domain, while country domains suit markets with local brand strength or separate operations.
Who pays duties and import taxes?
With Markets alone, you are the merchant of record, so duties, taxes, and customs compliance are your responsibility. Managed Markets moves those duties to Global-e as merchant of record for a per-order fee.
Can I be paid in my customers’ currencies?
Only through Multi-Currency Payouts, which require the Advanced or Shopify Plus plan plus eligible location and bank account. Otherwise you are paid in your store currency even when customers pay in theirs.
Sources
- Shopify Help Center: Setting up currencies for markets
- Shopify Help Center: Requirements and considerations for using markets
- Shopify Help Center: Multi-Currency Payouts
- Shopify Help Center: Testing your multiple currency setup
- Shopify Help Center: Rounding prices
- Shopify Help Center: Guidelines and restrictions for international pricing
- Shopify Help Center: Overview of Managed Markets
- Shopify Help Center: International SEO for markets
- Shopify Help Center: Setting up localization for markets