← Blog

Migrate Shopify to Medusa: What It Takes, What It Costs, and When It's Worth It

Most Shopify merchants who ask about migrating to Medusa are doing so because they’ve hit a specific wall: checkout customization they can’t get, API rate limits that are throttling their integrations, transaction fees that don’t stop growing, or catalog complexity that Shopify’s data model can’t represent. Those are real problems with real solutions. But migration is a serious project — 4–8 months, $50,000–$150,000 — and it’s not the right answer for everyone. Here’s what it actually involves.

Why Merchants Migrate Off Shopify

Shopify is a good platform. It onboards fast, the ecosystem is mature, and the baseline checkout performance is solid. If you’re at $0–$300K GMV and your product catalog is straightforward, staying on Shopify is defensible.

The reasons to leave are specific:

Transaction fees. Shopify charges 0.5–2% per transaction if you’re not on Shopify Payments. At $1M GMV that’s $5,000–$20,000/year in pure platform tax. At $3M it’s $15,000–$60,000. The fee math is one of the most common reasons mid-market merchants start looking at alternatives.

Checkout lock-in. Even on Plus, Shopify’s checkout flow is constrained. You can add UI extensions in defined zones, but you can’t change the fundamental address → shipping → payment sequence, replace the payment form UI entirely, or implement truly custom purchase flows (partial payments, deposit-then-balance, multi-party split payments).

API rate limits. Shopify’s REST API allows 2 requests per second on Basic/Standard plans, 4/second on Advanced, and up to 40 burst on Plus. For stores with aggressive inventory sync, real-time pricing from external systems, or high-volume order processing pipelines, these limits create architectural constraints that require expensive workarounds.

Catalog limitations. Shopify’s product model has 100 variants per product, 3 option types, and limited metafield flexibility. Complex catalogs — configurable products with 50+ options, hierarchical product relationships, B2B pricing tiers at the variant level — don’t fit cleanly.

If you’re experiencing one of these and it’s costing you measurable money or preventing a specific business capability, migration is worth evaluating. If you’re migrating because you read that headless is better, that’s not a reason.

For more on the specific thresholds where Shopify’s cost structure becomes a problem, see the true cost of Shopify at scale.

What “Migrating to Medusa” Actually Means

This is not a platform transfer where you export a CSV and click “import.” A Shopify-to-Medusa migration involves:

  1. Standing up a new Medusa backend — PostgreSQL database, Medusa server, infrastructure
  2. Building a new storefront — your Next.js frontend from scratch (or from Medusa’s starter kit)
  3. Migrating product data — products, variants, images, metafields, SEO metadata
  4. Migrating customer data — accounts, addresses, order history
  5. Migrating order history — historical orders for reporting continuity
  6. Rebuilding integrations — every app and integration from Shopify has to be replaced or rebuilt
  7. Running parallel operations — running both stores simultaneously during QA and cutover
  8. Cutover — the actual go-live, with Shopify kept live in read-only mode for a period

The storefront is built from zero. There is no “move your Shopify theme to Medusa.” Your Liquid theme doesn’t exist in this stack — you’re writing React components.

The Migration Components in Detail

Product Data Migration

Shopify’s API makes product export straightforward. The Shopify GraphQL API returns products, variants, images, metafields, and collections. A migration script reads from Shopify and writes to Medusa’s API.

Complications that add time and cost:

  • Custom metafields with non-standard types need mapping
  • Product-to-product relationships (bundles, related products) need manual mapping
  • Custom media (3D models, video) needs a new delivery solution
  • SEO metadata (meta titles, descriptions) lives in Shopify metafields and needs explicit migration

A catalog of 500–2,000 products with standard complexity takes 1–2 weeks to migrate, including QA. A complex catalog (5,000+ products, deep metafields, multi-level categories) takes 4–8 weeks.

Customer Data Migration

Customer accounts (email, name, address book) migrate cleanly. Passwords do not. Shopify stores passwords in a hashed format that Shopify controls — you cannot export password hashes. Every customer will need to reset their password on the new store.

