Shopify Development

Selling Internationally on Shopify: The Technical Setup Guide

11 min read

Selling internationally on Shopify is one of those projects that sounds straightforward until you actually start doing it. The Shopify admin makes it look simple — enable a market, set some prices, and away you go. In practice, there are dozens of technical decisions that affect everything from your SEO visibility in target markets to whether customers see unexpected duties charges on their doorstep. Get these wrong and you will haemorrhage conversions in exactly the markets you are trying to grow.

I have set up international selling for Shopify stores ranging from single-market expansions into Europe to full multi-region rollouts across North America, the EU, and APAC. This guide covers the technical decisions that matter most — and the ones that are hardest to change later.


Shopify Markets: The Foundation

Shopify Markets is Shopify's native internationalisation framework, and it should be the starting point for any cross-border strategy. Markets lets you group countries into regions, assign custom pricing, configure duties and tax behavior, and manage domain routing — all from a centralised admin. Before Markets existed, merchants cobbled this together with expansion stores or third-party apps, and it was a maintenance nightmare.

The first decision is how to segment your markets. You can group countries by region (e.g., an "EU" market covering all 27 member states) or create individual markets for high-priority countries. I generally recommend starting with regional groupings and splitting out individual country markets only when you need country-specific pricing or product availability. Every market you create adds configuration overhead, so be intentional.

One thing that catches people out: Shopify Markets uses geo-IP detection to suggest the correct market to visitors, but it does not force redirects by default. This is deliberate — forced redirects break Google crawling and create poor experiences for VPN users. Instead, Shopify shows a country/region selector prompt. You can customize this behavior in your theme, but resist the temptation to hard-redirect based on IP alone.


International Domain Strategy

This is the single most consequential decision for international SEO. Shopify gives you three options for targeting different markets, and each has fundamentally different implications for search visibility, link equity, and operational complexity.

Approach
SEO Impact
Complexity
Shopify Support

ccTLDs

shop.co.uk, shop.de

Strongest geo-signal. Separate domain authority per market.
High
Supported via Markets

Subdomains

uk.shop.com, de.shop.com

Moderate geo-signal. Link equity partially shared.
Medium
Supported via Markets

Subfolders

shop.com/en-gb/, shop.com/de/

Consolidates all link equity. Easiest hreflang setup.
Low
Default in Markets

For most Shopify stores, subfolders offer the best balance of SEO benefit and operational simplicity.

My recommendation for the vast majority of Shopify stores: use subfolders. They inherit the full domain authority of your primary domain, they are the simplest to configure in Shopify Markets, and Shopify handles hreflang tag generation automatically when you use them. Country-code top-level domains (ccTLDs) like .co.uk or .de send the strongest geo-targeting signal to search engines, but you are starting from zero domain authority in each market and managing multiple domains operationally.

The only scenario where I would recommend ccTLDs for a Shopify store is if you already own established domains with existing backlink profiles in target markets, or if brand perception in a specific country requires a local domain (this matters more in Germany and Japan than it does in most English-speaking markets). Subdomains sit in an awkward middle ground — Google treats them as separate sites for many purposes, so you lose the link equity consolidation of subfolders without gaining the strong geo-signal of ccTLDs.


Hreflang Implementation

Hreflang tags tell search engines which version of a page to show to users in different regions and languages. Without them, Google might show your US product pages to UK searchers, or your English content to German-speaking customers. Shopify Markets generates these automatically for subfolder-based setups, but you need to understand what is happening under the hood to audit and troubleshoot.

Hreflang tag flow for a multi-market product page

shop.com/products/item ← x-default (en-US)
shop.com/en-gb/products/item hreflang="en-GB"
shop.com/de/products/item hreflang="de"
shop.com/fr/products/item hreflang="fr"
shop.com/ja/products/item hreflang="ja"

Key rule: Every page must reference all its alternate versions including itself. If page A links to B and C via hreflang, both B and C must link back to A. Missing return links cause Google to ignore the entire cluster.

Shopify generates these tags automatically for subfolder markets. For ccTLD setups, you must implement them manually in your theme's head.

Common mistakes I see: using the wrong locale code format (hreflang uses en-GB, not en_GB or en-uk), forgetting the x-default tag for the primary market, and having asymmetric references where page A references page B but page B does not reference page A. Run your implementation through Google Search Console's International Targeting report or a tool like Ahrefs' hreflang checker to catch these issues.

One subtlety: hreflang is a hint, not a directive. Google can and will ignore it if signals conflict — for example, if your "German" page is actually in English because you have not translated it yet. If you are launching markets before translations are ready, it is better to omit the hreflang for untranslated pages than to have Google discover that your German URL serves English content. That erodes trust in all your hreflang annotations.


Multi-Currency: Getting Pricing Right

Shopify Payments supports selling in multiple currencies natively. If you use Shopify Payments, currency conversion is handled automatically based on exchange rates that Shopify updates daily (with a configurable conversion fee, typically 1.5–2%). For third-party payment gateways, currency support varies — check your gateway's documentation carefully before assuming multi-currency will work.

