Migrating a store onto Shopify
Moving an existing store onto Shopify is mostly a data exercise, and the parts that go wrong are predictable. Products and images transfer with tooling. History, identity and addresses are where projects lose weeks.
Worth knowing in advance which is which.
What moves easily
Products, variants and images. Well-trodden, tool-supported, and the bulk of the visible work.
Collections and categories, with some restructuring, because platforms organise catalogues differently and a direct translation is rarely the best available structure.
Content pages. Straightforward, and an opportunity to fix things rather than carry them across unchanged.
Current stock levels. A snapshot at cutover, ideally confirmed by a count rather than trusted from the old system.
If this were all of it, migration would be a weekend.
What causes the trouble
Order history. The single biggest decision. Bringing years of orders into Shopify is possible and awkward, and the honest question is whether you need them there at all. Historical orders exist for reporting and for customer service, and both can be served by keeping the old records accessible rather than importing them — see the Shopify sixty-day order window for the related constraint on reading history back out afterwards.
Customer accounts and passwords. Passwords do not transfer between platforms, because they are stored in a form that cannot be reversed. Customers will have to reset, and a proportion will not bother. The migration therefore has a customer-attrition cost, and communicating clearly before the switch is what limits it.
URLs and search rankings. Every product and page URL is likely to change, and every one that changes without a redirect is a page that ranks nowhere and returns an error to anyone who had bookmarked it. This is the item most likely to cause measurable revenue loss and the one most often left until after launch.
Payment setup. A new gateway integration, possibly a new gateway, and the third-party transaction fee that applies because Shopify Payments is unavailable in Malaysia — see the Shopify third-party gateway fee explained.
Subscriptions, if you have any. Stored payment credentials do not move, so every subscriber has to re-enter their details — see recurring payments on your own store.
Malaysian address handling. State names, postcodes and the format customers actually type. Worth testing with real addresses across West and East Malaysia before launch, because delivery quoting and courier integration both depend on it.
The redirects, which deserve their own attention
If one thing gets proper time, it should be this.
Every URL on the old store that had traffic or a ranking needs a redirect to its equivalent on the new one. Product pages, category pages, content pages, and anything with links pointing at it from elsewhere.
The method is unglamorous. Export the old URL list. Map each to its new address. Load the redirects before the switch, not after. Then check the important ones by hand after launch, because a mapping error is silent — the page loads, it is simply the wrong page or none.
Sites lose real search traffic on migration, and almost all of that loss is redirect work that was deferred. It is recoverable and it takes months, which is a long time to be down on organic revenue.
Sequencing it so the books survive
A cutover has an accounting dimension that is separate from the technical one.
Pick a period boundary. Cut over at the start of a month or a quarter, so no reporting period spans two platforms. This costs nothing and saves a great deal of explanation later.
Reconcile the old store completely first. Every order matched, every payout decomposed, every exception resolved. Migrating with an unreconciled tail means unresolved items in a system you are switching off — see decomposing a payout line by line.
Export everything from the old platform while you still have access. Orders, customers, settlement history, invoices. The same discipline as leaving a payment provider, and for the same reason — see switching payment gateway without losing your history.
Keep the old gateway open for refunds. Refunds on pre-migration orders generally have to go back through the provider that took the payment, so the old arrangement cannot close on cutover day.
Confirm opening stock by counting. Not by trusting the old system's closing figure. This is the one moment where a full count is genuinely worth the disruption.
The launch week itself
Run in parallel briefly if you can. Old store live, new store being tested with real orders, before switching traffic.
Place real test orders through the live gateway, including one refund. A payment configuration that works in test and fails live is common enough to be worth an hour.
Watch the exception queue closely for the first fortnight. Migration-related mismatches surface here first and they are easiest to fix immediately — see the exception queue and how to size it.
Check search and delivery quoting daily for the first weeks. Both fail in ways that produce no error and lose orders quietly.
Common questions
What is hardest about migrating to Shopify?
Not the products, which transfer with tooling. Order history, customer passwords, URLs and the search rankings attached to them are where projects lose time. Passwords cannot transfer between platforms at all, so customers must reset, and every URL that changes without a redirect loses its ranking and returns an error to anyone who bookmarked it.
Do you need to import your old order history?
Often not. Historical orders serve reporting and customer service, and both can be met by keeping the old records accessible rather than importing them. Importing years of orders is possible and awkward, and Shopify's own default limit on reading historical orders back out afterwards is a separate constraint worth knowing about.
When should the cutover happen?
At the start of a month or quarter, so no reporting period spans two platforms. Before it, the old store should be fully reconciled with every payout decomposed and every exception resolved, everything exported while access remains, and opening stock confirmed by an actual count rather than the old system's closing figure.
Why do sites lose search traffic after migrating?
Because product and page URLs change and the redirects mapping old addresses to new ones were left until after launch. The loss is recoverable and takes months, which is a long time to be down on organic revenue. Exporting the old URL list, mapping each to its new address and loading the redirects before the switch prevents nearly all of it.
Related: Shopify in Malaysia · switching payment gateway without losing your history · migrating historical accounting data
Read next
See what you could build
Start a free trial and describe what your business needs in plain language — SmartB Studio builds the module for you.
Start free trial