This is a standard part of any Shopify migration and needs to be communicated clearly in the transition. A well-designed migration email sequence — “we’ve moved platforms, here’s how to access your account” — handles this gracefully. Expect 15–30% of customers to reset immediately, the rest over time.

Order history migrates via API — order IDs, products ordered, amounts, dates, fulfillment status. The data comes across as historical records; you can’t reprocess old orders through Medusa’s fulfillment system, but customers can see their order history.

Integration Rebuilding

This is the most variable cost in a Shopify-to-Medusa migration, and the one most merchants underestimate.

Every Shopify app you use is either:

  • Replaced by a Medusa plugin (Stripe, Klarna, standard payment processors, basic shipping integrations)
  • Rebuilt as a custom integration (anything non-standard)
  • Dropped because it no longer applies

Common integrations that need custom work:

  • ERP sync (NetSuite, SAP, Brightpearl) — $10,000–$25,000 per integration
  • 3PL / warehouse management (ShipBob, Whiplash, custom WMS) — $8,000–$20,000
  • Subscription billing (Recharge, Skio) — $15,000–$35,000 to rebuild subscription logic in Medusa
  • Loyalty/rewards (Yotpo Loyalty, LoyaltyLion) — $8,000–$20,000
  • Product reviews (Okendo, Stamped) — $5,000–$12,000
  • Custom ERP or POS — $20,000–$50,000+

Take your current Shopify app stack. For each app, determine whether a Medusa equivalent exists or whether it needs to be rebuilt. The integration count is the single biggest driver of total migration cost after the storefront build.

Storefront Build

The Medusa storefront is a Next.js application. You’re building it from scratch, which means UI components, product pages, collection/category pages, search, cart, checkout, account pages, and all the supporting pages (about, contact, FAQ, etc.).

Starting from Medusa’s official Next.js starter saves 4–8 weeks compared to a full scratch build. The starter covers core commerce pages (product, cart, checkout, account). You still customize the design, add brand-specific pages, and integrate any UI components unique to your store.

Storefront build cost: $25,000–$60,000 depending on design complexity and the number of custom UI patterns.

Realistic Migration Timelines

Store complexityTimelineCost range
Small store ($200K–$500K GMV, <500 products, basic integrations)3–5 months$50,000–$80,000
Mid-market ($500K–$2M GMV, 500–5K products, 3–5 integrations)5–8 months$80,000–$130,000
Complex ($2M+ GMV, 5K+ products, custom ERP/3PL, subscriptions)8–14 months$130,000–$250,000+

These ranges assume a competent external development team. In-house teams with good Medusa knowledge can reduce cost but rarely reduce timeline significantly — the work takes the time it takes.

What You Keep vs. What You Lose

You keep:

  • All product and catalog data
  • Customer accounts (minus passwords)
  • Order history
  • Your domain and SEO authority (with proper 301 redirects)
  • All historical analytics data in GA4

You lose:

  • Your Shopify theme (rebuild required)
  • All Shopify-native app functionality (rebuild or replace)
  • Shopify’s built-in analytics (replace with GA4 setup — see Medusa.js analytics)
  • Shopify’s hosting (your infrastructure now)
  • Shopify support (your developers are now support)

The infrastructure shift is real. On Shopify, when something breaks at 2am, Shopify’s infrastructure team is on it. On Medusa, when something breaks at 2am, your team is on it. You need either in-house developers or a retainer with an agency that knows the codebase.

When Migration Is Worth It

The financial case is straightforward: if the problems you’re solving (transaction fees, checkout limits, integration constraints) cost you more than the migration, it’s worth doing.

Transaction fee savings example: $2M GMV on Shopify Advanced with a third-party payment processor: 0.5% = $10,000/year. Migration cost: $100,000 one-time. Break-even: 10 years.

That math doesn’t work. But if you’re at $5M GMV with non-Shopify Payments at 2% ($100,000/year), a $150,000 migration breaks even in 18 months. That math does work.

