Magento 2 to Shopify Migration Agency: What to Evaluate Before You Sign

Jump to section›
Short answer: a Magento 2 to Shopify migration agency should be evaluated on three things — whether they can name the Magento 2 features that have no 1:1 Shopify equivalent before you ask, whether they can tell you precisely which of your requirements need Shopify Plus and which don't, and whether they own the redirect map and structured data as deliverables rather than afterthoughts. Everything else (design, theme, timeline) is downstream of those three. Most migrations that go badly go badly because the gap analysis happened after the contract, not before.
This is written from 10 years and 50+ ecommerce projects, including four Magento 2 storefronts (a B2B dental supplier on M2 + Next.js headless, a Vietnamese retail brand on GraphCommerce headless, an Australian eyewear chain serving 120+ physical locations, and a Singapore fashion store running 12 currencies) and nine Shopify storefronts. The gaps below are the ones that actually cost money.
#What does a Magento 2 to Shopify migration agency actually do?
Four workstreams, and an agency that only quotes for the first one is quoting for a fraction of the job:
- Data migration — products, variants, customers, order history, and the attribute model. This is the part everyone quotes for. It is also the easiest part.
- Feature gap resolution — deciding, per Magento feature, whether it maps natively, needs an app, needs a Shopify Function, needs Plus, or gets dropped. This is where the real cost lives.
- URL and SEO continuity — the redirect map, canonical strategy, and structured data. A Magento 2 store with layered navigation has generated crawlable faceted URLs for years. Those URLs have equity and they have no Shopify equivalent.
- Post-launch stabilization — tax rounding, multi-currency, customer-group pricing, and the edge cases that only surface with real orders.
Ask which of these four are in the quote. If workstream 2 is described as "we'll figure it out during discovery," the discovery risk is being transferred to you.
#Which Magento 2 features have no 1:1 Shopify equivalent?
This is the single most useful table to bring to a first call. Ask the agency to fill it in for your store before you sign.
| Magento 2 feature | Shopify reality |
|---|---|
| Customer group pricing | No native equivalent outside B2B. Needs Shopify's B2B catalogs and price lists (plan-gated), a Function, or an app |
| Multi-store views (one backend, N storefronts per locale/currency) | Shopify Markets covers currency and locale, but not arbitrary per-view catalogs and content. Some setups need separate stores |
| Layered navigation on custom attributes, with indexable URLs | Shopify filtering is tag/metafield-based and the faceted URLs differ. Your existing indexed facet URLs need an explicit redirect decision — usually to the parent collection |
| Custom EAV attributes | Metafields and metaobjects. Structurally fine, but attribute-driven logic (validation, dependent attributes) has to be rebuilt |
| Multi-source inventory with source priority | Shopify locations plus routing rules. Source-priority logic often needs an app |
| Tiered / quote-based B2B pricing | Requires a plan that supports B2B capabilities, plus new customer accounts |
| Native CMS with hierarchical pages | Shopify pages are flat. Hierarchy is a theme/navigation convention |
| Cron-driven custom business logic | Shopify Functions, apps, or an external service. There is no "run this PHP on a schedule inside the platform" |
The pattern: Shopify is faster and cheaper to run, and less willing to be bent. That trade is usually worth taking. It is only worth taking with your eyes open about which bends you rely on today.
#What does Shopify Plus actually gate — and what doesn't need it?
Agencies overclaim here in both directions. Verified against Shopify's own developer documentation as of 9 July 2026:
Requires Shopify Plus:
- Checkout UI extensions on the information, shipping, and payment steps
- Checkout branding customization via the GraphQL Admin API
Does not require Plus (available on all plans except Shopify Starter):
- Shopify Functions — discounts, payment customizations, delivery customizations, cart transforms
- Thank-you page and Order status page extensions
- Web pixel extensions
Plan-gated separately: B2B capabilities (company accounts, catalogs, price lists, payment terms) require a plan that supports B2B, and require new customer accounts.
Why this matters commercially: a large share of "you'll need Plus for that" claims are really Function-shaped problems. Custom discount logic, delivery rules, and payment method gating are Functions, and Functions are not Plus-gated. If someone tells you a discount rule forces a Plus upgrade, ask them to name the specific extension target that requires it. If the answer is a checkout UI change on the information/shipping/payment steps, they're right. If it's business logic, they're probably not.
Conversely: if you customize the thank-you page today and someone quotes Plus for it, that's also wrong.
#What sets the migration timeline?
There is no honest industry-average number here, and anyone quoting you one from a blog post is quoting you a number they didn't measure. Four variables set the timeline on every M2 → Shopify project:
- Attribute-model complexity. A store with 15 attributes and simple/configurable products is a different project from one with dependent attributes driving price and validation.
- Order history depth and whether it must be queryable in-admin. "Migrate order history" and "migrate order history so support can search it" are different scopes.
- Number of integrations with a system of record. ERP, PIM, POS, tax engine. Each one is a contract you now have to re-implement against Shopify's APIs. Integrating an M2 store with an ERP for order and inventory sync is typically the longest-tail item in a replatform — longer than the storefront.
- Whether you're keeping the frontend headless. If you're on GraphCommerce or a custom Next.js frontend today, the storefront may survive the backend swap. That changes the shape of the project entirely and it's worth asking about explicitly.
An agency that gives you a timeline before answering those four has given you a sales number.
#What breaks after launch?
From projects, in rough order of how often it bites:
- Redirect gaps on faceted URLs. The M2 layered-navigation URLs that were indexed for years now 404. Ranking loss shows up 2–6 weeks later, which is late enough that nobody connects it to launch.
- Zero-dollar orders. 100%-discount, gift-card-covered, and $0 test orders behave differently on Shopify — they can skip payment-gateway steps that downstream apps and flows assume ran. Anything keyed on a payment event needs testing at $0 explicitly, not just at $1.
- Customer-group pricing silently flattening. Wholesale customers see retail prices for a week before anyone notices, because nobody wrote the test.
- Multi-currency rounding. Prices that were computed per store view are now converted, and the rounded output disagrees with what the finance team expects.
- Structured data regression. The M2 store emitted Product schema with reviews and ratings. The new Shopify theme emits Product schema without them, because the review app hasn't been reconnected. Rich results disappear. Which brings us to the part almost nobody scopes.
#How does a migration affect AI visibility in ChatGPT, Perplexity, and AI Overviews?
Direct answer: a replatform rewrites every machine-readable signal a store emits — URLs, structured data, crawler policy — and answer engines re-derive their picture of your brand from those signals. A migration is therefore the single highest-leverage moment to fix AI visibility, and the single easiest moment to lose it silently, because nothing in a standard migration checklist looks at it.
Structured data is where it goes wrong, and it goes wrong at good brands too. Checked live on 9 July 2026, a well-run premium DTC store on Shopify — Everlane — emits ProductGroup schema on its product pages with 11 variants, each carrying sku, price, priceCurrency, and availability. That's a genuinely competent baseline; most stores don't get that far. What that schema does not carry: aggregateRating, review, gtin13, shippingDetails, or hasMerchantReturnPolicy. There is no BreadcrumbList on the page.
The consequence is concrete. When a model is asked "is this jacket any good" or "can I return it", there is nothing structured on the page to cite, so the model reaches for a third-party review site — and cites that site instead of the brand. The brand's own page can't answer the question that was asked about the brand.
Three things to require in a migration scope, all cheap if done during the project and expensive later:
- Product schema completeness on the new theme, including
aggregateRatingandreview(reconnect the review app before launch, not after),gtinwhere you have it, andshippingDetails/hasMerchantReturnPolicyon offers. These are the fields agent-driven shopping surfaces read. - Explicit crawler policy. Name the AI crawlers in
robots.txtrather than leaving them to inheritUser-agent: *. Everlane's robots.txt declares exactly two user-agents —*andadsbot-google— so GPTBot, PerplexityBot, ClaudeBot, and Google-Extended all inherit the default. That happens to permit crawling, but it's an inherited outcome, not a decision. Ours states it:luma-e.com/robots.txtnames GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, anthropic-ai, Google-Extended, and CCBot explicitly. - An
llms.txtthat the rest of the site points at. Everlane serves a real one — 4.2KB of markdown at/llms.txt, which puts them ahead of most of the market. It isn't referenced from theirrobots.txt. A file nothing links to is a file that gets found late.
If you're replatforming anyway, the marginal cost of doing these three during the build is close to zero. The cost of retrofitting them across a live catalog is not.
#What to ask on the first call
Bring these seven. The answers tell you more than the portfolio does.
- "Walk me through the Magento features on my store that have no 1:1 Shopify equivalent." — Tests whether they've looked at your store or their template.
- "Which of my requirements need Plus, and which are Shopify Functions?" — Tests platform depth. Functions are not Plus-gated.
- "Who owns the redirect map, and when do I see it?" — Correct answer: they do, and before launch, not during.
- "What's your plan for my indexed layered-navigation URLs?" — There is no clean answer, only an explicit one. Any answer beats no answer.
- "How do you test $0 and 100%-discount orders?" — Tests whether they've been burned before.
- "What structured data will my PDPs emit on launch day, field by field?" — Almost nobody has this answer ready. The ones who do are the ones to shortlist.
- "If my frontend is already headless, does it survive?" — Tests whether they understand your architecture or just the platform.
#FAQ
Can order history be migrated from Magento 2 to Shopify? Yes, via the Admin API, but "migrated" and "searchable by support in the admin the way it was" are different scopes with different costs. Specify which you mean.
Do I need Shopify Plus to migrate from Magento 2? Not by default. Plus is required for checkout UI extensions on the information, shipping, and payment steps, and for checkout branding via the Admin API. Custom discount, delivery, and payment logic runs on Shopify Functions, which are available on all plans except Shopify Starter.
Will I lose SEO rankings migrating from Magento 2 to Shopify? Only through redirect gaps and structured-data regression, both of which are preventable and both of which are usually discovered weeks after launch. Require the redirect map and a field-by-field schema spec as pre-launch deliverables.
What happens to my B2B customers and their pricing? Magento customer-group pricing has no native equivalent on standard Shopify plans. It maps to Shopify's B2B catalogs and price lists, which require a plan that supports B2B capabilities plus new customer accounts — or to a Shopify Function, or an app. Decide which before the contract, not during UAT.
Should I keep my headless frontend? If you're running GraphCommerce or a custom Next.js storefront against Magento 2, the frontend can often survive the backend change. This meaningfully changes cost and timeline. Ask about it in the first conversation.
We build on both platforms — four Magento 2 storefronts and nine Shopify stores across DTC, luxury, B2B, and multi-currency retail — which is why the gap table above is a gap table and not a pitch for one side.
If you want the structured-data and AI-visibility half of this checked against your current store before you commit to a replatform, our free grader runs in five minutes and returns the field-by-field picture: luma-e.com/audit.