
Quick answer: Most businesses considering a move from Shopify to custom development should not make it yet. Migrate only when you can name a specific constraint in one sentence, you have priced a middle path and rejected it for a reason, and you can fund twelve months of owning the platform rather than just building it. Nine measurable signals indicate you have genuinely outgrown Shopify — fewer than three means stay, three to five means take a middle path, six or more means build.
The choice is not binary. Three middle paths sit between Shopify and a full custom build, and most businesses belong in one of them.
The strongest signal that you have outgrown a platform is not revenue. It is your merchandising team keeping the real data in a spreadsheet.
Migration's largest hidden cost is the payment vault. Saved cards and active subscriptions frequently cannot be ported, and for subscription businesses that is the whole risk.
Customer passwords almost never migrate. Plan the forced-reset campaign before launch, not after login rates collapse.
Migrating too early costs more than migrating too late, because you encode assumptions you have not finished testing.
There is a moment in most growing eCommerce businesses where someone says: we've outgrown Shopify.
It usually follows a specific frustration. A checkout change that could not be made. An app renewal that arrived at a number nobody expected. A pricing rule the platform refused to express. The sentence gets said, heads nod, and within a fortnight the business is taking calls from development companies who — being development companies — are delighted to agree.
Here is the uncomfortable version, from a company that builds custom platforms for a living: most businesses that say this have not outgrown Shopify. They have hit one constraint, and they are proposing to replace an entire working system to solve it. That is sometimes correct. More often it is expensive, and the same constraint could have been solved for a fraction of the cost without leaving.
This guide gives you the diagnostic. Nine signals with thresholds you can actually measure, the three intermediate architectures nobody mentions because nobody sells them, and an honest ledger of what a migration costs you beyond the invoice — including two items that routinely surprise businesses at the worst possible moment.
Worth stating plainly before criticising it, because a comparison that only lists limitations is marketing rather than analysis.
Shopify solves an enormous set of problems that are tedious, expensive and unglamorous to solve yourself. PCI compliance and payment handling. Checkout conversion, which they have optimised across a volume of transactions no single business will ever see. Uptime through traffic spikes. Fraud screening. A mature app ecosystem. Security patching you never think about. Global tax and currency handling.
If you build custom, all of that becomes yours. Not once — permanently. That is the actual trade, and it is frequently under-weighted by businesses who are annoyed about one feature and looking at a screen showing revenue growth.
Shopify is the correct answer for the substantial majority of Indian D2C brands, for considerably longer than most of them assume. The question is not whether it is good. It is whether it is still good for your specific constraint.
Each of these is measurable. Vague dissatisfaction is not a signal — it is a mood, and moods make poor architecture decisions.
Take your total monthly app subscriptions and divide by monthly revenue. Under 0.5% is healthy. Between 0.5% and 0.8% is normal for a maturing store. Above 0.8% and trending upward means apps are compensating for platform gaps rather than adding capability.
The trend matters more than the number. A stable 0.9% is a cost of doing business. A figure that has moved from 0.4% to 0.9% in eighteen months describes a business steadily buying its way around a ceiling.
Count the apps that can modify pricing. Then inventory. Then customer records.
When three apps write to the same domain, execution order determines behaviour, and execution order is a deployment accident rather than a decision you made. This is the structural reason multi-app stores develop bugs that appear intermittently and resist diagnosis.
Track it. Every time a commercial requirement dies because checkout would not support it, log the date and the requirement.
Shopify has meaningfully expanded checkout customisation through checkout extensibility, so this signal is weaker than it was three years ago. But if you are still hitting refusals more than twice annually, checkout is a live constraint on your commercial model rather than a technical inconvenience.
Try to state your pricing in one sentence. If you cannot, and the explanation requires conditions like unless the customer is on a contract, in which case, except during a promotion — plugin-based pricing is running on borrowed time.
This is the single most reliable predictor of platform failure in B2B eCommerce, and it arrives long before revenue would suggest a platform change.
Track where your development hours go for one quarter. Split them into keeping existing things working and building new things.
Above 60% maintenance, you are paying rent on workarounds. The number rarely improves on its own, because each new workaround adds surface area for the next failure.
The strongest signal on this list and the least measured, because nobody reports it.
When the people who use the admin daily maintain a parallel spreadsheet as the actual source of truth, the platform's data model does not fit the business. That gap does not close with an app. It is architectural, and it compounds — every downstream system built on the platform's model inherits a shape the business does not use.
Ask your merchandiser what they keep outside the admin, and why. The answer is usually immediate and specific.
Variant ceilings per product. API rate limits during bulk operations. Metafield constraints. Theme or script limitations that block a required behaviour.
Hard limits are different from soft frustrations. There is no workaround, no app, no clever implementation. When you are against a documented ceiling, the platform has told you something definitive.
Add your platform licence, transaction fees above standard gateway rates, and app subscriptions. Compare against fully-loaded infrastructure and maintenance for equivalent custom capability.
Our three-year cost model puts the crossover at roughly ₹25–30 crore GMV for simple pricing, and ₹6–8 crore for account-level pricing with ERP synchronisation. Complexity moves this threshold far more than revenue does.
You cannot launch B2B, or subscriptions, or a marketplace, or a new market, because the platform will not support it in a form your business can operate.
This is the only signal that justifies migration on its own. Every other item on this list describes a cost. This one describes revenue that does not exist. A blocked channel with a credible business case outweighs eight comfortable workarounds.
Signals present | What to do |
|---|---|
0–2 | Stay. Solve the specific irritation. Migration would cost more than the problem |
3–5 | Take a middle path. Full migration is likely over-correction |
6–9 | Build. The platform is now a constraint on the business rather than a tool |
Signal 9 alone | Build, or split-channel. Blocked revenue overrides the count |

