This week the migration stopped being a solo project.
A three-module merge from a second developer lands clean behind a fail-closed production guardrail, quick reorder ships, and Monday’s pricing lesson pays rent within the week.
read this entry →A running build log of a real ERP migration: half a million SKUs moving from a decades-old stack onto Odoo — the data work, the custom modules, the search layer, and the applied AI built along the way. Written as it happens, by the person responsible for it.
A three-module merge from a second developer lands clean behind a fail-closed production guardrail, quick reorder ships, and Monday’s pricing lesson pays rent within the week.
read this entry →Eight pricing tiers, ten quantity breaks per rule, and one absolute promise: the customer always gets the lowest price. Why the pricing engine became the migration’s clearest case for building custom.
read this entry →The easy fix that lied, a statement feature parked rather than shipped with wrong numbers, a built-in read before it gets overridden, and why you diff every merge.
read this entry →Carrying an Algolia-powered search experience across the migration when no connector existed: a friendly hostile takeover of the shop page, and a sync that grew from throwaway script to code-owned infrastructure.
read this entry →Evaluating a payment connector, DevTools showed raw card data hitting our own server. The vendor said sandbox-only. The source code said otherwise — so we walked.
read this entry →This week: previously-purchased personalization ships across every shop surface, forty years of invoice history gives up its secrets, and three competing button systems become one.
read this entry →An AI pipeline that researches and completes sparse product records — two models, a confidence gate, and humans only where judgment is genuinely needed.
read this entry →Moving decades of catalog out of legacy systems: importers, judgment calls, and the uncomfortable discovery waiting at the end.
read this entry →A decade operating inherited systems, and the decision to replace them — where this migration came from and what the log will cover.
read this entry →