← Back to writing
Writing · magento 2

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

By Leo Nguyen · Jul 9, 2026 · 11 min read
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:

  1. Data migration — products, variants, customers, order history, and the attribute model. This is the part everyone quotes for. It is also the easiest part.
  2. 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.
  3. 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.
  4. 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. Product schema completeness on the new theme, including aggregateRating and review (reconnect the review app before launch, not after), gtin where you have it, and shippingDetails / hasMerchantReturnPolicy on offers. These are the fields agent-driven shopping surfaces read.
  2. Explicit crawler policy. Name the AI crawlers in robots.txt rather than leaving them to inherit User-agent: *. Everlane's robots.txt declares exactly two user-agents — * and adsbot-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.txt names GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, anthropic-ai, Google-Extended, and CCBot explicitly.
  3. An llms.txt that 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 their robots.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.

  1. "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.
  2. "Which of my requirements need Plus, and which are Shopify Functions?" — Tests platform depth. Functions are not Plus-gated.
  3. "Who owns the redirect map, and when do I see it?" — Correct answer: they do, and before launch, not during.
  4. "What's your plan for my indexed layered-navigation URLs?" — There is no clean answer, only an explicit one. Any answer beats no answer.
  5. "How do you test $0 and 100%-discount orders?" — Tests whether they've been burned before.
  6. "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.
  7. "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.

Frequently asked
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 before the contract is signed.
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 GraphQL 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.
How does a migration affect AI visibility in ChatGPT and Perplexity?
A replatform rewrites every machine-readable signal a store emits — URLs, structured data, and crawler policy. Answer engines re-derive their picture of the brand from those signals. Migrations most commonly lose AI visibility through incomplete Product schema, specifically missing aggregateRating, review, gtin, shippingDetails, and hasMerchantReturnPolicy fields.