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
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.
Chose to keep every Shopify URL, with redirects for the rest
Why Indexed pages and search traffic survive the change of platform.
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.
Chose a ported child theme with Shopify markup
Why The storefront looks as before and the existing CSS keeps working.
Chose server-side imports over the REST API for images and translations
Why REST rate limits made bulk imports far too slow.
Chose a custom full-page cache with background warming
Why The long tail of product pages almost never got cached by the stock setup.