Most pages that rank for shopify migration services describe what a partner will do. This one lists what the published price leaves out, and the questions that force each omission onto the quote before you sign.
What do Shopify migration services actually cover?
Shopify migration services move your catalogue, customers and order history from another platform into a new Shopify or Shopify Plus store, then rebuild or adapt the theme so the store looks and behaves as intended. That is the visible scope. It is also the part every vendor prices, which is why quotes look comparable when they are not.
The word “migration” covers three jobs of very different weight. The first is data transfer: products, variants, images, collections, customers, order history, discount codes. The second is rebuild: theme, navigation, checkout customisation, tax and shipping rules. The third is continuity: everything that keeps revenue flowing across the cutover, such as redirects, tracking, email flows, subscription billing and payment processing.
Quotes usually stress the first, mention the second, and leave the third to a line reading “post-launch support available”. A brand doing $3M–$30M in revenue lives or dies on the third. Data transfer is largely mechanical, and a self-serve import app does much of it. Continuity is where judgement, and cost, sit.
This article is not for brands below the $3M floor. Their catalogue is usually small enough that an import app and a weekend cover the transfer, and a specialist quote would be out of proportion. It is written for operators on Shopify Plus, or moving to it, with real order volume and at least one system the old platform quietly ran for them.
For the platform-side walkthrough, read the sibling guide on how a Shopify migration works. This piece is about the buying decision.
How do Shopify migration services price their work?
Migration quotes come in four packaging shapes: a fixed fee for a defined scope, time and materials against an estimate, tiered pricing by record count or catalogue size, and a platform-specific package from a partner who runs many moves from the same source system. No current figure for any of them is quoted here, because rates differ by partner and region and change often. Ask for the number in writing.
Each shape moves risk in a different direction.
Fixed fee
A fixed fee is comfortable for you until the scope changes. Everything not named in the statement of work is billed as a change request, and a data set nobody has inspected produces change requests by the dozen. A fixed fee is only as good as the audit that preceded it.
Time and materials
Time and materials is honest about uncertainty and exposes you to overrun. It suits messy data, custom order attributes or several source systems. Ask for a not-to-exceed cap, and for weekly burn reports against the estimate so the overrun is visible while it can still be discussed.
Tiered by records
Record-count tiers price the transfer but not the thinking. A store with a modest number of SKUs and heavy variant logic, bundles, or B2B price lists can cost more to move than a store with ten times the SKUs and a flat structure. Records are a proxy for effort, and a poor one.
Source-platform packages
A partner who has moved many stores off the same source platform, say Magento or BigCommerce, will know where its data hides. That knowledge is worth paying for. The relevant sibling guides are migrating from Magento to Shopify and migrating from BigCommerce to Shopify.
What are the hidden line items in a Shopify migration quote?
The hidden line items are the work and spend that a migration needs but a published price does not include: redirect mapping, app replacement, data clean-up, parallel running, QA on your real edge cases, tracking rebuild, and your own team’s time. None is exotic. Each is routinely priced at zero because nobody has been asked to price it.
Ten of them follow, with who normally ends up carrying each and the question that pulls it onto the quote.
| Hidden line item | Who normally carries it | Question that surfaces it |
|---|---|---|
| Redirect mapping and testing | Nobody, until traffic drops | “Will you deliver the redirect file before launch, and test it against a crawl of the old site?” |
| Data clean-up before import | You | “Who fixes duplicate customers, orphaned variants and inconsistent tags?” |
| App replacement | You, or a second vendor | “Which of our current apps have no Shopify equivalent, and who rebuilds them?” |
| Subscription and saved-card transfer | A specialist, or lost | “How are tokenised cards moved, and what happens to renewals during the cutover?” |
| Order history depth | You | “Are all historical orders imported, or a recent window only?” |
| Email flows and consent records | You | “Are consent status and suppression lists carried over, and who rebuilds the flows?” |
| Tracking, pixels and analytics | You | “Who rebuilds the tag setup, and who checks purchase events against orders?” |
| Parallel running and delta sync | You | “How do orders placed after the final export reach the new store?” |
| QA on real edge cases | You | “Which of our unusual orders will be replayed as tests?” |
| Overlap in platform fees | Finance | “How many months of both platforms should we budget for?” |
The takeaway from the table is the middle column. Most hidden costs are not fees a vendor forgot to charge, they are work that falls to your team by default because the statement of work is silent.
Redirects and search traffic
Every old URL that returns a 404 after launch is a page Google has to relearn. A URL structure that changes, as it does on most platform moves because Shopify fixes its own prefixes such as /products/ and /collections/, means a redirect for every indexed page, not just the top few. Blog posts, filtered collection URLs, old campaign landing pages and PDF downloads are the ones forgotten.
The audit that matters is a crawl of the old site plus a list of pages that earned links or traffic, matched against the new URLs. A service that promises “SEO-friendly migration” without naming the deliverable, a redirect file you can inspect, has not committed to anything. Insist on delivery before launch, not after.
App replacement
Your old platform probably ran things you have stopped noticing: a bundle builder, a wholesale price list, a custom shipping rule, a gift-wrap option, a returns portal. Some have direct Shopify equivalents. Others have similar apps with different behaviour. A few have no equivalent and need custom work.
The migration quote seldom lists these, because nobody has inventoried them. Do that inventory yourself before the first call, then ask each bidder to mark every item as included, replaced by an app you pay for monthly, or requiring custom build. The monthly app fees are a recurring cost that never appears on a one-off quote.
Data clean-up
Import tools faithfully move mess. Duplicate customer records, variants with inconsistent option names, products with no images, tags used three different ways by three former merchandisers: all of it arrives intact. The migration is the cheapest moment to fix it, and the most tempting one to skip.
Decide who cleans. If it is you, budget the hours and set the date the source data freezes. If it is the service, get the rules in writing, because “clean-up” is a word that stretches or shrinks to fit whichever party is billing.
Subscriptions and saved payment methods
Subscriptions are the object most likely to turn a migration into an incident. Saved cards are tokenised at the payment processor, not held in a CSV you can export. Moving them requires a coordinated transfer between processors, and the subscription app on the new store has to accept and correctly schedule the incoming contracts.
If you sell on subscription, a renewal that fires twice, or does not fire at all, is a revenue and trust problem within days. The involuntary-churn cost of a failed transfer is real; the failed-payment side of it is covered in involuntary churn. Put the subscription cutover on its own line in the quote, with a named owner.
Parallel running and the cutover window
Orders keep arriving while you migrate. The plan for those orders is a hidden line item: a freeze on the old store, a delta import of everything placed after the main export, or both. Ask the service to describe the sequence hour by hour, including who watches the first live orders and what triggers a rollback.
Parallel running also costs money in plain platform fees. Shopify publishes Shopify Plus at $2,500 USD per month on a 1-year term or $2,300 on a 3-year term (vendor-reported, from Shopify’s pricing page). Your old platform’s fee keeps running until you cancel it. For an illustrative case, a 2-month overlap on the 1-year Plus term is $5,000 in Plus fees alone, before the old platform’s bill. Work out your own overlap from the source platform’s contract terms, and treat the old platform’s number as metric to confirm. The broader Plus cost picture is in Shopify Plus cost.
QA on your real edge cases
A migration partner will test the standard journey: browse, add to cart, pay, receive a confirmation. Your business has unusual ones. A split shipment, a backorder, a pre-order with a deposit, a B2B customer with a negotiated price list, a discount stacked with a gift card, a return on an order placed before the move.
Write these down. Give the list to the service as required test cases, and require a signed record of each passing on the new store. If nobody is assigned to write the list, you are the assignee, because you are the only party who knows which orders your customer service team dreads.
Tracking and analytics
Purchase events, ad-platform pixels, email-platform integrations and the analytics data layer all get rebuilt during a migration. Any of them can quietly fail. A store can take orders perfectly while reporting half of them to your ad platforms, which then optimise on partial data for weeks.
Ask who rebuilds the tag setup, and who reconciles purchase events against actual orders in the first days after launch. The reconciliation is the part that gets skipped. If you run server-side tracking, the same question applies to Conversions API events.
Your team’s time
The largest hidden cost is rarely on any invoice. Someone on your side answers questions, approves mappings, tests the store, writes activation emails, briefs customer service and handles the launch-week tickets. That person has another job.
Estimate it the way a project manager would: list the decisions and reviews the migration needs from you, give each an owner, and check that owner has the time in the calendar. A migration delayed by an unanswered question costs the same as one delayed by an error.
What does a Shopify migration cost in total?
Total cost is the service fee plus everything on the hidden-line-item list, plus the revenue risk of a rough cutover. No universal figure is published, and any number quoted without knowing your catalogue, integrations and subscription setup would be invented. What you can do is build your own total from parts.
Work through it as a formula:
- Service fee: the quoted number, for the scope as written.
- Change-request reserve: a percentage of the fee you set aside, sized to how much of the data you have audited. An unaudited store deserves a larger reserve than an audited one.
- Recurring app fees: monthly cost of every replacement app, multiplied by your planning horizon.
- Platform overlap: months of both platforms multiplied by both fees.
- Your team’s hours: loaded hourly cost multiplied by estimated hours, across every role involved.
- Specialist add-ons: subscription transfer, custom builds, B2B configuration if separately quoted.
- Stabilisation window: post-launch support, if it is billed separately.
Each term is one you can put a number on this week by asking your own finance lead or the vendors. Where a value is unknown, mark it metric to confirm and keep it visible in the sheet, not rounded to zero.
The revenue risk is harder to price and easier to reduce. Choose a launch date away from your peak trading period, keep the old store recoverable through the stabilisation window, and agree the rollback trigger before launch, not during it.
What should you ask a Shopify migration service before signing?
Ask for specifics that can be checked, not assurances. A service that has done this many times will answer these quickly, and one that hedges on all of them has told you something.
- Which data objects are in scope, and which are explicitly out?
- Do you run a data audit before pricing, and is it billed separately?
- Who produces the redirect file, and when do I see it?
- What is the plan for orders placed between the export and go-live?
- Who owns subscription and saved-card transfer?
- Which of my current apps have no equivalent, and how are they handled?
- Who writes and sends customer account activation emails?
- What does your QA cover, and can I add my own test cases?
- What is the stabilisation window, and what is the response commitment inside it?
- What do I receive at handover: mapping documents, redirect file, configuration notes?
Also ask for two references from stores that moved from your source platform, and ask the references, not the partner, what went wrong. Every migration has something. A reference who says nothing went wrong either had a small migration or was not paying attention.
The Shopify Plus agency guide covers how to assess agencies on delivery beyond migration work, which matters if you expect the same partner to stay on afterwards.
What stays yours after a migration service finishes?
Three things stay with you whatever the contract says: the decisions, the data ownership and the ongoing operation. A service can move records and configure the store. It cannot decide your returns policy, know which customers are sensitive about their order history, or sit on the support desk in launch week.
The decisions are yours: which URLs to keep, which apps to drop, which historic orders matter. The service will ask; you answer. Delay in your answers is the most common source of slipped launch dates, and it is not something a partner can price away.
Data ownership is yours: keep your own export of the old platform before anything is cancelled. Your accountant, your fraud and dispute handling, and your customer service team will each need something from the old system for longer than expected. Read the source platform’s terms for data access after cancellation before committing to a shutdown date.
Ongoing operation is yours: order routing, tax configuration reviews, app updates and integration drift start the day after launch. A migration is a one-off project that creates a permanent operating system, and someone has to own that system.
Compliance is a fourth area to raise, though it belongs with your own counsel rather than the migration vendor. Consent records, cookie handling and data-transfer terms differ by market. Confirm the specifics with counsel, and check the partner carries the consent status across in a form you can defend.
When does a Shopify migration service stop being worth it?
A service stops being worth the fee when your data is simple enough that an import app and your own team cover the job, when the migration is a symptom of a problem a platform will not fix, or when the cost of a rough cutover is smaller than the fee. Say so honestly before you spend.
Small catalogue, no subscriptions, no B2B, low order volume, and a team with a free fortnight: do it yourself with an import app and a redirect spreadsheet. A specialist adds cost without reducing much risk.
Migration as a fix for a broken operation is a bigger trap. If orders are wrong because the warehouse and the store disagree on stock, a new platform will reproduce the disagreement faster. If customer service is slow because tickets are unrouted, a migration will not route them. Fix the process first, or migrate with the explicit aim of fixing it, and price that work.
Finally, some brands should not migrate this year. If your peak season is close, if your contracts on the current platform are cheap to keep, or if you have a large number of integrations that would each need rebuilding, the fee is the smaller part of the case against. A calm second half of the year is worth more than a rushed launch.
Where AI does not belong is the cutover itself. An agent can draft redirect mappings for review, or compare two catalogue exports and list mismatches, and that saves real hours. It should not approve the redirect file, sign off subscription transfers, or decide which orders are safe to drop, because a wrong answer costs far more than the human minute it saves.
How do you turn a migration into an operations project?
The hidden line items in a migration are a list of handoffs: data between systems, orders between platforms, responsibility between your team and a partner. Handoffs that depend on someone remembering to do them are an operations automation problem, not a one-off project problem. If redirects, reconciliation, sync checks and tracking tests are run by hand once, they will be forgotten the next time the stack changes. That is the work Pointerflow’s ops automation service is built for, and it is the same problem scaling brands meet when a platform change exposes how much of their operation lived in someone’s head.
Sources
- Shopify pricing page, for the Shopify Plus monthly price on 1-year and 3-year terms (vendor-reported). No other external figures are quoted; the rest of the article is written from the structure of migration scopes and quotes, with unpublished numbers marked
metric to confirm.