IntlPull
Guide
22 min read

How to Localize Your Shopify Store with IntlPull: The Complete Guide (2026)

Step-by-step guide to localizing your Shopify store with IntlPull. Bidirectional sync, theme locales, dynamic content translation, language switcher setup, and multilingual SEO for global ecommerce.

IntlPull Team
IntlPull Team
Apr 1, 2026
On this page
Summary

Step-by-step guide to localizing your Shopify store with IntlPull. Bidirectional sync, theme locales, dynamic content translation, language switcher setup, and multilingual SEO for global ecommerce.

Why Your Shopify Store Needs Localization

76% of online shoppers prefer to buy in their native language. 40% will never purchase from a site that isn't in their language.

Shopify powers over 4.6 million stores worldwide, yet most sell in English only. That's a massive missed opportunity.

Here's what localization does to your metrics:

MetricEnglish-OnlyFully LocalizedImprovement
Conversion Rate1.8%4.5%+150%
Cart Abandonment72%45%-37%
Average Order Value$65$82+26%
Return Customer Rate22%41%+86%

Real example: A fashion brand selling in the US expanded to Germany and France using IntlPull. Within 3 months: +312% international revenue, +89% organic traffic from non-English markets.

This guide walks you through every step of localizing your Shopify store with IntlPull — from installation to your first multilingual sale.


The Problem with Shopify's Built-in Translation Tools

Shopify offers Translate & Adapt, a free first-party app. It works for basic use cases, but merchants consistently hit these walls:

What Translate & Adapt Can Do

  • Auto-translate up to 2 languages (100M characters/year)
  • Translate product titles, descriptions, collections, and pages
  • Adapt content for regional markets (e.g., US vs UK English)

What It Cannot Do

LimitationImpact
Only 2 free auto-translated languagesScaling beyond 2 markets requires manual work or paid apps
Cannot translate theme locale filesYour buttons, navigation, checkout labels stay in English
No URL/slug translationSEO suffers — /products/running-shoes stays English in every market
No bulk import/exportCannot use professional translators with standard workflows
No translation memoryRepeated phrases get retranslated (and billed) every time
No branching/review workflowNo way to stage translations before publishing
Limited API accessCannot integrate with CI/CD or developer workflows
Quality is inconsistentAuto-translation quality drops on technical or brand-specific content

The gap is clear: Shopify handles currency and markets well, but the translation layer needs a professional tool.


How IntlPull Solves Shopify Localization

IntlPull is a Translation Management System (TMS) purpose-built for developers and modern ecommerce teams. The Shopify integration provides:

Core Capabilities

┌─────────────────────────────────────────────────┐
│                  IntlPull TMS                    │
│                                                  │
│  ┌──────────┐  ┌───────────┐  ┌──────────────┐  │
│  │ AI Trans │  │ Review    │  │ Translation  │  │
│  │ Engine   │  │ Workflows │  │ Memory       │  │
│  └────┬─────┘  └─────┬─────┘  └──────┬───────┘  │
│       │              │               │           │
│  ┌────┴──────────────┴───────────────┴────┐      │
│  │        Bidirectional Sync Engine        │      │
│  └────┬────────────────────────────┬──────┘      │
│       │                            │             │
│  ┌────▼─────────┐   ┌─────────────▼──────┐      │
│  │Theme Locales │   │ Dynamic Content     │      │
│  │ JSON files   │   │ Products/Pages/etc  │      │
│  └────┬─────────┘   └─────────────┬──────┘      │
└───────┼────────────────────────────┼─────────────┘
        │                            │
   ┌────▼────────────────────────────▼────┐
   │         Your Shopify Store            │
   │  Themes · Products · Collections     │
   │  Pages · Navigation · Metafields     │
   └──────────────────────────────────────┘

