eCommerce

Shopify to Medusa Migration: The Honest Guide (2026)

How to migrate from Shopify to Medusa.js without wrecking your SEO or your customer base — what exports, what doesn't, the forced password reset, phased…

MManojAugust 6, 202615 min read
eCommerce#\"medusa\#\"shopify\#\"migration\#\"ecommerce\
Share

A Shopify to Medusa migration is mostly not a data problem. Products, customers and orders move with a script in a few days. What takes months is everything Shopify was doing invisibly — checkout, payments, tax, fraud, transactional email, PCI scope — plus two things nobody warns you about: your export only reaches back to 2019,. Every customer gets a forced password reset on cutover.

Short answer

A Shopify to Medusa migration runs in five phases: audit. Export, rebuild the commerce primitives, rebuild the plumbing Shopify hid from you, run both systems in parallel on one channel, then cut over with a complete 301 redirect map. Budget three to six months for an experienced team on a standard catalogue, and a full year to real stability. The data migration is the easy part; the plumbing and the SEO map are where migrations actually fail.

I am Manoj, an open-source implementation consultant at Mith Tech in Bengaluru. I build Medusa.js storefronts for brands leaving hosted platforms,. This is a guide to work I do commercially — which is exactly why the first section is a list of reasons not to do it. Honest take: I turn down more of these projects than I take, because most stores asking for one have a problem a migration will not solve.

Should you actually migrate?

Probably not, and it is worth ten minutes to be sure. Replatforming is one of the few decisions in ecommerce that is genuinely hard to reverse,. The failure mode is not a broken site — it is six months of leadership attention spent on infrastructure instead of on selling.

Run these three tests before anything else.

Test one: name the blocker in one sentence. Something Shopify will not let you do, that no tier or app fixes. "We cannot run multi-level purchase approvals for dealer accounts" passes. "It's expensive and support is bad" does not — the second is a grievance, and grievances get worse after a migration. Because you go from limited support to none.

Test two: rule out tier, scope and agency. A great deal of what merchants describe as a platform limitation is a Plus feature they are not paying for, a request outside a commerce platform's job, or a development partner who is the actual bottleneck. All three are dramatically cheaper to fix than replatforming.

Test three: do the fee arithmetic. Total your annual plan fee, platform transaction fee, gateway MDR, apps and currency conversion, and compare it to a developer plus hosting. The full fee stack breakdown walks that calculation. If the gap is not decisive, the economics do not support owning. For a sense of what you are moving to before you commit, the open-source Shopify alternative guide covers Medusa against the other options.

The counter-case, stated plainly

Experienced merchants who have done this converge on the same warnings: a developer with 25 years' experience still needed six months; agency estimates for a genuinely reliable rebuild reach six figures; and the recurring theme is that maintenance, not the build, is the real cost. Shopify handles hosting, PCI compliance, fraud scoring, tax calculation and peak-season capacity invisibly. You are not removing that work — you are taking ownership of it.

Skimmable summary: Migrate only if you can name a blocked capability in one sentence, have ruled out tier and agency problems, and the fee arithmetic is decisive. Support quality and monthly price are not sufficient reasons.

What data can you actually get out of Shopify?

Less than you assume, and the gaps are worth discovering now rather than in week three of the project.

Shopify's export is CSV-only, capped at roughly 15MB per file, with incomplete metafield support, and the standard data export reaches back only to 1 January 2019. Anything older is not in the file. There is also no raw database access — no SQL, no arbitrary joins, everything through rate-limited APIs.

12 rows · click a column to sort

Products, variants, inventory
Customers (records)
Orders since Jan 2019
Orders before Jan 2019
Metafields⚠️ Incomplete
Product and content images⚠️ URLs, re-host yourself
Discount and promotion rules⚠️ Rebuild by hand
Customer passwords
Analytics and attribution history
Abandoned-cart detail
Customer journey / behavioural data
App-owned data (reviews, loyalty, subscriptions)⚠️ Per app, via that app

