Migration

Custom Build to Shopify Migration

Bespoke stores have no export button, no migration tool and no documentation. What they have is a database shaped by years of decisions nobody wrote down. We extract the data, clean it, recover the business rules that only exist in code, and rebuild the store on Shopify — usually the messiest migration there is, and always doable.

Book a Free Technical Call
Custom-built ecommerce store being migrated to Shopify with data extracted from its own database and mapped to Shopify's model

Why it matters

With a custom build, the migration isn't the hard part. The data is.

Every platform migration has a known shape — you know which tables exist, which fields are standard, which quirks to expect. A bespoke build has none of that. Product data may live across three tables and a legacy import script, prices may be calculated at render time rather than stored, and the same customer may appear four times because nothing ever enforced uniqueness. On top of that sit business rules that were never specified anywhere: a shipping surcharge triggered by a postcode range, a discount that only applies to accounts created before a certain date, a stock rule that quietly hides items. None of it is written down. All of it is load-bearing. That archaeology — not the import itself — is where the time goes, and it's the part cheap migration quotes always underestimate.

Sound familiar?

The trigger is almost always a person leaving, not a technical failure.

The store still works. That's what makes the decision hard — and one item below is a belief we'd talk you out of before quoting.

  • The developer who built your store has moved on, and nobody left understands how it works.
  • You can't hire for the stack, or the quotes you get assume months of reading the code first.
  • Every small change — a new payment method, a tax rule — turns into a development project.
  • Your checkout is bespoke, and PCI compliance is now a conversation you'd rather stop having.
  • You assume your data is too messy to migrate, so you've kept postponing even asking.
  • Nobody in the business can say with confidence what the pricing or shipping rules actually are.

What's included

What a custom build migration includes

Extraction written for your system, data cleaned before it lands, and a deliberate decision about what gets left behind.

Bespoke data extraction

There's no standard export, so we write one. Depending on what you have, that means direct read-only database access, your existing API, or a scraping pass over the live site where neither is available. We work against a copy, never your production database, and we hand you the extraction scripts at the end.

Data cleaning and deduplication

Duplicate customers, orphaned order lines, products with no images, prices stored in three formats, HTML descriptions carrying inline styles from a 2014 editor. All of it gets normalised before import. This is the largest single block of work in most custom migrations, and we scope it honestly rather than hiding it inside a fixed price.

Business rule recovery

We read the code to find the rules nobody documented — pricing logic, shipping conditions, stock behaviour, customer group entitlements — and write them down as a specification you own. Then we decide together which ones map to native Shopify behaviour, which need Shopify Functions, and which were bugs you've been living with.

Custom checkout to Shopify checkout

Your bespoke checkout gets replaced, not rebuilt. That means PCI scope, fraud analysis, Shop Pay and wallets come free — and it means some behaviour has to change, because Shopify's checkout is not fully rewritable. Custom fields, validation and delivery logic move to Checkout UI Extensions and Functions, with Shopify Plus needed for the deepest changes.

Admin tooling replacement

Bespoke builds usually have internal screens the team relies on daily — bulk pricing tools, fulfilment queues, reporting views. Most of that is covered by the Shopify admin. Whatever genuinely isn't gets built as a small embedded custom app, so your team keeps the workflow instead of inheriting a worse one.

URL mapping and 301 redirects

Custom builds have unpredictable URL structures — query strings, ID paths, category trees that changed twice. Every indexed URL is crawled and matched to its Shopify destination, with 301s in place at cutover. Migrating doesn't improve rankings; correct redirects are what stop you losing the ones you have.

How it runs

How a custom build migration actually runs.

Typically 6–12 weeks, and that range widens with data mess — a clean database lands at the bottom of it, while duplicate customers and undocumented pricing logic can push past the top.

  1. 01

    Read the system

    We take a database copy and a code read-through, then profile the data: row counts, null rates, duplicates, format inconsistencies. You get a written findings document, including the parts we think shouldn't be migrated at all.

  2. 02

    Decide what not to port

    Ten years of dead products, test orders, one-off features nobody uses and a customer table full of unconfirmed sign-ups. Porting all of it is expensive and pointless. We agree the cut-off lines before writing a single import script.

  3. 03

    Extract, clean, import

    Extraction scripts run against the copy, data is normalised and deduplicated, then imported into a development store. This runs as repeatable passes, so the final import at cutover is a rehearsed operation rather than a first attempt.

  4. 04

    Rebuild and cut over

    Storefront rebuilt on Online Store 2.0, checkout logic moved to Extensions and Functions, admin gaps closed with a custom app if needed. Redirects go live with DNS, then daily Search Console and log monitoring for the first fortnight.

6–12

Weeks typical

Wider if data is messy

DB / API

Extraction route

Written for your system

301

Redirect mapping

Every indexed URL

Rules

Documented

Recovered from the code

Straight answer

Custom to Shopify is the right move more often than owners expect — but not always.

A good fit if…

  • Your build works, but the knowledge to maintain it has walked out of the business.
  • Routine commerce changes now require a developer, and that developer is expensive or unavailable.
  • You're maintaining infrastructure and PCI scope for a checkout Shopify would give you outright.
  • Your differentiator is the product and the brand, not the ecommerce engine underneath.

Probably not, if…

  • Your checkout genuinely needs steps Shopify can't express, even with Functions and UI Extensions.
  • The custom build is the product — a marketplace, subscription engine or configurator platform in its own right.
  • You have a healthy in-house engineering team who actively maintain and ship on the current stack.
  • Nobody can give us read access to the database or code, and the original developer is unreachable.

Frequently asked questions

  • Yes, and messy data is the norm rather than the exception — we've never opened a bespoke database that was clean. What varies is how much cleaning is needed, which is why we profile the data before quoting rather than after. Duplicates, inconsistent formats and orphaned records are all solvable. The only genuine blocker is data that doesn't exist: if historical orders were never stored, no migration recovers them.

Running a bespoke store?

Book a 30-minute technical call. We'll talk through your data, your checkout and your business rules, and tell you what a realistic migration looks like.

Book a free call