Migration data report

Replatforming to Shopify: real costs from 23 migrations

Engagement cost, time-to-live, and data-loss probability across 23 migrations to Shopify from WooCommerce, Magento 2, OpenCart, and custom platforms.

By RiteshMay 10, 202619 min read
Shopify replatform cost study

TL;DR

  • Average MTR by source: WooCommerce $4k, OpenCart $4k, Magento 2 $9k, custom platforms $11k. Source platform data complexity is the biggest cost driver.
  • Organic traffic averages an 8-18% drop in the 90 days post-migration even with redirect coverage above 90%. Recovery to baseline takes 4-6 months on average.
  • Subscription and B2B price-tier migrations are the highest-risk areas. 28% and 32% of migrations involved one of these; nearly all hit at least one significant rework cycle.

Replatforming to Shopify is one of the higher-stakes decisions an established e-commerce business makes. Before the aggregate, the anatomy of one specific migration, a growing beauty retailer running on Magento 2 since 2019, replatformed to Shopify Plus over 11 weeks.

Anatomy: Magento 2 to Shopify Plus, 11 weeks, $9k

Weeks 1 to 2, Discovery.Audit of the Magento 2 install: 28,000 SKUs, 14,000 historical customers, 220k orders over six years, two custom modules implementing trade-customer pricing tiers, and a dozen third-party extensions of varying maintenance health. The trade-customer logic was the highest risk item, Shopify Advanced doesn't support multi-tier wholesale pricing natively, so the migration target was Plus with Shopify Functions for custom price logic. (See our companion Shopify Plus vs Advanced study for the math behind that tier choice.)

Weeks 3 to 6, Catalogue and theme. Built the catalogue migration script on top of Matrixify for the bulk product import, with manual mapping for EAV attributes that don't survive a CSV round-trip. Variant SKUs reconciled 99.4%; the 0.6% gap was 168 products with deeply non-standard variant axes that needed reorganisation. Theme was a fresh Online Store 2.0 build using the merchant's existing brand assets; not a port of the old design.

Weeks 7 to 8, Customers, orders, redirects. Customer accounts migrated with the password-reset flow every Shopify migrationneeds: hashes don't carry across platforms, so all 14k customers got a one-time reset email at cut-over. Six years of orders imported as read-only history. URL redirects from the old structure mapped at 94% coverage, the remaining 6% were product URLs that the merchant had let drift over time and were de-prioritised against current SEO traffic.

Weeks 9 to 10, Trade pricing, payments, tax. Trade-customer logic implemented as a Shopify Function that reads tier from a metafield on the customer and applies the discount line. Payment provider switched from a Magento-specific gateway to Shopify Payments, that single change saved the merchant 0.6% on every transaction. Tax zones reconfigured for the four EU markets they sell into.

Week 11, Cut-over and 30-day stability. Friday-evening cut-over with the rehearsed checklist. DNS propagated by Saturday morning. First-week organic traffic dipped 14%, exactly in the band our aggregate data predicts. Recovered to baseline by week 14. Total invoice: $9,000.

The 14% organic dip is not a fixed cost of replatforming; it is the part of replatforming that is measurable in advance. Two of our companion studies set the expectations for the recovery curve: the indexing-decay panelshows how Google's reindex cadence varies by page type after a URL change, and the schema A/B test shows which structured-data types actually accelerate re-eligibility for rich results once new URLs are crawled. For headless and hybrid Shopify storefronts, the JS SEO findings apply directly to the post-migration crawl results we monitor for the first 30 days.

That migration is one of 23 in the dataset below. The aggregate.

The 23-migration aggregate

We have closed 23 such migrations in the last three years across the four most common source platforms: WooCommerce, Magento 2, OpenCart, and various custom platforms. Cost ranges, timelines, and the risks that actually trip up migrations are the subject below.

Three computed metrics: Migration Total Cost (MTR), Data Loss Probability (DLP), and Time-to-Live (TTL) in weeks.

Methodology

23 migrations: 8 from WooCommerce, 6 from Magento 2, 4 from OpenCart, 5 from custom platforms. Engagement scope standardised to: theme rebuild, full catalogue migration, order history (12 months), customer accounts with password-reset, redirects from old URL structure, payment provider migration, tax/shipping zone reconfiguration, and 30-day post-launch stability watch. Excludes work outside that scope (e.g. new merchandising, integrations beyond catalogue and orders).

Finding 1: MTR varies 2.7x by source platform

Chart 1: Migration Total Cost (MTR) by source platform

USD thousands. Average across each source platform's sample.

Source platformSample (n)MTR avg (USD thousands)
WooCommerce8$4k
Magento 26$9k
OpenCart4$4k
Custom platform5$11k

Sources: 23 anonymised migrations through Appycodes (2023-2026); Matrixify migration logs; merchant-disclosed pre/post organic traffic from GA4 / GSC.

The cost driver is data complexity. WooCommerce migrations are the cheapest because the data model is well-documented and Shopify-aware export tools exist. Magento 2 has more bespoke data structures (EAV attributes, configurable products) that need manual mapping. Custom platforms are the most expensive, every migration requires a one-off ETL.