Filter the matrix below by what survives. Four of the twelve categories do not come out at all — and the ones that catch people are never the ones they worried about.

InteractiveWhat Survives the Movelink

Filterable matrix of every Shopify data category — products, orders, metafields, analytics, passwords, app-owned data — graded by whether it exports cleanly, partially, or not at all.

Products, variants, inventory

Straight CSV or API export; the easy part of any migration.

Customer records

Names, emails, addresses and order association all come out.

Orders since 1 Jan 2019

The standard export window. Everything inside it transfers.

Orders before 1 Jan 2019

Outside the standard export. Needs a separate API extraction, or lives on as a read-only archive.

Metafields

Export support is incomplete — and metafields are where mature stores keep the product data they care about. Audit yours early.

Product and content images

You get URLs, not files. Re-host everything and rewrite the references.

Discount and promotion rules

Logic does not transfer. Rebuild by hand and test against real carts.

Customer passwords

Hashes are never exported. Every customer is force-reset on cutover — plan it as a campaign, not a task.

Analytics and attribution history

Does not export in any form. Warehouse the reports you actually use before you cancel.

Abandoned-cart detail

Gone. If recovery flows drive real revenue, rebuild them from scratch on the new stack.

Reviews, loyalty, subscriptions

Owned by each app vendor, not Shopify. Export separately from each, on their terms.

Subscription payment tokens

Portability depends entirely on your processor. Confirm this first — it can decide the whole timeline.

Four of twelve categories do not come out at all. Run your export before you decide, not after — discovering the 2019 floor in week three of a migration is an expensive way to learn it.

Three of these need active work before you cancel anything:

  1. App-owned data is not Shopify's to give you. Reviews, loyalty points, subscription contracts and support history live with the app vendor. Export each one separately, from that vendor, on their terms — and check whether subscription payment tokens can transfer at all, because often they cannot and every subscriber must re-authorise.
  2. Analytics history is gone the day you leave. If years of attribution and cohort data inform how you buy media, warehouse the reports you actually use into your own store before cutover. Nobody does this and everybody regrets it.
  3. Pre-2019 orders need a separate extraction path — API pulls, or an archive you accept living outside the new system as read-only records.

Skimmable summary: Products, customers and post-2019 orders export cleanly. Metafields are partial, app-owned data must come from each vendor, and analytics history, attribution and passwords do not export at all.

What breaks when you switch, and how do you protect SEO?

The URL structure breaks, and that is the single largest recoverable risk in the project.

Shopify forces /products/, /collections/ and /blogs/ into every URL and does not let you change it. Your new platform has no reason to reproduce those paths — which means every product, collection, blog post and policy page gets a new address, and every old address needs a 301 redirect mapped in advance. Miss a chunk of them and you lose the rankings those pages carried.

The full list of what needs handling on cutover day:

  • A complete 301 map, product by product and collection by collection. Generate it from your export, not by hand, and test it against a crawl of your live site.
  • Canonical tags, because Shopify products resolve under multiple collection paths and your new site should not inherit that duplication.
  • Structured data — product, offer, review and breadcrumb schema all need rebuilding.
  • The sitemap, regenerated and resubmitted in Search Console the day you cut over.
  • Every pixel and conversion event. Note that Shopify's own checkout extensibility migration broke thank-you-page tracking for many merchants in 2025 — do not assume your current tracking is a healthy baseline. Verify it before you copy it.
  • Customer accounts. Passwords cannot migrate; every customer is force-reset.
  • Email deliverability. Shopify sent your transactional email from its own reputable infrastructure. Yours starts at zero — warm the domain weeks in advance.
  • Subscription payment tokens, if you run subscriptions. Check portability with your processor early; this can single-handedly determine your timeline.

The password reset is a churn event, not a task