What makes IntlPull different:

  1. Bidirectional sync — Pull translations from Shopify into IntlPull, or push from IntlPull to Shopify. Or both.
  2. Theme locale files — Sync the actual .json locale files that power your storefront UI (buttons, labels, navigation, error messages).
  3. Dynamic content — Translate products, collections, pages, and articles via Shopify's Translate & Adapt API.
  4. 37+ languages — AI translation with multiple providers (Google, DeepL, OpenAI, Gemini) — not limited to 2.
  5. Translation memory — Never pay to translate the same phrase twice.
  6. Review workflows — Stage, review, approve translations before they go live.
  7. Auto-sync — Webhook-triggered. When content changes in Shopify, IntlPull syncs automatically.
  8. Language switcher — Drop-in theme extension with 4 display styles.

Step 1: Install the IntlPull Shopify App

From the Shopify App Store

  1. Go to the Shopify App Store and search for "IntlPull"
  2. Click Add app
  3. Review the permissions and click Install

Permissions Required

PermissionWhy
read_themesRead theme locale JSON files
write_translationsPush translations to Shopify
read_productsRead product titles, descriptions for translation
read_localesDetect which languages are enabled on your store
read_contentRead pages, articles, and collection content

Security note: IntlPull never stores your Shopify access token in plaintext. All tokens are encrypted at rest.


Step 2: Connect Your IntlPull Project

After installation, you'll see the Setup page inside your Shopify Admin.

1. Log in to IntlPull (or create an account)
2. Create a new project or select an existing one
3. Copy your project API key (starts with ip_live_...)
4. Paste it in the Shopify app setup screen
5. Click "Connect"

Configure Source Language

Set your store's source language (usually en for English). This tells IntlPull which language is your "base" — all translations are derived from it.

Choose Sync Direction

DirectionUse Case
PullImport Shopify translations into IntlPull for editing
PushSend IntlPull translations to Shopify
BidirectionalTwo-way sync (recommended) — changes in either system propagate

Recommended: Start with Pull to import your existing translations, review them in IntlPull, then switch to Bidirectional for ongoing management.


Step 3: Add Languages to Your Store

Enable Languages in Shopify

Before IntlPull can sync translations, the languages must be enabled in Shopify:

  1. Go to Settings → Languages in your Shopify Admin
  2. Click Add language
  3. Select the languages you want (e.g., Spanish, French, German, Japanese)
  4. Click Save

Or Add Languages via IntlPull

IntlPull can add languages to your Shopify store automatically:

TypeScript
1// Using IntlPull API
2POST /api/v1/projects/{projectId}/language-settings/bulk
3{
4  "languages": [
5    { "language_code": "es", "language_name": "Spanish" },
6    { "language_code": "fr", "language_name": "French" },
7    { "language_code": "de", "language_name": "German" },
8    { "language_code": "ja", "language_name": "Japanese" }
9  ],
10  "auto_translate": true
11}

Language Support

IntlPull supports 37+ languages with high-quality AI translation:

RegionLanguages
Western EuropeSpanish, French, German, Italian, Portuguese, Dutch, Swedish, Danish, Norwegian, Finnish
Eastern EuropePolish, Czech, Romanian, Hungarian, Bulgarian, Slovak, Croatian, Slovenian, Ukrainian, Russian
Asia-PacificJapanese, Chinese (Simplified & Traditional), Korean, Hindi, Vietnamese, Thai, Indonesian
Middle EastArabic, Hebrew, Turkish
AmericasPortuguese (Brazil), Spanish (LATAM)

Step 4: Sync Theme Locale Files

This is where IntlPull shines over other Shopify translation tools.

What Are Theme Locale Files?

Every Shopify theme has a /locales directory containing JSON files that power the storefront UI:

themes/
└── your-theme/
    └── locales/
        ├── en.default.json      ← Source language
        ├── es.json              ← Spanish translations
        ├── fr.json              ← French translations
        ├── de.json              ← German translations
        └── ja.json              ← Japanese translations

Structure of a Locale File