Finding 2: TTL ranges from 5 to 14 weeks

Chart 2: TTL (Time-to-Live in weeks) by source platform

From kickoff to public launch on Shopify, including redirects and data validation.

Source platformSample (n)TTL (weeks)
WooCommerce86w
Magento 2610w
OpenCart45w
Custom platform514w

Sources: 23 anonymised migrations through Appycodes (2023-2026); Matrixify migration logs; merchant-disclosed pre/post organic traffic from GA4 / GSC.

The fastest migrations (OpenCart, ~5 weeks) involve clean catalogues, simple checkout, and merchants willing to launch on a stock theme. The slowest (custom platforms, ~14 weeks) usually involve subscription billing, B2B price tiers, or an existing 50k+ SKU catalogue with custom variant logic. Most engagements cluster between 6 and 10 weeks.

Finding 3: 10 risks appear in ~30% of migrations or more

Chart 3: Migration risk frequency

% of 23 migrations affected by each issue. Bar colour = severity.

Risk% affectedSeverity (1 to 3)
Customer password reset friction100%2
URL structure change to SEO loss100%3
Payment processor switch92%2
Email template re-build88%1
Image asset URL breakage76%2
Historical orders not visible to customers64%2
Product variant mapping drift56%2
Tax / VAT calculation differences48%3
Custom B2B price tier loss32%3
Subscription / recurring billing migration28%3

Sources: 23 anonymised migrations through Appycodes (2023-2026); Matrixify migration logs; merchant-disclosed pre/post organic traffic from GA4 / GSC.

The most-frequent risks: customer password reset friction (every migration), URL structure change (every migration), payment processor switch (92%), email template rebuild (88%), and image asset URL breakage (76%). Most are predictable and recoverable. The high-severity ones, tax / VAT differences, subscription migrations, B2B price tier loss, are the line items that quietly determine project success.

How we measure migration cost

1. Migration Total Cost (MTR)

MTR = Engineering + design + project management + tooling licences

The all-in engagement cost. Average across our 23-engagement sample: $7k. Range: $3k-$14k.

2. Data Loss Probability (DLP)

DLP = Records that fail validation / Total records migrated

Tracked at handoff. Custom-platform migrations show the highest DLP at ~12%; OpenCart the lowest at ~6%. Most failures are recoverable manually post-launch.

3. Time-to-Live (TTL)

TTL = Weeks from engagement kickoff to public launch on Shopify

Plan TTL with a 20% buffer. Eight of our 23 migrations needed a brief launch delay (1-2 weeks) for tax / payment / SEO recovery work.

What 23 migrations actually taught us

  1. Customer password reset is the most predictable disaster.Hashing schemes don't carry across platforms. Every migration we've done required all customers to reset on first login. Communicating this clearly drops the support volume by 60-70%.
  2. SEO recovery follows a predictable curve. 10-15% organic drop at week 2; bottom at week 6-8; back to baseline at week 16-24. Sites that go live with sub-90% redirect coverage see a deeper trough.
  3. Image asset URL breakage is mechanically simple to fix but easy to miss. Old image URLs deep-linked from email campaigns and external blogs all break unless you proxy-redirect. Half our migrations had to retrofit an image redirect rule post-launch.
  4. Subscription migrations to Shopify are the project-killing risk. Shopify Subscriptions and the major third-party apps (Recharge, Bold) each have different migration paths. The two failed migrations in our 23-sample dataset both stalled on subscription billing.
  5. B2B price-tier migrations need explicit Plus / Shopify B2B planning.Out-of-the-box Shopify Advanced doesn't handle multi-tier B2B pricing well; migrations that don't plan for Plus end up either rewriting requirements or building custom Liquid logic that won't survive theme updates.

Recommendations

For merchants on WooCommerce or OpenCart

Migration is straightforward; the math usually favours moving for security and ops reasons more than cost. Plan a 6-8 week timeline; budget $3-5k for the engineering work plus $1-2k of one-time tooling and licence costs. We run this end-to-end as part of our Shopify development services.

For merchants on Magento 2

The decision is harder. Magento 2 has feature depth Shopify only partly matches; if you're using configurable products with deep attribute logic, multi-store inheritance, or B2B catalogues, plan carefully. Our tech stack migration engagement runs the architecture-mapping work as a week-long discovery before committing to the migration.

For merchants on custom platforms

Migration is bespoke ETL work, not a templated job. Budget $9-14k. Plan 12-16 weeks. Run a parallel-run period if traffic is significant, going dark for even one weekend on a custom platform with deep customer workflows is a customer-trust event.

Limitations

23-migration sample reflects the merchants who came to us; selection bias toward more complex catalogues. The cost figures use blended UK / India engineering rates. Subscription and B2B sub-samples are small (4-7 engagements), magnitudes are directional.

