A retailer asked us to "move the shop to Shopify". The storefront took two weeks. The integrations took ten, and that ratio is normal enough that we now plan for it up front.
The storefront is the visible part
Templates, checkout, product data — all well-trodden ground with good tooling either side. Clients budget time for this part because it's the part they can see, and it's rarely where the risk sits.
The eleven things nobody diagrammed
In this case: a loyalty points system with its own database, a warehouse feed that expected a specific CSV shape, an accounting export tuned to the old platform's order numbering, two marketing tools reading webhooks that didn't exist on the new platform, and a returns process a member of staff ran by hand from an admin screen that was going away.
- Map every system that reads or writes order data, not just the ones in the architecture diagram — the diagram is usually two integrations out of date.
- Freeze order numbering conventions early. Downstream accounting tools tend to parse the format rather than read a field, and nobody remembers this until the invoices are wrong.
- Run both platforms in parallel for a fixed window with a single source of truth for stock, rather than a hard cut-over.
The migration that almost broke loyalty points
The loyalty system read order totals from a webhook payload whose field names changed under the new platform. It failed silently — points stopped accruing, nobody noticed for seseight days because nobody was checking, and the fix was a five-minute mapping change once found.
The riskiest integrations are the ones that fail quietly. A missing product image gets reported in an hour. A silent accounting mismatch gets reported in a month.
What discovery should have surfaced sooner
We now ask explicitly, before any migration scope is written: list every system that currently reads data from the platform being replaced, including the ones a person operates manually. That question alone found six of the eleven integrations in week one instead of week eight.
Where the ten weeks went
Roughly a third was building replacement integrations, a third was reconciliation tooling to compare old and new during the parallel run, and a third was the returns process, which turned out to need actual product thinking rather than a straight port.