JSON
1{
2  "general": {
3    "accessibility": {
4      "skip_to_content": "Skip to content",
5      "close": "Close"
6    },
7    "search": {
8      "placeholder": "Search our store",
9      "submit": "Search",
10      "no_results": "No results for \"{{ terms }}\""
11    }
12  },
13  "products": {
14    "product": {
15      "add_to_cart": "Add to cart",
16      "sold_out": "Sold out",
17      "quantity": "Quantity",
18      "size_guide": "Size guide"
19    }
20  },
21  "cart": {
22    "general": {
23      "title": "Your cart",
24      "empty": "Your cart is empty",
25      "continue_shopping": "Continue shopping",
26      "checkout": "Checkout"
27    }
28  }
29}

These are the strings your customers actually see — "Add to cart," "Checkout," "Your cart is empty." If these aren't translated, your store looks half-localized.

Syncing with IntlPull

  1. In the Shopify app settings, enable "Sync Theme Locales"
  2. IntlPull will pull all locale files from your active theme
  3. Each JSON key becomes a translation key in your IntlPull project:
Namespace: theme.general.search
Key: placeholder
Value (en): "Search our store"
Value (es): "Buscar en nuestra tienda"
Value (fr): "Rechercher dans notre boutique"
Value (de): "In unserem Shop suchen"
  1. Edit translations in IntlPull's editor with full context
  2. Push back to Shopify with one click

Handling Theme Updates

When Shopify themes update, new locale keys may appear. IntlPull handles this automatically:

  • New keys are detected and flagged as "untranslated"
  • Removed keys are preserved in IntlPull (soft delete)
  • Changed source values trigger re-translation alerts
  • Auto-translate can fill new keys instantly using AI

Step 5: Translate Dynamic Content

Dynamic content includes everything that's not in theme files:

Content Types

ContentExamplesAPI Used
ProductsTitle, description, SEO title/descriptionTranslate & Adapt
CollectionsTitle, descriptionTranslate & Adapt
PagesTitle, body HTMLTranslate & Adapt
ArticlesTitle, body, summaryTranslate & Adapt
NavigationMenu item labelsTranslate & Adapt
MetafieldsCustom content blocks, product specsTranslate & Adapt

How IntlPull Syncs Dynamic Content

1. IntlPull calls Shopify's GraphQL API (v2026-01)
2. Fetches all translatable resources with pagination
3. Creates IntlPull translation keys mapped to Shopify resource GIDs
4. You translate in IntlPull (AI, manual, or professional)
5. IntlPull pushes translations back via registerTranslations mutation

Example: Translating a Product

Source (English):

JSON
1{
2  "title": "Men's Running Shoes - Lightweight Sneakers",
3  "description": "Breathable mesh upper with cushioned EVA midsole...",
4  "seo_title": "Buy Men's Running Shoes | Free Shipping",
5  "seo_description": "Lightweight running shoes for men..."
6}

After IntlPull translation to German:

JSON
1{
2  "title": "Herren Laufschuhe - Leichte Sportschuhe",
3  "description": "Atmungsaktives Mesh-Obermaterial mit gedämpfter EVA-Mittelsohle...",
4  "seo_title": "Herren Laufschuhe kaufen | Kostenloser Versand",
5  "seo_description": "Leichte Laufschuhe für Herren..."
6}

SEO tip: IntlPull lets you customize SEO titles and descriptions per language. Don't just translate — optimize for local search terms. Germans search "Laufschuhe kaufen," not "running shoes buy."

Namespace Organization

IntlPull organizes Shopify content with clear namespaces:

shopify.theme.general.*       → Theme UI strings
shopify.theme.products.*      → Product-related theme strings
shopify.theme.cart.*          → Cart-related theme strings
shopify.products.{gid}.*     → Individual product content
shopify.collections.{gid}.*  → Individual collection content
shopify.pages.{gid}.*        → Individual page content

This makes it easy to filter, search, and manage translations at scale.


Step 6: Set Up the Language Switcher

IntlPull includes a Theme App Extension that adds a professional language switcher to your store.

Installation

  1. Open Shopify Theme Editor
  2. There are two placement options:

Option A: App Block (In-Theme Placement)

  1. Navigate to your header or footer section
  2. Click "Add block"
  3. Select "Language Switcher" under the IntlPull app
  4. Configure style, position, and colors

