Headless Shopify with Multi-Market Internationalisation
A European fashion brand needed to sell across 6 EU markets with market-specific pricing, languages, and payment methods — from a single Shopify Plus store. A headless Next.js frontend gave them the UX control and performance they needed without sacrificing Shopify's commerce infrastructure.
The problem
The brand had separate Shopify stores for each country — DE, FR, NL, BE, AT, and a pan-EU store. Managing product catalogues, translations, and promotions across 6 stores was a full-time operational burden. Inventory wasn't shared. Discount codes didn't work across stores. And each store had different conversion rates, making it impossible to run coherent A/B tests.
Technical challenge
Shopify Markets consolidates multiple country stores into one — but the default Liquid theme didn't give the brand the UX flexibility they needed for their editorial-heavy fashion experience. The headless frontend needed to handle market-specific routing (/de, /fr, /nl), currency display, translated content, and local payment methods — all from the same Storefront API with Shopify Markets context headers.
Architecture
Shopify Markets setup
Configured 6 EU markets in Shopify Plus — each with local currency, language, and market-specific pricing adjustments. VAT-inclusive pricing configured per market using Shopify's tax-included setting with market overrides.
Next.js storefront
Built with the Storefront API using Shopify's buyer-context headers to serve market-specific prices and availability. Routing uses sub-path internationalisation (/de/products/...) with Next.js i18n. Static pages pre-rendered at build time; cart and account pages are client-side.
Content and translation
Product translations managed in Shopify using Translate & Adapt. Editorial content (lookbooks, blog, campaign pages) managed in a headless CMS (Contentful) with locale-specific entries. Next.js fetches from both APIs at build time.
Search and discovery
Algolia indices built per market from Shopify product data, synced via webhook. Market-specific pricing is indexed alongside product data so search results show the correct price without a second API call.
Results
The six-store setup was consolidated into a single Shopify Plus store on day one of launch. Operational overhead for catalogue management dropped immediately — one product update now propagates to all markets automatically. Lighthouse performance score of 98 delivered a measurable improvement in Core Web Vitals. Conversion rate increased 22% vs the previous multi-store setup — attributed to faster page loads, consistent UX across markets, and the ability to run cross-market promotions.
Have a project
like this?
Tell me what you're building. I'll tell you exactly how I'd approach it.