— CUSTOM WEBSITE — OCT 01, 2026 —

How to Move a Custom-Coded Website to Shopify in India

If your store runs on code a local agency wrote for you in PHP, Laravel or React, moving to Shopify is a different job from moving off WooCommerce. There is no importer that understands your database, your URLs follow rules nobody wrote down, and the people who hold the server keys may not be around any more. This guide covers what moves and how, what happens to customer logins, how to protect your search rankings, and which custom features to rebuild or drop.

Import limits and methods below are from Shopify's Help Centre and developer documentation, checked on 30 September 2026.

Programming code displayed on a computer screen
A custom site has no importer, so someone has to read its database and translate it for Shopify.
Photo: qubodup via Flickr, CC BY 2.0

Why is a custom-coded site harder to move than WooCommerce?

Because every migration tool assumes a platform it recognises. Shopify's migration documentation has guides for named platforms such as WooCommerce, Wix, Squarespace, Etsy and Amazon. A site your agency built from scratch is not one of them. Its products might sit in a MySQL table designed in 2019, its categories in a second table, its images in a folder on the server, and its prices partly calculated in code.

So a custom migration always starts with someone reading your database and turning it into the formats Shopify accepts. Shopify offers two routes: CSV files for products and customers, and the API or a migration app for everything CSV cannot carry, including orders, blog posts and pages. Neither route knows your old structure. That translation is the real work, and it is where most of the effort in these projects goes.

If you are on WooCommerce or Magento rather than custom code, read our WooCommerce to Shopify migration guide instead, because the tooling there is far better.

Who controls your data before you start?

Find this out before you agree a migration date with anyone. On a custom site, the data you need usually sits in places you have never logged into yourself:

  • The database. Products, customers and orders. You need a full export or read access, not a spreadsheet someone makes for you.
  • The server or hosting account. Product images, downloadable files and anything uploaded through the old admin.
  • The domain registrar and DNS. You will point the domain at Shopify on launch day, so you need to control it.
  • Payment gateway and courier accounts. Razorpay, Cashfree, Shiprocket or whatever the old site used. These should be in your company's name and email.
  • Google Search Console and analytics. You will need the old site's data to check that rankings survive the move.

If the agency that built the site is still friendly, ask for a database export and a list of every URL pattern the site uses. If the relationship has ended badly, our developer handover checklist covers how to get your assets back. Either way, get the export before anything else starts. A migration plan built on data you cannot reach is not a plan.

What data can move to Shopify, and how?

Most of it, through different routes. This is what Shopify documents for each type:

Data Route into Shopify What to know
Products and variants Product CSV import Each CSV file can be 15 MB at most, so large catalogues are split into several files. Custom attributes need metafields set up first.
Customers Customer CSV import Also 15 MB per file. Includes marketing consent fields for email, SMS and WhatsApp, which accept only yes or no.
Customer passwords Cannot be moved Covered in the next section.
Orders Migration app or API Not possible through CSV in the admin.
Blog posts and pages Migration app, API, or copy and paste Small sites often just recreate these by hand.
Images Referenced from the product data The old server must stay online until the import finishes.

Two decisions make the biggest difference to the effort involved.

Do you need historical orders in Shopify at all? Some stores need them, for repeat purchase analysis, customer service or loyalty points. Many do not, and keep an export of old orders in a spreadsheet or the old database for reference instead. Importing orders means an app or custom API work, so decide deliberately rather than by default.

How clean is the product data? Custom sites often store things in odd places: sizes in the product title, colours in a notes field, prices that change in code depending on the city. Every one of these has to be untangled into Shopify's product, variant and metafield structure. Budget time for cleaning, and have someone who knows the catalogue check a sample after each test import.

How each type of data moves from a custom coded site to Shopify: products and customers by CSV, orders by app or API, passwords cannot move
Products and customers go in by CSV. Everything else needs an app, the API, or a decision to leave it behind.

What happens to customer accounts and passwords?

Customer records come across, passwords do not. Shopify's customer import documentation is direct about it: "Because passwords are encrypted outside of Shopify, you can't migrate customer passwords from another online store using a CSV." That is true of any platform, because a properly built site never stores passwords in a form that can be read back.

