The brief
Maison Rouge had outgrown Magento 2. Inventory sync was lagging by 12+ hours during sales, the checkout had a 4.6s LCP on mobile, and the marketing team was losing days every week to dev tickets for landing pages. They needed to be on Plus before Q4. They came to us in week 38 of the year.
The constraints
- Six EU storefronts (FR, DE, IT, ES, NL, UK) sharing one catalog with regional pricing and tax logic
- Six wholesale storefronts with separate pricing tiers
- Cutover window: a single weekend in late November, with no fallback if it failed
- No SEO regression tolerated — organic was 41% of revenue and a ranking drop in Q4 would have been existential
- Klaviyo segmentation had to keep working — 18 months of behavioral data couldn't be reset
What we shipped
A custom Plus theme on Online Store 2.0 with sectioned templates, an Algolia-backed PDP search experience, and a Klaviyo + Yotpo integration that preserved the existing customer profiles through migration. Markets handled regional pricing; B2B handled wholesale.
We migrated 6,000 products, 280,000 customer records, and 18 months of order history through a custom import pipeline that we dry-ran three times against staging before touching prod.
How cutover ran
We ran the new stack in parallel for two weeks before cutover. Live traffic was mirrored, responses diffed, and any divergence (a price, a tax line, a shipping option) was a blocker. By the time we touched DNS at 23:00 CET on a Saturday, we'd already verified the new stack against production for 14 days.
The rollback plan was rehearsed in staging on the Tuesday prior. We didn't need it.
The result
Mobile CVR up 38% in the first six weeks. LCP from 4.6s to 1.1s. Inventory sync from 12 hours to under 60 seconds via a custom Brightpearl integration. Marketing now ships landing pages without filing tickets. The team added $4.2M of run-rate in the first quarter post-launch.
What was hard
The wholesale storefronts. We rebuilt them on Plus B2B, which was still maturing at the time, and had to write a custom approval flow on top of the native one. It worked, but it was the part of the project that ran longest and we'd allocate more buffer next time.
We documented the wholesale logic in a runbook before handoff so the in-house team could maintain it without us.
"They ran cutover during peak Q4 and our store didn't blink. We added $4.2M run-rate in the first quarter on Plus."