Option B: Floating Embed (Always Visible)

  1. Click "App embeds" in the Theme Editor sidebar
  2. Enable "Language Switcher (Floating)"
  3. Choose position (bottom-left, bottom-right, top-left, top-right)

Display Styles

StyleDescriptionBest For
DropdownClean select menu with language namesHeader placement
FlagsCountry flag icons in a rowVisual, icon-heavy themes
PillsRounded pill buttonsModern, minimal themes
InlineText links separated by dividersFooter or breadcrumb areas

Customization Options

- Background color
- Text color
- Active language highlight color
- Border radius
- Font size
- Show/hide language names
- Show/hide flag icons
- Dropdown direction (up/down)

Performance note: The language switcher is a Shopify Theme App Extension — it loads asynchronously, adds zero JavaScript to your initial page load, and requires no external API calls from the storefront.


Step 7: Enable Auto-Sync

Set it and forget it. IntlPull can sync translations automatically when content changes.

How Auto-Sync Works

Shopify Store                    IntlPull
    │                               │
    │  Content changes              │
    │  (new product, theme update)  │
    │                               │
    ├──── Webhook ─────────────────►│
    │     (HMAC-SHA256 verified)    │
    │                               │
    │                          ┌────┤
    │                          │ Detect changes
    │                          │ Auto-translate new keys
    │                          │ Flag changed source text
    │                          └────┤
    │                               │
    │◄───── Push translations ──────┤
    │                               │

Webhook Events

IntlPull listens for these Shopify webhook events:

EventTriggerAction
locales/createNew language addedPull new locale, auto-translate
locales/updateTheme locale file changedSync changes to IntlPull
themes/updateTheme switched or updatedRe-sync all theme locales
app/uninstalledApp removedClean up integration data

Enable Auto-Sync

  1. In the IntlPull Shopify app, go to Settings
  2. Toggle "Auto-Sync" on
  3. Choose sync scope:
    • Theme locales only — fastest, least resource-intensive
    • Dynamic content only — products, collections, pages
    • Full sync — everything

Tip: Start with "Theme locales only" for auto-sync, and manually trigger full content syncs as needed. This keeps your webhook processing fast and avoids unnecessary API calls.


Step 8: Translation Workflow Best Practices

Not all content needs the same translation quality:

Content TypeStrategyWhy
Theme UI stringsAI auto-translate + reviewStandardized phrases, rarely change
Product titlesAI translate + human reviewBrand voice matters for SEO
Product descriptionsProfessional translation for top 20%Revenue-critical content
Legal pagesProfessional translationCompliance risk
Blog articlesAI auto-translateVolume-focused, less brand-critical
Meta descriptionsAI translate + SEO optimizationMust include local keywords

Using Translation Memory

IntlPull's translation memory saves every approved translation. Benefits:

  • "Add to cart" translated once → reused across all products automatically
  • Consistent terminology → "Checkout" always translates the same way
  • Cost savings → repeated phrases don't consume AI translation credits
  • Glossary enforcement → brand terms stay consistent

Review Workflow

1. New key detected (auto or manual)
      │
      ▼
2. AI auto-translate (draft status)
      │
      ▼
3. Reviewer edits in IntlPull editor
   (with context, screenshots, glossary)
      │
      ▼
4. Approved → pushed to Shopify
      │
      ▼
5. Translation memory updated

Bulk Operations

For stores with thousands of products:

TypeScript
1// Import existing translations from CSV
2POST /api/v1/projects/{projectId}/import
3{
4  "format": "csv",
5  "language": "es",
6  "strategy": "merge"  // Don't overwrite existing translations
7}
8
9// Export for professional translators
10POST /api/v1/projects/{projectId}/export
11{
12  "format": "xliff",   // Industry-standard format
13  "languages": ["de", "fr", "ja"],
14  "status": "untranslated"  // Only export what's missing
15}

Step 9: Multilingual SEO for Shopify

Localization without SEO is a missed opportunity. Here's how to maximize organic traffic.

Hreflang Tags

Shopify Markets automatically generates hreflang tags for your enabled languages:

