The store never stopped selling during the move from Shopify Plus to Sylius Plus, and traffic shifted over only after each stage passed its checks.
What we built
A phased rollout plan with both platforms running in parallel, and validation gates at every step.
What's protected
The migration moved in stages, with a rollback option at each one.
NAF NAF Spain migrated from Shopify Plus to Sylius Plus while the store remained live.
The approach prioritized staged cutovers, validation gates, and explicit ownership for the highest risk areas first. The goal was controlled change on a revenue system with predictable behavior during the transition.
Scope was defined around failure modes that can silently damage revenue or operations. The plan assumed issues would surface under real traffic, so detection and gating were built into each stage.
Primary failure modes
•Checkout regressions in edge flows
•Data correctness drift between systems
•SEO regressions from routing and rendering differences
Approach: staged cutovers from Shopify Plus to Sylius Plus
The migration was split into stages to limit blast radius and keep rollback realistic at each step. Each stage had entry criteria, validation gates, and exit criteria before exposure expanded.
Stage pattern used
01Identify high risk domains: checkout, catalog, pricing, promotions, integrations
02Establish data contracts and ownership for systems of record
03Build parallel paths where traffic can be segmented
04Cut over in stages, expanding exposure only after validation
05Validate data correctness and revenue-facing flows after each cutover window
Moving platforms changes data shape, lifecycle, and failure behavior. Correctness controls were designed to detect drift early and limit rework during live cutovers.
Controls used during migration
Consistency checks across product, price, inventory, orders
Reconciliation routines for the most revenue sensitive entities
Idempotent sync patterns for integration flows
Clear ownership for data contracts and exceptions handling
Ownership was made explicit across integrations, data flows, release responsibility, and incident response. That reduced hidden dependencies and ambiguity during cutovers.
Boundary examples
Systems of record ownership and data contracts
Integration responsibilities and failure handling
Release and rollback responsibility per stage
Monitoring ownership and incident response process
Phased migration works when scope is defined by failure modes and ownership lines. The same pattern applies when change cost and release risk reached a point where incremental fixes stop reducing exposure.