What your customers experience depends on which customer accounts your Shopify store uses. With Shopify's current customer accounts, customers sign in with a one-time code sent to their email, so there is no password to lose. We cover how that works, including phone-based login options for Indian stores, in our guide to Shopify customer accounts and phone login. With the older password-based accounts, Shopify's documentation says you invite imported customers to create new passwords.

Either way, tell customers before launch. A short email saying the store has moved and explaining how to sign in prevents a wave of "I cannot log in" messages in your first week. Import the marketing consent fields carefully: a customer who never agreed to email marketing on the old site should not be marked as subscribed on the new one.

How do you protect SEO when your old URLs look nothing like Shopify's?

With a complete redirect map, prepared before launch. This is the biggest risk in a custom migration, and the one founders most often underestimate.

Shopify uses fixed URL patterns: products live under /products/, categories under /collections/, content pages under /pages/ and blog posts under /blogs/. Your custom site used whatever its developer chose: /product.php?id=123, /shop/mens/kurta-blue, or a different pattern for every section. None of those addresses will exist after launch unless you redirect them. Every page that ranks in Google, every link from another site and every old WhatsApp broadcast link would otherwise land on a "page not found".

Shopify's URL redirect feature lets you create redirects one at a time or import them from a CSV. On a site with more than a handful of products, the only sensible approach is a mapping built from data:

  1. List every old URL. Combine a crawl of the live site, the old sitemap, and the pages Google Search Console shows receiving traffic. Include category pages, content pages and blog posts, not only products.
  2. Match each one to its new Shopify address. Ideally by a product ID or SKU that exists in both systems, not by guessing from titles.
  3. Import the redirects as a CSV once the products exist in Shopify.
  4. Test them. Run the old URL list through a crawler and confirm every one lands on the right page. Pay particular attention to old URLs with query strings like ?id=123, and confirm with your developer how those are being handled, because they behave differently from clean paths.
  5. Watch Search Console after launch for pages reported as not found, and add redirects for anything the map missed.

Redirects should be live the moment the domain points to Shopify. Keep the product handles in Shopify close to the words in your old URLs where you can, and carry across your page titles and meta descriptions, so Google sees the same page at a new address rather than a new page.

Five steps to keep search rankings when migrating a custom coded site to Shopify, from listing old URLs to monitoring Search Console
Redirects are the part of a custom migration that protects the traffic you already have.

Which custom features should you rebuild, replace or drop?

This is where custom migrations succeed or drag on. Your old site probably does a few things exactly the way your business wanted, and every one of them needs a decision. List them all, then put each into one of four routes:

Route When it fits Examples on Indian stores
Built into Shopify Shopify already does it with settings GST tax settings, basic discount codes, multiple locations
App from the Shopify App Store A common need that apps already solve COD rules and pincode checks, WhatsApp notifications, reviews, subscriptions
Custom development Genuinely specific to your business and worth paying for An integration with your own ERP or warehouse system, unusual pricing logic
Drop it Nobody would miss it, or the reason for it no longer exists Old admin reports, features built for a campaign years ago

Two platform facts shape the custom development route. Checkout customisation on Shopify is done through Shopify Functions and checkout extensions, not by editing checkout code. And Shopify's developer documentation states that stores on any plan can use public App Store apps that contain Functions, but "only stores on a Shopify Plus plan can use custom apps that contain Shopify Function APIs." If your old site had bespoke checkout rules and you are not planning to move to Plus, the realistic options are an existing app or changing the rule. Our article on rebuilding checkout customisations goes into what each plan allows.

For India-specific pieces, check the existing guides before commissioning anything custom: GST setup on Shopify and Razorpay and Cashfree on Shopify cover what works out of the box. In our view, founders tend to over-value features they paid to build. Ask of each one: does it make money, save real time, or matter to customers? If none of those, drop it and launch sooner.

What order should a custom site migration happen in?