Every customer must set a new password on their first return visit. On a large base that is measurable churn if handled as a silent technical change. Treat it as a campaign: email in advance, explain why, make the reset a single click, and give people a reason to come back and do it. Merchants who skip this step see the cost in their repeat-purchase rate for a quarter.

Skimmable summary: Shopify's forced URL structure means every page moves and needs a mapped 301. Also rebuild canonicals, schema, sitemap and pixels — and treat the forced customer password reset as a marketing campaign.

What do you have to build that Shopify was doing for you?

This is the part that determines whether the project succeeds, and the part every optimistic quote leaves out. Medusa gives you excellent commerce primitives — products, carts, orders, payments, inventory, promotions, an admin — as modular building blocks. It does not give you the operational surround.

9 rows · click a column to sort

On Medusa it becomes
PCI compliance scopeYour responsibility — keep card data out of your systems via a hosted gateway field
Fraud scoring on every orderAn integration you choose, configure and tune
Tax calculation and nexusA tax service you integrate, or a real ongoing problem
Transactional email at scaleA provider, a warmed domain, and deliverability monitoring
Hosting, CDN, autoscalingYour infrastructure bill and your on-call rota
Security patchingYour release cadence
Peak-season capacityLoad testing before every sale event
Uptime during Black FridayYours, at 2am
Cookie and privacy complianceYour implementation

None of it is exotic and all of it is real. It is also where the "'Just' developers and programmers is a VERY strong 'just'" objection comes from, and that objection is correct. The honest way to scope a migration is to price this table first and the storefront second.

What Medusa genuinely gives you

No platform cut of your sales, a database you own and can query, unlimited checkout customisation, real B2B primitives, and no vendor deciding what your store may do next.

What it genuinely costs you

A permanent developer, a thin plugin ecosystem next to Shopify's app store, and ownership of every operational concern in the table above.

One architecture decision saves an enormous amount of this pain, and it is the one I recommend by default: keep Medusa as the commerce layer and resist rebuilding back-office logic inside it. Medusa is very good at storefront, cart, checkout, orders, payments and inventory. It is not an accounting system, a warehouse management system or a manufacturing planner, and every hour spent making it pretend to be one is an hour not spent on the thing you migrated for. Point it at whatever finance and inventory systems you already run — that boundary is what keeps a Medusa build maintainable at year three.

Skimmable summary: Medusa provides commerce primitives, not operational surround. PCI, fraud, tax, email deliverability, hosting, patching and peak capacity all become yours — price these before the storefront.

How do you run the migration without betting the business?

In phases, on a channel that is not your main revenue, with both systems live at once. The single biggest predictor of a bad migration is a big-bang cutover with a fixed date near a sales peak.

1

Audit and archive (weeks 1–2)

Export everything, including from each app vendor separately. Warehouse the analytics reports you actually use. Crawl your live site to produce the definitive URL inventory that becomes your redirect map. Confirm subscription token portability with your processor now — it can change the whole plan.

2

Build the commerce core (weeks 3–8)

Stand up Medusa, import products, variants and inventory, wire your payment gateway, and rebuild tax rules. Get one real order flowing end to end — placed, paid, fulfilled, invoiced, refunded — before you build anything pretty. That round trip surfaces more problems than any amount of planning.

3

Build the plumbing (weeks 6–14, overlapping)

Fraud tooling, transactional email with a warmed domain, monitoring and alerting, backups with a tested restore, staging environment, and the ERP integration if you are running one. Load-test at three times your peak hour. This phase is longer than the storefront and is where honest timelines separate from optimistic ones.

4

Pilot one channel (weeks 12–20)

Run a genuine slice of the business on the new stack while Shopify keeps serving everything else. Wholesale is the ideal pilot: real orders, real money, forgiving customers, and it is often the channel the migration was for. Fix what a month of real usage exposes.

5

Cut over (one weekend, well away from peak)