The framing "Shopify or custom" is false, and it persists because nobody has a commercial reason to correct it. Platform partners want you to stay. Development companies want you to build. Almost nobody sells the middle, which is where most businesses with three to five signals actually belong.
Cost: ₹4,00,000 – ₹15,00,000 | 6–12 weeks
Extract only the failing domain into a service that Shopify calls. Your pricing engine, order management, or product information management runs as its own application. Shopify remains the storefront and checkout, querying the service for what it cannot do itself.
Solves: the specific constraint — usually pricing logic, complex inventory allocation, or catalogue management your merchandising team cannot use. Does not solve: checkout limitations, platform fees, app stack cost. Right when:signals 4 and 6 are present but checkout and cost are fine.
This is the cheapest, fastest and most commonly correct answer, and it is almost never proposed. It also has a property nothing else on this list has: it is a step towards custom that is not wasted if you migrate later. The service you build survives the platform change.
Cost: ₹12,00,000 – ₹30,00,000 | 3–5 months
Keep Shopify as the commerce backend and checkout. Build a custom storefront on Next.js consuming the Storefront API.
Solves: performance ceilings, content and design flexibility, multiple storefronts or brands on one catalogue, complex customer journeys. Does not solve: pricing logic depth, checkout constraints, platform fees — which frequently rise, since you now pay Shopify and run your own frontend infrastructure. Right when: signals 1, 3 and 7 are absent but you need front-end freedom Shopify's theme layer will not give you.
The honest caution: headless is the most fashionable and most frequently regretted architecture in commerce. Adopted for genuine multi-storefront or performance reasons it is excellent. Adopted because it sounds modern, it doubles your engineering surface to solve a problem a good theme build would have solved.
Cost: ₹18,00,000 – ₹40,00,000 | 4–6 months
Keep Shopify for D2C. Build custom for the channel it cannot serve — usually B2B or wholesale. One product and inventory master feeds both.
Solves: blocked revenue channels without discarding a working D2C store. Does not solve: D2C-side constraints.Right when: signal 9 is present and the blocked channel is structurally different from your existing one.
For Indian manufacturers and distributors this is very often the correct architecture, and it is dramatically less risky than a full replatform: your revenue-generating store keeps running untouched while the new channel is built beside it.
Stay + fix | Sidecar | Headless | Split-channel | Full custom | |
|---|---|---|---|---|---|
Cost | <₹4L | ₹4–15L | ₹12–30L | ₹18–40L | ₹25–60L |
Timeline | Weeks | 6–12 weeks | 3–5 months | 4–6 months | 5–8 months |
Trading risk | None | Very low | Medium | Low | High |
Solves pricing depth | No | Yes | No | Partly | Yes |
Solves checkout limits | No | No | No | Partly | Yes |
Reduces platform fees | No | No | No | Partly | Yes |
Wasted if you later migrate | Yes | No | Partly | No | — |
Not sure which column you belong in? We will run the nine signals against your actual numbers — app spend, maintenance ratio, pricing rules, blocked requirements — and tell you plainly whether a middle path solves it. We turn away migration work regularly on exactly this basis. Book a 30-minute platform review →
If you have decided to migrate, this section matters more than the cost comparison. These are the things you lose, and the two at the top of the list surprise businesses at the worst possible moment.
This is the biggest under-discussed risk in eCommerce migration.
Saved card details are held as tokens that are scoped to the gateway and frequently to the platform. When you migrate, those tokens do not automatically come with you. In practice this means your returning customers re-enter card details at their next purchase.
For a standard D2C store, that is a conversion dent for a quarter. For a subscription business, it is existential: active subscriptions whose payment tokens cannot be charged simply fail, and involuntary churn from a botched vault migration has ended businesses that were otherwise healthy.
What to do: raise this in the first vendor conversation, not the last. If you keep the same gateway, PCI-compliant token migration is often possible but requires a contractual process with the gateway that takes weeks to arrange. If you change gateway, assume re-authorisation. Either way, plan a staged re-authorisation campaign with an incentive attached, and never launch a migration into your highest-billing week.
Password hashes almost never migrate between platforms. Your entire customer base will need to reset.
Handled badly, login rates collapse in week one and the business concludes the new site is broken. Handled well — a pre-announced reset campaign, a clear email at cutover, an incentive on first login, and a support team briefed — it is a manageable fortnight.
Budget for the communication. It is the cheapest line item on this list and the most commonly forgotten.
Beyond the payment token: billing dates, contract terms, grandfathered pricing, pause states, remaining prepaid cycles. Migrating subscriptions accurately is its own workstream, and it must reconcile perfectly. A customer billed twice, or billed at the wrong grandfathered rate, is a support incident with a refund attached.
Full URL mapping, 301 strategy, structured data carry-over, pagination handling on collections, and monitoring through cutover. Google's site-move documentation is the baseline. Budget ₹1–4 lakh and treat traffic continuity as a contractual acceptance criterion rather than an aspiration.
Reviews, loyalty balances, store credit, wishlists, subscription contracts, back-in-stock lists. Much of this lives inside apps, not in Shopify, and export capability varies from excellent to nonexistent.
Audit this before you commit to a date. For each app holding customer-visible data, establish whether a full export exists, in what format, and whether the destination can ingest it. Reviews and loyalty balances are the two that cause customer-facing pain when they vanish.
Not just the orders — line-level tax breakdowns, applied discounts, refund history, fulfilment records. Finance and support both depend on this. Decide early whether historical orders migrate fully, migrate as read-only records, or stay accessible in an archived instance. All three are legitimate; the mistake is deciding at cutover.