The sequence matters more than the speed. Doing these in order avoids the two classic failures, launching before the data is right and launching without redirects:

  1. Secure access and export. Database, images, domain, and third-party accounts in your name.
  2. Decide features. The rebuild, replace or drop list above, agreed in writing.
  3. Build the Shopify store. Theme, apps, payment and shipping settings, tested with sample data.
  4. Transform and test-import data. Products, customers and, if you decided to, orders. Check samples against the old site.
  5. Build and test the redirect map. Every old URL accounted for.
  6. Final import and cut-over. A last data export from the old site, import, redirects live, domain pointed at Shopify, customers told how to sign in.
  7. Monitor. Orders, payments, Search Console errors and customer messages, daily at first.

Keep the old site and database available, even if hidden, until you are confident nothing is missing. Switching off the old server on launch day is how images and order records get lost for good.

What should a migration quote for a custom site include?

Because there is no standard tool, quotes for custom migrations vary more than for any other kind of Shopify project. A quote you can trust should spell out:

  • Which data is being moved, by which route, and whether historical orders are included.
  • Who writes the data transformation and how the result will be checked.
  • A redirect map as a named deliverable, including how old URLs will be collected and tested.
  • The feature list with a decision for each: native, app, custom build or dropped.
  • What happens on launch day, and what support is included after it.
  • Access and ownership: every account and app registered to your business.

If a quote says "full migration" without those details, you cannot tell what you are paying for. Our guide to reading a Shopify quote covers the rest of what a good proposal should state.

Planning a move off a custom-built site?

Free migration planning conversation. Get in touch or email hello@exactwhy.com with the subject "Custom site migration" and your current store URL. Tell us what the site is built on, roughly how many products and customers you have, whether you can get a database export, and which custom features you rely on. We reply within 4 hours with the main risks we see, what can move by which route, and what we would want to check first.

If you go ahead. We scope the migration around the redirect map and the feature decisions above, and we put both in writing before any build starts. If your site is simple enough that you could move it yourself with CSV files and an afternoon of redirects, we will tell you that too.

Other Blogs

