Shopify Migration Guide for Agencies
Summary
Shopify migrations fail when teams treat them as lift-and-shift projects instead of business transformation work. This guide covers the end-to-end process, from discovery through cutover, with a focus on the decisions that actually determine success.
Shopify Migrations Are Business Redesign Projects, Not Platform Swaps
Moving to Shopify isn't like moving between similar platforms. You're changing how the business operates.
Shopify has strong opinions. It handles checkout, hosting, and core commerce differently than most legacy platforms. Features that existed in your client's old system may not exist in Shopify, or they exist in a fundamentally different form.
The migration is really three projects in one:
- A data migration
- An integration rebuild
- A business process redesign
Agencies that scope only for the first two end up in trouble.
What to Assess Before Committing
How Deep Does the Customization Go?
Before you can plan the migration, you need to understand what you're migrating from.
Key signals to evaluate:
- Customization depth: How much custom code lives in the current platform? Heavy customization means heavy rework.
- Data model complexity: Are there custom product attributes, customer fields, or order metadata that Shopify doesn't natively support?
- Integration footprint: Count the integrations. Then count the ones that actually work. Many legacy platforms have dormant or broken connections that nobody remembers.
- Multi-store or multi-region setup: Shopify Markets handles this differently than most platforms. If the client runs multiple storefronts, this needs early attention.
Where Does the Platform Hide Manual Work?
The platform change will expose process debt.
Look for:
- Manual workarounds that staff perform daily
- Custom order workflows (split shipments, backorders, pre-orders)
- B2B or wholesale processes running alongside DTC
- Returns and exchange handling that relies on platform-specific features
Document these before scoping. They're where scope creep hides.
Who Actually Owns This Decision?
Migrations stall when stakeholders aren't aligned on what's changing.
Assess:
- Who owns the current platform decisions?
- Who will own Shopify after launch?
- Are there competing priorities between teams (marketing vs. operations vs. finance)?
- Has leadership signed off on the operational changes, not just the technology change?
Four Patterns That Signal Trouble Early
"We just need to move everything over." This means nobody has evaluated what should change. The migration becomes a replication project, which defeats the purpose of moving platforms.
Heavy reliance on a single legacy integration. If the ERP integration is custom-built and undocumented, budget significant time for discovery and rebuild. These integrations are often held together with tribal knowledge.
No clear data owner. When you ask "who owns product data?" and get three different answers, expect data migration to take twice as long as planned.
Launch date set before scope is defined. Fixed dates with undefined scope create pressure to cut corners. Corners cut during migration show up as bugs in production.
The Migration Process: Phase by Phase
Discovery Determines Everything Else
This is where most migrations are won or lost.
Discovery should produce:
- A complete inventory of current functionality (what exists, what's used, what's broken)
- A requirements hierarchy tied to business objectives
- A gap analysis between current state and Shopify capabilities
- A stakeholder map with decision rights documented
- An integration inventory with rebuild complexity ratings
Don't skip the stakeholder work. Technical discovery without stakeholder alignment produces accurate plans that nobody follows.
Architecture: Making Shopify-Native Decisions
Translate requirements into Shopify-native solutions.
Key decisions:
- Theme approach: Custom build, starter theme, or purchased theme? This affects timeline and long-term maintainability.
- App strategy: Which gaps get filled by apps vs. custom development? Every app adds cost, complexity, and a vendor dependency.
- Checkout requirements: Shopify's checkout is powerful but constrained. Know the limitations before promising features.
- Headless or not: Hydrogen/headless adds flexibility but also complexity. Most merchants don't need it. Some do. Be honest about which category your client falls into.
Document architecture decisions with clear rationale. Six months post-launch, someone will ask why a choice was made.
Data Migration Is Its Own Project
Steps:
- Extract and audit source data. Export everything. Then evaluate quality. Legacy platforms accumulate garbage data over years.
- Map to Shopify's data model. Shopify's product, customer, and order structures have specific constraints. Identify what maps cleanly and what needs transformation.
- Handle historical data decisions. Not everything needs to migrate. Old orders, inactive customers, discontinued products, decide what comes over and what gets archived.
- Build and test migration scripts. Run migrations against a dev store multiple times. Each run reveals new edge cases.
- Plan the cutover data sync. Orders placed between migration freeze and go-live need a plan.
Common mistakes:
- Underestimating product variant complexity
- Forgetting metafield mapping for custom attributes
- Ignoring URL redirect requirements (SEO impact is real)
- Assuming customer passwords can migrate (they can't on most platforms)
Integrations Get Rebuilt, Not Migrated
Prioritize by business criticality:
- Tier 1: Operations stop without these (ERP, OMS, shipping)
- Tier 2: Revenue impact if broken (marketing platforms, reviews, loyalty)
- Tier 3: Nice to have (analytics enrichment, secondary tools)
For each integration:
- Document current data flows
- Identify Shopify-native alternatives or existing apps
- Scope custom middleware if needed
- Plan testing with real transaction data
The ERP integration deserves special attention. It's almost always more complex than initial estimates suggest.
Build With Traceability
With architecture defined and integrations scoped, build work can proceed.
Track:
- Theme development against defined requirements
- App installation and configuration
- Custom functionality development
- Content migration (pages, blogs, navigation)
Every feature should connect back to a documented requirement. This prevents scope creep and simplifies testing.
Test Real Business Processes, Not Abstract Checklists
Testing phases:
- Functional testing: Does each feature work as specified?
- Integration testing: Do systems communicate correctly end-to-end?
- Data validation: Did migration preserve data integrity?
- Performance testing: Does the site handle expected traffic?
- UAT: Do stakeholders confirm the solution meets their needs?
Create test scenarios from real business processes. Test a realistic order flow from browse to delivery confirmation.
Cutover Is Coordination, Not a Single Action
Cutover checklist:
- DNS changes planned and tested
- Final data sync executed
- Redirects in place and verified
- Payment gateway live and tested
- Shipping configuration confirmed
- Team trained on new admin workflows
- Rollback plan documented (even if you don't expect to use it)
Post-launch:
- Monitor orders flowing through integrations
- Watch for error rates in checkout
- Track site performance under real traffic
- Staff a war room for the first 24-48 hours
How DigitalStack Structures Migration Projects
DigitalStack connects each phase of the migration in a single system, so context doesn't get lost between discovery and cutover.
Requirements captured during discovery link directly to architecture choices and build tasks. When someone asks why an integration was built a certain way, the reasoning is traceable, not buried in a slide deck from three months ago.
Stakeholder surveys and interviews feed structured data into the engagement. Feedback lives in one place, not scattered across email threads and meeting notes.
Platform assessments and gap analyses generate from structured data. When requirements change, dependent documents update automatically instead of requiring manual revision across multiple files.
Phase transitions don't break context. The decisions made in discovery carry through architecture, build, testing, and cutover. Teams don't waste time re-explaining choices or hunting for documentation that someone forgot to share.
Next Step
If you're running Shopify migrations and want to see how structured discovery changes the process, request a walkthrough of DigitalStack.