Shopify to WooCommerce migration, 21 languages

A US store chain wanted to leave Shopify for WooCommerce and take everything with them: catalogue, content, theme and translations: English plus 20 translations (21 languages). I built a custom migration tool, kept every Shopify URL intact, and then made the new store fast.

WooCommerce · Backend

Results

A 21-language Shopify store with tens of thousands of product pages moved to WooCommerce, URLs unchanged.

Problem

Off-the-shelf importers could not carry over metaobjects, translations or the exact Shopify URLs. Search traffic depended on those URLs. After launch, WooCommerce with WPML on 21 languages built pages slowly, so speed became critical.

Solution

A Node.js migration tool reads the Shopify exports and writes into WooCommerce. It is safe to re-run. A small bridge plugin adds the missing routes, Shopify URL rules and custom content types. The storefront theme was ported with the same markup, so the existing CSS applied unchanged. A custom page cache, cache warming and an instant search index handled speed.

Key decisions

  1. Chose a custom migration tool over off-the-shelf importers

    Why Metaobjects, translations and 1:1 URLs were all required, and no ready plugin covered them.

  2. Chose to keep every Shopify URL, with redirects for the rest

    Why Indexed pages and search traffic survive the change of platform.

  3. Chose WPML for the 20 translated languages

    Why It translates products, collections, menus and SEO fields together, and holds up at a catalogue this size.

  4. Chose a ported child theme with Shopify markup

    Why The storefront looks as before and the existing CSS keeps working.

  5. Chose server-side imports over the REST API for images and translations

    Why REST rate limits made bulk imports far too slow.

  6. Chose a custom full-page cache with background warming

    Why The long tail of product pages almost never got cached by the stock setup.

Have a similar task?

Send a link and a few lines about what you need. I reply within 1 business day with questions or a fixed estimate.

Get a fixed estimate
  • The estimate is the priceHours and total agreed before work starts. No re-estimates.
  • No prepayment on small projectsProjects up to 20 hours usually need none.
  • 30-day warrantyCritical bugs from my work get fixed free, even after that.

My gift: start a Shopify store for €1 for your first month

Open your store through my partner link and try Shopify for yourself. When you need a theme, an app or a migration, I'm one message away.

Claim the €1 month (opens in a new tab)

Affiliate link: I may earn a commission if you sign up. The offer is set by Shopify and may vary by region.