D2C LAUNCH
Can You Sell Online in India Without GST Registration
Oct 16, 2026
Parth Sojitra
D2C
Shopify Store Launch Checklist for Indian D2C Brands
Oct 16, 2026
Parth Sojitra
D2C INDIA
Shopify vs Dukaan vs ShopDeck for Indian Sellers in 2026
Oct 16, 2026
Parth Sojitra
COST
Shopify Store Setup Cost in India, Line by Line
Oct 15, 2026
Parth Sojitra
D2C INDIA
Launching a Shopify Store Before Diwali 2026, What to Cut
Oct 15, 2026
Parth Sojitra
D2C INDIA
Shopify vs WooCommerce for a New D2C Brand in India
Oct 15, 2026
Parth Sojitra
D2C INDIA
Shopify Jewellery Store in India, Setup Guide for 2026
Oct 10, 2026
Parth Sojitra
INDIA
Squarespace to Shopify Migration for Indian D2C Brands
Oct 09, 2026
Parth Sojitra
E-INVOICING
Zoho Books and Zoho Inventory with Shopify in India
Oct 09, 2026
Parth Sojitra
COD
Shipping aggregator or direct courier for Shopify India
Oct 09, 2026
Parth Sojitra
D2C
Manufacturer D2C on Shopify without losing distributors
Oct 08, 2026
Parth Sojitra
B2B
How to Take Corporate Diwali Gifting Orders on Shopify
Oct 07, 2026
Parth Sojitra
DIWALI 2026
What Not to Change on Your Shopify Store Before Diwali
Oct 07, 2026
Parth Sojitra
INDIA
Wix to Shopify Migration for Indian Brands, Step by Step
Oct 07, 2026
Parth Sojitra
ARABIC
Arabic and Urdu Shopify Stores for Indian Brands in the Gulf
Oct 05, 2026
Parth Sojitra
A/B TESTING
Test Diwali Offers on Shopify with Discounts in Rollouts
Oct 05, 2026
Parth Sojitra
INDIA
Shopify Canvas, and When You Still Need a Developer
Oct 05, 2026
Parth Sojitra
ANANYA BIRLA
LOVETC by Ananya Birla, a Celebrity Beauty Brand on Shopify
Oct 03, 2026
Parth Sojitra
AQUON
Celebrity D2C Website Design and Development Agency
Oct 03, 2026
Parth Sojitra
ACTORS
Celebrities D2C Website Development Agency in India
Oct 03, 2026
Parth Sojitra
AQUON
Celebrity Ecommerce Website Development Company in India
Oct 03, 2026
Parth Sojitra
BRAND STORE
What Kind of Website Does a Celebrity Need in India?
Oct 03, 2026
Parth Sojitra
AQUON
How Celebrity Brands Turn a Persona Into a Shopify Store
Oct 03, 2026
Parth Sojitra
CELEBRITY BRANDS
Celebrity Brand Launch on Shopify, a Checklist for India
Oct 03, 2026
Parth Sojitra
CASE STUDY
Flux Theory, Ranbir Kapoor's Brand, and Its Shopify Store
Oct 03, 2026
Parth Sojitra
ACCOUNTING
Shopify Tally Integration for GST, What to Settle First
Oct 02, 2026
Parth Sojitra
ACCEPTANCE TESTING
Shopify Store Sign-Off Checklist Before Final Payment
Oct 02, 2026
Parth Sojitra
DEVELOPER
Shopify Project Stalled? Rescue, Switch Dev or Restart
Oct 01, 2026
Parth Sojitra
COLLABORATOR ACCOUNTS
How to Give a Shopify Developer Store Access Safely
Oct 01, 2026
Parth Sojitra
AGENTIC COMMERCE
Shopify September 2026 Updates Indian Stores Should Act On
Sep 30, 2026
Parth Sojitra
INDIA
Shopify POS Now Runs Stock Counts and Local Delivery
Sep 30, 2026
Parth Sojitra
COD
Shopify Basic or Grow in India? Do the Fee Maths First
Sep 30, 2026
Parth Sojitra
ANALYTICS
Shopify Can Now Report Sales by Colour, Fabric and Fit
Sep 30, 2026
Parth Sojitra
D2C
Why Shopify Projects Run Over and How to Write a Scope
Sep 29, 2026
Parth Sojitra
D2C
Fixed Price, Hourly or Retainer for Shopify Development
Sep 29, 2026
Parth Sojitra
CUSTOM THEME
Custom Theme or Premium Theme for a Shopify D2C Brand
Sep 29, 2026
Parth Sojitra
D2C
What a Shopify Maintenance Plan Should Actually Include
Sep 28, 2026
Parth Sojitra
CUSTOM APPS
Your Shopify Integration Can Stop Silently. How to Check It
Sep 28, 2026
Parth Sojitra
A/B TESTING
Shopify Rollouts Lets You A/B Test Your Theme, With Limits
Sep 28, 2026
Parth Sojitra
ANALYTICS
Shopify Conversion Rate Changed? Check the Session Update
Sep 24, 2026
Parth Sojitra
2026
Your Store Search Is Losing Sales. Use Shopify's Free Tool.
Sep 24, 2026
Parth Sojitra
AMAZON
Managing Multiple Barcodes on Shopify Product Variants
Sep 24, 2026
Parth Sojitra
CUSTOMER SUPPORT
Editing Cancelling and Refunding Shopify Orders Safely
Sep 24, 2026
Parth Sojitra
CSV IMPORT
Bulk Editing Shopify Products Without Wrecking Them
Sep 24, 2026
Parth Sojitra
D2C
Multiple Shopify Warehouses Without Overselling
Sep 23, 2026
Parth Sojitra
BRAND TEAM
Stop Hardcoding Product Content Into Your Shopify Theme
Sep 23, 2026
Parth Sojitra
CHECKOUT
Delivery Promises Your Shopify Store Can Actually Keep
Sep 23, 2026
Parth Sojitra
2026
Getting Stores Ready for Claude Commerce Agents
Sep 23, 2026
Parth Sojitra
INDIA
What Balmain on Shopify Means for Indian Brands
Sep 23, 2026
Parth Sojitra