The critical distinction is between automatic conversion and manual pricing. Automatic conversion applies the exchange rate to your base price, which is convenient but results in ugly numbers — a $29.99 USD product becomes something like £23.47 or €27.63. Manual pricing per market lets you set psychologically clean price points, but it means maintaining pricing across every market whenever you change your base prices.

For most stores, I recommend a hybrid approach: use automatic conversion as the default, then set manual overrides for your highest-traffic markets. This gives you clean pricing where it matters most without the maintenance burden of manually managing prices across every market and SKU combination.

International Pricing Strategies

Automatic Conversion

  • Zero maintenance — prices update with exchange rates automatically
  • Results in awkward numbers (£23.47) that reduce trust
  • Rounding rules can help — Shopify offers round-up-to-.99 or round-to-nearest options
  • Best for: stores with large catalogs or low-traffic international markets

Manual Market Pricing

  • Clean price points (£24.99, €27.99) that feel native to each market
  • Lets you adjust for local purchasing power and competitive landscape
  • Higher maintenance — every price change must be updated per market
  • Best for: high-traffic markets and hero products where conversion matters most

Most stores benefit from automatic conversion globally with manual overrides for their top 2-3 markets.

Psychological pricing norms vary by market and this matters more than most merchants realise. In the US, charm pricing ending in .99 is standard. In many European markets, round numbers (25.00) convert better because they signal transparency. In Japan, pricing often ends in 80 or 00 (e.g., ¥2,980 or ¥3,000). If you are manually pricing for a market, research local conventions — do not just convert and round.

Also consider VAT presentation. In the UK and EU, prices shown to consumers must include VAT. In the US, tax is added at checkout. Shopify Markets handles this automatically based on the market's tax configuration, but make sure your theme's price display logic accounts for it. Nothing kills trust faster than a price that jumps 20% at checkout because VAT was not included in the displayed price.


Duties and Taxes: DDP vs DAP

This is where most international selling setups either succeed or create a customer experience disaster. The question is simple: who pays import duties and taxes — you or the customer? The answer has massive implications for conversion rates, return rates, and customer satisfaction.

Customer experience: DDP vs DAP

DDP — Delivered Duty Paid (recommended)

Checkout

Customer sees total price including all duties and taxes

Shipping

Merchant pre-pays duties via carrier or broker

Delivery

Package arrives with no surprise charges. Clean experience.

DAP — Delivered At Place (buyer pays duties)

Checkout

Customer sees product + shipping only. Duties not shown.

Customs

Package held at customs. Carrier invoices the buyer for duties.

Delivery

Customer pays unexpected fee. Refusal and returns spike.

DDP increases checkout prices but dramatically reduces delivery refusals and support tickets.

DDP (Delivered Duty Paid) means you calculate and collect duties at checkout, then pre-pay them so the customer never sees an additional charge. The checkout total is higher, but the delivery experience is clean. DAP (Delivered At Place) means the customer pays duties on delivery — typically through a bill from the carrier. This creates a terrible experience: the customer thought they paid in full at checkout, then gets hit with an unexpected charge days later.

I always recommend DDP for any serious international operation. DAP might look cheaper at checkout, but the downstream costs are brutal: delivery refusals (the customer simply refuses to pay the duty, and the package gets returned), support tickets, negative reviews mentioning hidden charges, and reduced repeat purchase rates. Shopify supports duty calculation natively if you are on Shopify Markets, and they use a combination of HS codes and product metadata to estimate duties at checkout.

The technical requirement for accurate duty calculation is Harmonised System (HS) codes on your products. Every product needs a valid HS code so Shopify (or a third-party tool) can look up the applicable duty rate for each destination country. If you have a large catalog, this is tedious but essential. Incorrect HS codes lead to either undercharging (you absorb the difference) or overcharging (customers see inflated checkout totals and abandon).


Translation Approaches

Shopify offers three translation paths: the native Translate and Adapt app (free), third-party translation apps like Weglot or Langify, and the Shopify Translate API for programmatic translations. Each has trade-offs in cost, quality, and maintenance burden.

The native Translate and Adapt app covers most use cases. It lets you translate storefront content, product descriptions, collection pages, and email notifications per language. It integrates directly with Shopify's resource picker, so you translate content in context. The limitation is that it only supports languages that have a published market associated with them — you cannot create standalone translations without a market assignment.

Third-party apps like Weglot offer automatic machine translation with a human review layer. They are faster to set up for large catalogs but add a per-word or per-page cost that scales with your store size. The quality of machine translation has improved enormously, but it still requires human review for product descriptions, legal pages, and anything brand-voice sensitive. I have seen machine-translated product descriptions that were technically correct but tonally wrong for the target market — formal where they should have been casual, or vice versa.