Pass all four before committing. Failing any one means the answer is not yet.
Gate 1 — Can you name the constraint in one sentence? Not "Shopify is limiting us." Something like: we cannot express contract pricing that interacts correctly with volume breaks, which blocks our wholesale channel. If the sentence needs a paragraph, you have a collection of irritations rather than a constraint, and irritations are solved individually and cheaply.
Gate 2 — Have you priced a middle path and rejected it for a stated reason? Get a quote for the sidecar or split-channel option. If nobody has offered you one, ask directly. A vendor who cannot explain why the middle path fails for your case has not analysed your case.
Gate 3 — Can you fund twelve months of ownership, not just the build? Infrastructure, monitoring, security patching, an on-call arrangement, and a roadmap budget. A custom platform with no ownership budget degrades faster than the platform it replaced, because nothing is patching it in the background any more.
Gate 4 — Do you have, or can you buy, the engineering to own it? Either an internal team or a contracted arrangement with defined response times. "Our agency will handle it" is only an answer if it is written down with numbers in it. The evaluation framework covers how to test that a vendor will still be a capable owner in year three.
Using the same modelled business from our cost guide — ₹8 crore GMV, 4,000 SKUs, D2C plus 120 B2B accounts, Tally integration:
Stay on Shopify Plus | Sidecar | Split-channel | Full custom | |
|---|---|---|---|---|
Build / change | ₹12,00,000 | ₹10,00,000 | ₹28,00,000 | ₹40,00,000 |
Platform licence (3yr) | ₹72,00,000 | ₹72,00,000 | ₹72,00,000 | ₹0 |
Apps + services | ₹16,20,000 | ₹12,00,000 | ₹10,00,000 | ₹6,00,000 |
Infrastructure | Included | ₹5,40,000 | ₹12,00,000 | ₹30,60,000 |
Workarounds | ₹8,00,000 | ₹2,00,000 | ₹2,00,000 | ₹0 |
Maintenance + roadmap | ₹12,60,000 | ₹16,00,000 | ₹24,00,000 | ₹30,00,000 |
Migration risk cost | ₹0 | ₹0 | ₹2,00,000 | ₹8,00,000 |
3-year total | ₹1,20,80,000 | ₹1,17,40,000 | ₹1,50,00,000 | ₹1,14,60,000 |
Read this carefully, because the totals are closer than the debate suggests.
Full custom wins by roughly ₹6 lakh over three years against staying — about 5%. That is a rounding error on a decision of this size, and it means cost alone almost never justifies migration at this scale. What justifies it is capability: the pricing model you can finally express, the channel you can finally open, the ceiling that stops existing.
The sidecar is nearly cost-neutral against staying while solving the constraint. That is why it is the right answer more often than either extreme.
Split-channel is the most expensive path here, and it still wins when signal 9 is real — because the comparison is not against these columns. It is against the revenue from a channel that currently does not exist.
If you have passed the gates, the sequence that reduces risk:
Phase | Duration | What happens |
|---|---|---|
1. Discovery and data audit | 2–3 weeks | Catalogue and pricing model, app data export audit, payment vault feasibility with the gateway, URL inventory |
2. Architecture and mapping | 2 weeks | Data model, integration contracts, full URL map with 301 targets, acceptance criteria with numeric thresholds |
3. Core build | 5–7 weeks | Catalogue, pricing, checkout, integrations. Working software reviewed fortnightly |
4. Data migration rehearsal | 2 weeks | Full migration into staging, reconciled line by line. Run it twice. The second run is the one that tells you the truth |
5. Parallel run and pre-launch | 2 weeks | Both platforms live, crawl comparison, load testing at peak multiples, password reset and re-authorisation campaigns queued |
6. Cutover and watch | 1 week + 30 days | Cut over mid-week, never before a peak. Search Console daily for thirty days. Reconciliation reports daily for the first fortnight |
Two rules worth holding: never cut over in your peak trading month, and rehearse the data migration twice. The first rehearsal finds the obvious failures. The second finds the ones that matter.
A useful counter-example, since most migration content only shows migrations.
A multi-brand beauty retailer had been adding brands to stay competitive. More brands meant more categories, more categories meant deeper subcategories, and the store had quietly stopped being browsable. Conversion reflected it. The instinct in the room was that the platform had run out of road.
It had not. The problem was information architecture — seven core categories and more than sixty subcategories that needed restructuring around how customers actually shop a multi-brand catalogue, with merchandising and retention logic designed in rather than bolted on. That work was done on Shopify, and the platform was never the constraint.
Signals present: one, arguably two. The correct answer was to stay and fix the architecture. A migration would have cost several times more, carried real trading risk, and solved nothing, because the store would have arrived on a new platform with the same catalogue structure that was causing the problem.
When you can name a specific constraint in one sentence, you have priced a middle path and rejected it for a stated reason, you can fund twelve months of platform ownership rather than just the build, and you have the engineering capability to own it. Measured against the nine signals, fewer than three means stay, three to five means take a middle path, and six or more means build. A blocked revenue channel justifies migration on its own.
Neither is better in the abstract. Shopify handles PCI compliance, checkout optimisation, uptime, fraud screening and security patching that become permanently your responsibility with a custom build. Custom development removes platform ceilings on pricing logic, checkout behaviour and data architecture. The correct choice depends on whether your constraint is a genuine ceiling or a solvable irritation.
App spend above 0.8% of revenue and rising; three or more apps writing to the same data domain; checkout requirements refused more than twice a year; pricing rules that need a decision tree to explain; maintenance consuming over 60% of developer time; a merchandising team keeping the real data in a spreadsheet; a documented platform limit; platform fees exceeding equivalent infrastructure; and a revenue channel the platform cannot support.
₹25 lakh to ₹60 lakh for a full custom build over five to eight months, plus migration risk costs of roughly ₹8 lakh covering data migration, SEO preservation and re-authorisation campaigns. Middle paths cost considerably less: a sidecar service runs ₹4–15 lakh, headless Shopify ₹12–30 lakh, and split-channel architecture ₹18–40 lakh.
Headless Shopify keeps Shopify as the commerce backend and checkout while you build a custom storefront consuming the Storefront API. It solves performance ceilings, design flexibility and multi-storefront needs. It does not solve pricing depth, checkout limitations or platform fees — which often rise, since you pay Shopify and run your own frontend infrastructure. Adopt it for genuine multi-storefront or performance reasons, not because it sounds modern.
Frequently, yes. Card tokens are scoped to the gateway and often to the platform, so returning customers usually re-enter card details. If you keep the same gateway, PCI-compliant token migration is sometimes possible but requires a contractual process arranged weeks in advance. For subscription businesses this is the single largest migration risk and should be raised in the first vendor conversation.
Almost never. Password hashes do not transfer, so your entire customer base needs to reset. Plan a pre-announced reset campaign with a clear cutover email, an incentive on first login and a briefed support team. Without it, login rates collapse in week one and the business wrongly concludes the new platform is broken.
It does when migration is treated as a technical task rather than an SEO discipline. Full URL mapping, a 301 strategy, structured data carry-over, collection pagination handling and daily Search Console monitoring through cutover are all required. Budget ₹1–4 lakh and write traffic continuity into the acceptance criteria as a measurable threshold.
Shopify Plus handles B2B reasonably up to around 200 accounts with straightforward contract pricing, using native company accounts and catalogue-based pricing. It becomes unreliable when several pricing rules must resolve against each other — a contract rate interacting with a volume break and an active promotion. For deeper requirements, a split-channel architecture that keeps Shopify for D2C while building custom for B2B is usually less risky than a full replatform.
Roughly ninety days for the build and cutover, plus thirty days of close monitoring: two to three weeks of discovery and data audit, two weeks of architecture and URL mapping, five to seven weeks of core build, two weeks of data migration rehearsal run twice, two weeks of parallel running, then cutover. Never cut over during your peak trading month.
The question is almost never Shopify or custom. It is: what specifically is broken, what is the cheapest architecture that fixes it, and can we afford to own what we build.
Businesses that ask it that way frequently discover the answer is a ₹10 lakh service running alongside a store that carries on working — rather than a ₹40 lakh replatform, a nervous cutover weekend, and a quarter spent asking customers to re-enter their card details.
Businesses that genuinely need to build should build, without hesitation, because a platform that blocks a revenue channel is costing more than any build quote. The nine signals tell you which one you are. Run them honestly, including the one about the spreadsheet.
We run platform reviews as a scoped engagement: bring your app spend, your maintenance ratio, your pricing rules and the requirements you have had to abandon, and you get a signal count, a recommended architecture and an honest answer about whether staying put is the better commercial decision. As an eCommerce development company in India that builds custom commerce platforms and B2B portals, we turn down migration work regularly — usually because a sidecar service solves it for a fifth of the price.
Akoode holds a 4.9 rating from 114 Google reviews and 5.0 out of 5 on GoodFirms, and is reviewed on Clutch 5/5
Book a 30-minute platform review →
Subscribe to the Akoode newsletter for carefully curated insights on AI, digital intelligence, and real-world innovation. Just perspectives that help you think, plan, and build better.