HTML
1<link rel="alternate" hreflang="en" href="https://yourstore.com/" />
2<link rel="alternate" hreflang="es" href="https://yourstore.com/es/" />
3<link rel="alternate" hreflang="fr" href="https://yourstore.com/fr/" />
4<link rel="alternate" hreflang="de" href="https://yourstore.com/de/" />
5<link rel="alternate" hreflang="x-default" href="https://yourstore.com/" />

URL Structure

Shopify uses the subdirectory approach by default:

yourstore.com/           → English (default)
yourstore.com/es/        → Spanish
yourstore.com/fr/        → French
yourstore.com/de/        → German
yourstore.com/ja/        → Japanese

This is actually the recommended approach for most stores — it consolidates domain authority and is easiest to manage.

SEO Checklist for Each Language

ElementActionIntlPull Feature
Page titlesTranslate + optimize for local keywordsPer-language SEO fields
Meta descriptionsWrite unique per language (not just translate)Custom SEO metadata
Product titlesInclude local search termsAI + human review
Alt textTranslate image alt textBulk translation
Structured dataEnsure JSON-LD includes translated valuesAutomatic with Shopify
SitemapVerify all language versions are indexedShopify Markets handles this

Local Keyword Research

Don't translate keywords — research them:

English: "running shoes"         → 110,000 monthly searches
German:  "Laufschuhe"            → 74,000 monthly searches
         "Laufschuhe kaufen"     → 12,000 monthly searches (high intent!)
         "Joggingschuhe"         → 8,100 monthly searches

French:  "chaussures de course"  → 33,000 monthly searches
         "chaussures running"    → 27,000 monthly searches

IntlPull's AI translation preserves context, but always review SEO-critical content with local market knowledge.


Step 10: Monitor and Optimize

IntlPull Dashboard Metrics

After connecting, monitor these in your IntlPull project:

MetricWhat It Tells You
Translation coverage% of keys translated per language
Sync statusLast sync time, keys added/updated/removed
Untranslated keysNew content that needs translation
Review queueTranslations awaiting approval
Sync historyFull audit trail of all sync operations

Shopify Analytics Integration

Cross-reference translation coverage with Shopify analytics:

  • Conversion rate by language — Is your German translation performing?
  • Bounce rate by market — High bounce on French pages? Check translation quality
  • Revenue by market — Track ROI per localized market
  • Cart abandonment by language — Untranslated checkout = lost sales

Common Issues and Fixes

IssueCauseFix
Some strings still in EnglishTheme locale keys not syncedRe-trigger theme locale sync
Products not translatedDynamic content sync disabledEnable "Sync Dynamic Content" in settings
Language switcher not showingTheme extension not enabledEnable in Theme Editor → App Embeds
Translations revertingSync direction conflictSet to "Push" (IntlPull as source of truth)
Slow syncLarge product catalogUse incremental sync, not full

Advanced: Using the IntlPull CLI

For developers who prefer the command line:

Installation

Terminal
npm install -g @intlpull/cli

Configuration

JSON
1// .intlpull.json
2{
3  "projectId": "your-project-id",
4  "framework": "shopify",
5  "sourceLanguage": "en",
6  "outputDir": "./locales",
7  "namespaces": ["theme", "products"]
8}

Common Commands

Terminal
1# Pull all translations from IntlPull
2intlpull pull
3
4# Push local changes to IntlPull
5intlpull push
6
7# Check translation status
8intlpull status
9
10# Auto-translate missing keys
11intlpull translate --languages es,fr,de,ja
12
13# Export for professional translators
14intlpull export --format xliff --languages de --status untranslated

CI/CD Integration

Add to your deployment pipeline:

YAML
1# .github/workflows/sync-translations.yml
2name: Sync Translations
3on:
4  push:
5    branches: [main]
6    paths:
7      - 'locales/**'
8
9jobs:
10  sync:
11    runs-on: ubuntu-latest
12    steps:
13      - uses: actions/checkout@v4
14      - run: npm install -g @intlpull/cli
15      - run: intlpull push
16        env:
17          INTLPULL_API_KEY: ${{ secrets.INTLPULL_API_KEY }}