My practical advice: use machine translation to get a baseline, then invest in human review for your top-selling products, homepage, collection pages, checkout, and email flows. Leave long-tail product descriptions machine-translated initially and improve them over time based on traffic data. Prioritize ruthlessly — a perfect translation of a product page that gets 10 visits a month is not a good use of budget.


International Shipping Logistics

Shipping configuration for international markets involves carrier selection, rate calculation, delivery promise management, and returns logistics. Shopify's native shipping profiles let you set rates per market and per weight bracket, but for serious international operations you will likely need a shipping aggregator or 3PL with international capabilities.

Key decisions to make early: Will you ship from a single fulfillment center or use distributed inventory? Single-origin is simpler but means long transit times and higher shipping costs for distant markets. Distributed inventory (using a 3PL with warehouses in target regions) reduces delivery times and shipping costs but adds inventory management complexity. For most Shopify stores starting out internationally, single-origin with a reliable carrier like DHL Express or FedEx International is the pragmatic choice. Move to distributed fulfillment once a market proves out.

Delivery promises matter enormously for conversion. If a UK customer sees "delivery in 15-25 business days," they will almost certainly buy from a local competitor instead. Be honest about delivery times, but also invest in faster shipping options for key markets. Offering a standard (10-14 day) and express (3-5 day) option lets price-sensitive customers self-select while giving impatient buyers a path to purchase.

Returns are the hidden cost of international selling. You need a returns policy per market (EU customers have a 14-day statutory return right under the Consumer Rights Directive), a returns address (ideally local to avoid customers paying international return shipping), and a refund process that accounts for exchange rate fluctuations. Some merchants use local returns processors like Global-e Returns or Loop's international features to handle this. Others simply offer refund-without-return for low-value items, which is often cheaper than processing an international return.


Shopify Markets Pro: When It Makes Sense

6.5%

Markets Pro transaction fee

Markets Pro is Shopify's managed international selling service powered by Global-e. It handles duties, taxes, currency conversion, fraud, and compliance as a turnkey solution. The 6.5% transaction fee is steep, but for stores without international operations expertise, it can be cheaper than building the same infrastructure yourself.

Markets Pro (powered by Global-e) goes beyond standard Shopify Markets by acting as the merchant of record for international transactions. This means Global-e handles local tax registration, duties collection, payment methods per market, and currency conversion with guaranteed exchange rates. From the customer's perspective, they are buying from a local entity, which improves trust and conversion.

The trade-off is cost and control. The 6.5% transaction fee on international orders is significant, and you lose some control over the checkout experience because Global-e manages it. You also cannot use Shopify Payments' native multi-currency alongside Markets Pro — it replaces the payment flow entirely for international markets.

When does it make sense? If you are doing less than $500K/year in international revenue, the operational overhead of managing duties, tax registration, and compliance yourself likely costs more than the 6.5% fee. If you are doing over $1M internationally, the maths usually favour managing it yourself with dedicated tools and processes. In the middle, it depends on your team's capacity and appetite for complexity.


Implementation Checklist

1

Configure Shopify Markets and define your market segments

Group countries by region. Only create individual country markets for high-priority targets.

2

Choose your domain strategy (subfolders recommended)

This is hard to change later. Subfolders consolidate link equity and simplify hreflang.

3

Set up multi-currency with rounding rules

Enable auto-conversion globally. Add manual price overrides for top markets.

4

Add HS codes to all products for duty calculation

Tedious but essential. Incorrect codes cause under- or over-collection of duties.

5

Enable DDP (Delivered Duty Paid) for all markets

Higher checkout totals but dramatically better delivery experience and fewer returns.

6

Audit hreflang implementation

Use Search Console's International Targeting report. Check for symmetric references and correct locale codes.

7

Set up translations for priority content

Machine-translate the full catalog, then human-review top products, homepage, checkout, and emails.

8

Configure international shipping rates and delivery promises

Be honest about transit times. Offer standard and express options for key markets.

9

Test the full purchase flow from each market

Use a VPN to verify geo-detection, correct currency, duty calculation, and hreflang in each target region.


The Practical Reality

International selling on Shopify is more accessible than it has ever been. Shopify Markets handles a significant amount of the complexity that used to require expansion stores or expensive third-party solutions. But "accessible" does not mean "trivial." The decisions you make about domain strategy, duty handling, and pricing affect your search visibility, conversion rates, and operational costs for years to come.

The most common mistake I see is merchants launching too many markets at once with too little localization. It is better to launch two markets well — with proper translations, clean pricing, DDP enabled, and tested shipping — than to launch ten markets with auto-converted prices, no translations, and DAP shipping. The latter will generate support tickets, returns, and negative reviews that damage your brand in markets you were trying to grow.

Start with the markets where you already see organic demand. Check your analytics for international traffic, look at where your support tickets come from, and ask your 3PL where they are already shipping to. Then expand methodically, treating each new market as a mini-launch with its own localization checklist.

If you are planning an international expansion on Shopify and want a technical partner who has done this before, get in touch. I can help you avoid the expensive mistakes and get your international setup right from the start.