Checkout revenue impact: If your current checkout abandonment rate is 78% and a properly built custom checkout brings it to 68%, on $1M GMV that’s $100,000 in recovered revenue annually. A $80,000 migration pays back in under a year.

Development velocity: If you’re spending $5,000–$10,000/month on Shopify Plus plus agency work to work around platform limitations, migration removes that recurring cost. At $7,000/month that’s $84,000/year — a $100,000 migration breaks even in 14 months and you have full ownership afterward.

When to Stay on Shopify

Stay on Shopify if:

  • You’re under $300K GMV and growing — the platform is appropriate for your stage
  • Your checkout converts well and you’re not hitting the customization ceiling
  • Your integrations are all available in the Shopify app store with no custom work needed
  • You don’t have developers in-house or on retainer who can own a Medusa codebase
  • You’re primarily content-and-SEO driven and ecommerce is secondary to the content experience

We cover this decision framework in more detail in when to migrate from Shopify to headless and the direct platform comparison at Medusa.js vs Shopify.

The Migration Risk You’re Not Thinking About

The biggest migration risk isn’t technical. It’s SEO.

A platform migration touches every URL on your site. If 301 redirects are not implemented correctly — if even a significant subset of product and category URLs return 404s after cutover — you will see organic traffic drops. Recoverable, but painful and slow.

A proper migration includes:

  • Full URL audit of the current Shopify store
  • Redirect mapping before a single line of Medusa code is written
  • Redirect implementation in the Next.js storefront
  • Pre-launch crawl verification
  • Post-launch monitoring for 404 spikes in Google Search Console

This is not optional. Budget 1–2 weeks of dedicated work for SEO migration, and treat any agency that doesn’t mention it in scoping as a warning sign.

Our custom WooCommerce store projects follow the same redirect discipline — SEO continuity is a deliverable, not an afterthought. The same standard applies to Medusa migrations.


FAQ

Can I migrate from Shopify to Medusa without taking the store offline? Yes. You run both stores in parallel until the Medusa store is production-ready. During the parallel period, Shopify remains the live store. You switch DNS to the Medusa store on cutover day and keep Shopify in read-only mode for 30–60 days as insurance. There should be no downtime if the cutover is executed properly.

What do I do with Shopify-specific apps that have no Medusa equivalent? You have three options: find an equivalent SaaS tool that integrates via API (many apps are platform-agnostic), rebuild the functionality as a Medusa plugin or custom backend service, or drop the functionality if it’s not critical. The integration audit should happen in week 1 of the migration project — it directly determines total cost.

Will my SEO rankings drop after migrating to Medusa? If 301 redirects are implemented correctly for every indexed URL, you should see minimal long-term impact. Short-term crawl disruption (1–4 weeks of slightly reduced traffic while Google re-indexes) is normal. Stores that see significant drops after migration almost always have redirect gaps — URLs that were indexed returning 404 errors.

How do I handle customer passwords during migration? You can’t. Shopify holds the password hashes and won’t export them. Send a migration email to all customers explaining the platform move and linking to a password reset flow on the new store. Build the reset flow before launch, not after. Automate a follow-up email 30 days later for customers who haven’t reset.

What’s the minimum team size to execute this migration in-house? A realistic minimum: 1 senior backend developer (Medusa/Node.js), 1 senior frontend developer (Next.js/React), 1 project manager, and access to a QA resource. Plan 6–10 months of work at this team size for a mid-market store. Smaller teams can do it — the timeline extends.

Is there a way to do a partial migration — move some functionality to Medusa while keeping Shopify for other parts? Technically possible but not recommended. Running two commerce systems simultaneously creates data consistency problems — inventory, orders, and customers living in two places. The complexity and ongoing maintenance cost of a hybrid architecture typically exceeds just doing the full migration cleanly.


Ready to evaluate whether a Shopify-to-Medusa migration makes financial sense for your store? See our fixed-price packages for how we scope migration projects. We’ll tell you the honest numbers before you commit to anything.