Pricing and ROI

IntlPull Pricing for Shopify Stores

IntlPull offers plans designed for ecommerce:

PlanKeysLanguagesAI TranslationBest For
Free500510,000 chars/moSmall stores testing localization
Starter5,00010100,000 chars/moGrowing stores, 2-3 markets
Pro25,000Unlimited1M chars/moActive ecommerce, 5+ markets
EnterpriseUnlimitedUnlimitedUnlimitedLarge catalogs, custom workflows

ROI Calculation

Average Shopify store revenue:        $50,000/month (US only)
International market potential:        +60% addressable market
Conservative conversion improvement:  +13% (Shopify's own data)

Additional monthly revenue:           $50,000 × 0.60 × 0.13 = $3,900/month
IntlPull Pro plan cost:                $49/month

ROI: 7,857% — pays for itself in the first day.

Migration from Other Translation Apps

Already using Weglot, Langify, or Transcy? IntlPull makes migration straightforward:

Migration Steps

  1. Export your current translations (CSV or JSON)
  2. Import into IntlPull via the dashboard or CLI
  3. Connect the Shopify integration
  4. Push to verify all translations are in place
  5. Remove the old app

Feature Comparison

FeatureWeglotLangifyTranscyIntlPull
Theme locale syncProxyManualAutoBidirectional
Dynamic contentProxyPluginAutoAPI + Sync
Translation memoryNoNoNoYes
Review workflowsNoNoNoYes
BranchingNoNoNoYes
CLI accessNoNoNoYes
API accessLimitedNoLimitedFull REST API
CI/CD integrationNoNoNoYes
MCP (AI IDE) supportNoNoNoYes
Self-hosted optionNoNoNoYes

Summary: Your Localization Checklist

Here's your complete step-by-step checklist:

  • Install IntlPull Shopify app
  • Connect your IntlPull project with API key
  • Set sync direction (start with Pull → switch to Bidirectional)
  • Enable languages in Shopify (Settings → Languages)
  • Sync theme locale files (UI strings, navigation, cart, checkout)
  • Sync dynamic content (products, collections, pages)
  • Set up the language switcher (dropdown, flags, pills, or inline)
  • Enable auto-sync for real-time translation updates
  • Configure translation workflow (AI + human review for critical content)
  • Optimize SEO per language (local keywords, meta descriptions)
  • Monitor conversion rates per market in Shopify Analytics
  • Set up CLI/CI/CD for developer workflows (optional)

You don't need to do everything at once. Start with theme locales and your top 3 target languages. Add markets as you see results.


FAQs

How long does the initial sync take?

For a typical store with 100-500 products, the first full sync takes 2-5 minutes. Theme locale sync is nearly instant.

Does IntlPull affect my store's performance?

No. The language switcher is a Shopify Theme App Extension that loads asynchronously. All translation processing happens server-side in IntlPull's infrastructure.

Can I use professional translators with IntlPull?

Yes. Export untranslated content as XLIFF (industry standard), send to your translation agency, import the results. IntlPull supports JSON, YAML, XLIFF, PO, CSV, Android XML, and iOS Strings formats.

What happens if I uninstall the app?

Your translations remain in Shopify. IntlPull cleans up its integration data but doesn't remove any content from your store.

Does IntlPull support Shopify Plus?

Yes. IntlPull works with all Shopify plans — Basic, Shopify, Advanced, and Plus.

Can I translate checkout?

Shopify pre-translates the checkout into 33 languages. For custom checkout extensions (Shopify Plus), IntlPull can manage those translations too.


Start Localizing Today

Your competitors are already selling in multiple languages. Every day you wait, you're leaving international revenue on the table.

Install IntlPull for Shopify → and start your first sync in under 5 minutes.

Questions? Reach out at support@intlpull.com or join our Discord community.

Tags
shopify
localization
ecommerce
i18n
multilingual
intlpull
tutorial
IntlPull Team
IntlPull Team
Shopify & i18n

Building tools to help teams ship products globally. Follow us for more insights on localization and i18n.