Freeze catalogue changes, do the final delta import, deploy the redirect map, switch DNS, resubmit the sitemap, and send the password-reset campaign. Have a rollback plan you have actually tested. Never do this in November, and never in the run-up to Diwali.

6

Watch for 90 days

Monitor rankings weekly against your pre-migration baseline, watch the 404 log daily for redirects you missed, track repeat-purchase rate for password-reset churn, and keep the Shopify store on a minimum plan for a quarter as a read-only reference. Cancel only when nobody has needed it for a month.

On timelines, be sceptical of anything shorter than what practitioners report. A developer with 25 years' experience described six months for a full build. An experienced commenter advised budgeting honestly for the first twelve months of dev and ops before hitting stability. For a standard catalogue with a competent team, three to six months to cutover and a year to genuine stability is the realistic frame.

Skimmable summary: Audit and archive, build the commerce core until one order round-trips, build the plumbing, pilot on wholesale, cut over away from peak with a tested rollback, then watch rankings and 404s for 90 days.

What does it cost?

A Shopify to Medusa migration lands somewhere between a competent contractor's three months and a six-figure agency engagement, and the range is genuine rather than evasive — it is driven by four variables.

VariableCheap endExpensive end
CatalogueHundreds of SKUs, clean dataTens of thousands, heavy metafield use
IntegrationsGateway and shipping onlyERP, PIM, POS, 3PL, marketplaces, loyalty
B2B complexityNone — straight D2CTiered pricing, approvals, credit terms, quotes
ContentSmall catalogue siteThousands of URLs, heavy editorial

Set those four to your own situation:

CalculatorMigration Effort Estimatorlink

Estimates engineer-weeks to cutover from catalogue size, integration count, B2B complexity and content volume, with the fixed operational-plumbing overhead every migration carries.

Catalogue
Integrations
B2B complexity
Content & SEO surface
Commerce build
12 wk
Operational plumbing
6 wk
Realistic range
3–7 mo
This estimates time to cutover, not time to stability. Merchants who have done it consistently report roughly a year before the new stack stops demanding attention. The six plumbing weeks are fixed overhead — PCI scope, fraud tooling, transactional email, monitoring, backups and load testing do not shrink because your catalogue is small.

For reference points from merchants rather than vendors: one experienced developer put a genuinely reliable from-scratch ecommerce build at around $300,000 and a year with an agency, while acknowledging it can be done for far less with more risk. A solo developer who migrated their own store did it in six months alongside maintaining the old one, and estimated one to two months if they had focused on it exclusively.

Medusa specifically is cheaper than "from scratch" because the commerce primitives already exist — a standard catalogue migration is often quoted at around a week of engineering for the data alone. The cost is in everything around it, which is why the plumbing table above matters more than the SKU count.

3–6 mo
Realistic time to cutover
12 mo
Realistic time to stability
0%
Platform cut of sales afterwards

Skimmable summary: Cost is driven by catalogue size, integration count, B2B complexity and content volume. Merchant reference points range from six months solo to ~$300k and a year via an agency; Medusa reduces the build but not the surrounding work.

Frequently asked questions

How long does a Shopify to Medusa migration take?

Three to six months to cutover for a standard catalogue with an experienced team, and about a year to genuine stability. The data migration itself is often a week of engineering. What takes the time is rebuilding the operational layer Shopify provided invisibly — fraud, tax, transactional email, monitoring, load capacity — and running a proper parallel pilot before cutover.

Will I lose my Google rankings?

You will see a dip unless the redirect map is complete, because Shopify's forced /products/ and /collections/ URL structure means every page moves. Generate the 301 map from a crawl of your live site rather than by hand, deploy it at cutover, resubmit your sitemap immediately, and monitor 404s daily for a month. A well-executed migration typically recovers within weeks; a sloppy one may not fully recover at all.

Can I move my customers' passwords to Medusa?