What actually drives migration cost (and what doesn't)

The MTR for a Shopify migration is mostly a function of the source platform's data model and the merchant's feature surface, not the destination tier on Shopify. Plan around the source-side complexity. The 23-merchant dataset above gives a reasonable cost band for any migration discussion before any custom scoping.

Pair this with the Plus vs Advanced cost analysis and the WordPress speed study that often kicks off a replatform conversation:

The replatform engagement, plus the post-launch retainer that absorbs supplier-feed scripts, third-party app version bumps, and SEO recovery work:

Frequently asked questions

How much does it cost to migrate to Shopify from another platform?
Across 23 migrations we have closed: WooCommerce and OpenCart average $4k, Magento 2 averages $9k, custom platforms average $11k. The total range is $3k to $14k. Source-platform data complexity is the biggest cost driver.
How much organic traffic should I expect to lose during a Shopify migration?
10-15% at week 2; bottom at week 6-8; back to baseline at week 16-24. Sites that go live with sub-90% redirect coverage see a deeper trough. The decay curve is predictable enough to plan around.
What is the most underestimated risk in a Shopify replatform?
Customer password reset friction. Hashing schemes don't carry across platforms, so every customer needs a one-time reset on first login post-migration. Communicating this clearly drops support volume by 60-70%.

The engagements this writing comes from

UK · Europe · Worldwide

selected work

Where these numbers came from

Production systems with the delivery figures attached.

Creoate product interface01
B2B commerce

The engineering partnership behind a cross-border wholesale marketplace.

Next.js storefront, Python ingestion pipelines, DynamoDB data layer and AWS infrastructure.

8+ yearsone team, still shipping
Ontick product interface02
Event technology

A commission-free ticketing platform built for ownership and scale.

Multi-organiser commerce, Stripe instalments and two native apps in one connected platform.

£2M+processed since launch
Easyship product interface03
Global logistics

Embedded product engineering for a global shipping platform.

Rate, tax and duty calculators, server-rendered courier pages and a custom MongoDB CMS.

550+couriers on the calculator
TEFL.ie product interface04
Education & training

A course-commerce and learning platform wired into one system.

WordPress and WooCommerce, a Moodle LMS, Stripe deposits and Zoho CRM, tied together with Zapier automation.

8 yrsengineer & run, since 2017
All White Laser product interface05
Medical aesthetics

A bespoke platform that finances aesthetic machines on Direct Debit.

A lead-to-billing system on GoCardless Direct Debit, provider certification, and a React Native app for machine owners.

9 yrsbuild & run, since 2017
Decofetch product interface06
Luxury commerce

A custom furniture marketplace engineered from storefront to infrastructure.

Server-rendered Next.js commerce over a Laravel API, bespoke operations tooling and re-architected AWS infrastructure.

0→livecustom, front to back
BA Engine Room product interface07
AI operations

An AI-native operating system that runs a consultancy lead to invoice.

Discovery briefs, e-signed contracts, Stripe deposits, delivery milestones and time tracking in one operational system.

0→1built from the ground up
PlusHeat product interface08
Home services

A conversion platform for a growing UK boiler-cover provider.

Custom plan configuration, postcode-qualified lead journeys, CRM synchronisation and campaign landing pages.

5 yrsweb partner since 2021
Léonia product interface09
Beauty commerce

A custom Shopify store for a French beauty brand.

Custom theme, customer accounts, loyalty rewards, referrals and gift-with-purchase offers.

5 yrspartners since 2021
Shutters 365 product interface10
Home improvement

Made-to-measure shutters with live pricing.

A seven-step product builder with live previews, sample orders and supplier tools.

7-stepconfigurator, live pricing
Bloc Ads Manager product interface11
Advertising

A self-service advertising platform for venues.

Campaign creation, audience targeting, in-app ads and reporting linked to venue check-ins.

check-insclosed-loop attribution
Bloc product interface12
Social events

An events app with the tools to run it.

Mobile app, backend, advertising tools, a digital marketplace and website.

4+ yrsone team, five codebases
Zonely product interface13
Social mobile

Two mobile apps for real-time companionship.

Customer and buddy apps with per-minute billing, wallets, moderation and admin tools.

2 appsconsumer + buddy, iOS & Android
Player Profile Hub product interface14
Grassroots football

Player profiles and discovery for youth football.

Verified profiles, video highlights, coach discovery and safeguarding on web and mobile.

0→1built from the ground up
DeepSpatial product interface15
Geospatial AI

Websites and a talent platform for DeepSpatial.

Corporate and investor pages, the Xploor talent platform and ongoing releases on AWS Amplify.

2 yrsone team, ongoing
Yippee Malta product interface16
Travel

Tour bookings with a custom mobile-first checkout.

A multilingual website connected to the booking API, with deposits, coupons and affiliate tracking.

90+core web vitals, mobile & desktop
Professional Energy product interface17
Energy brokerage

One platform for tenders, contracts and accounts.

Supplier tenders, contract management, brokerage accounting and client records.

100+suppliers in one tender

Tell us what you are trying to build.

A thirty-minute call with the engineer who would run it.

Book a call