No. Shopify does not export password hashes, so every customer must reset on their first return visit. Treat this as a planned marketing campaign — email customers before cutover explaining the change, make the reset one click, and give them a reason to come back — rather than as a silent technical event that quietly costs you repeat purchases.

What Shopify data can't I export at all?

Analytics history, attribution data, abandoned-cart detail and customer journey behaviour do not export. Neither do customer passwords. Orders before 1 January 2019 are outside the standard export. App-owned data such as reviews, loyalty balances and subscription contracts belongs to each app vendor and must be exported separately from each one, on their terms.

Is Medusa production-ready for a real store?

Yes — it is MIT-licensed, used in production by serious brands, and its commerce primitives are mature. The honest caveats are that its plugin ecosystem is thin compared to Shopify's app store, so more capability is built rather than installed, and that you need at least one developer permanently. Merchants who have moved consistently report loving the control and warning about the maintenance.

Should I move to Medusa or WooCommerce?

Medusa if you have or will hire a developer and want a modern, API-first, TypeScript stack with real B2B primitives. WooCommerce if your business is content-led, you already live in WordPress, and you accept a heavier security and maintenance burden — merchants describe it as capable but vulnerable to hacks and bugs. Both remove Shopify's per-sale platform fee; neither removes your gateway's MDR.

Does Medusa handle accounting and inventory, or do I need another system?

Medusa handles inventory as a commerce concern — stock levels, reservations, multi-location availability — which is enough for most D2C brands. It is not an accounting system and does not do bill of materials, landed costing or production planning. If you make or assemble goods, or you need statutory books, keep those in whatever finance system you already run and let Medusa own the commerce layer. That boundary is what keeps the build maintainable.

Closing

Every failed replatform I have seen failed for the same reason: somebody scoped the storefront and forgot the plumbing. The products import in an afternoon. The fraud tooling, the warmed sending domain, the tax rules, the load test before Diwali, the 301 map generated from a real crawl — that is the project, and it is where the months go.

So scope it in the right order. Price the plumbing table first, the storefront second, and pilot on wholesale before you touch your main channel. Do that and a Shopify to Medusa migration is a manageable engineering project with a known shape. Skip it and you will spend a year rebuilding, badly, what Shopify was quietly doing for $105 a month.

About the author

I am Manoj, an open-source implementation consultant at Mith Tech, an independent Medusa.js, Frappe and n8n studio in Bengaluru. I run Shopify-to-Medusa migrations for brands in India and abroad — and I turn down the ones where the honest answer is that the migration will not fix the problem.

Thinking about a move off Shopify?

Send us your catalogue size, integration list and B2B requirements. We will come back with a phased plan, a realistic range, and the parts of your current setup that will fight you — before you commit to anything.

Now work out what a headless build costs you

Price a Medusa build against what you pay now for Shopify or WooCommerce — platform fees, apps and transaction cuts included, over three years.

M

Written by

Manoj

Founder of Mith Tech, an open-source ERP & automation studio. Hands-on ERPNext/Frappe implementation across multi-branch, multi-warehouse Indian operations — GST/TDS/PT compliance, branch-level permissions, and custom Frappe apps that give management real-time visibility.

Free · By email

Get practical ERPNext & automation guides

New implementation guides, cost breakdowns and open-source tips for Indian businesses — occasionally, straight to your inbox. No spam.

Already a Mith Tech client?

Help the next operator choose.

Most teams evaluating ERPNext have no way to tell who actually delivers. If we’ve run an implementation for you, two lines on Google count for more than anything we can write about ourselves.

Leave a Google review

Only if we’ve actually worked together — Google filters reviews from non-customers, so an honest one is worth more than ten polite ones.

Keep reading

See what this looks like for your business

A 30-minute working session with a principal consultant. We pressure-test the architecture and outline the engagement model that fits your governance and procurement posture. You leave with a written brief.

0
Published on 6 August 2026

Manoj

Comments & ratings

No comments yet. Start a new discussion.