How can a new system handle messy legacy product codes without disrupting staff?
Keep legacy codes as search aliases rather than letting them continue to define the product. Give every standard product an immutable internal ID and a governed standard code. Staff can still type an old code to find the item; an unknown, ambiguous, or retired code enters master-data review and is never guessed silently.
Code disorder is rarely just formatting. One item may have codes by year, customer, warehouse, or salesperson. The same old code may mean different specifications in different companies. Packaging, colour, material, or formula may change while some people reuse the code and others create a new one. Blind string replacement can merge distinct stock and sales, creating more risk than the old system.
When decomposing features, data, and acceptance scenarios, also compare Will a system become unmanageable as new requirements keep appearing?; the linked guidance adds context that should be considered in the same decision.
| Migration route | Frontline change | Governance | Risk | Recommendation |
|---|---|---|---|---|
| Retain all old codes as products | Almost none | Carries disorder forward | Duplicates and inaccurate inventory/reporting remain | Temporary only |
| Force new codes on launch day | Highest | Fast theoretical standardization | Entry errors, resistance, interruption | Only for few codes with strong training |
| Standard product plus legacy aliases | Staff search old code and confirm standard item | Gradual, traceable convergence | Initial cleanup and an ongoing data owner | Default for complex histories |
The product table uses an immutable system ID as every transaction's relationship key; the standard code remains a manageable business attribute. Name, specification, unit, packaging hierarchy, brand, tax category, and lifecycle are separate fields. An alias stores old code, source system, customer or organization context, target product, effective and retirement dates, approver, and confidence. Order lines link to the standard ID while preserving the code originally entered.
Mappings are not automatically many-to-one. Merge only items confirmed to be commercially identical and interchangeable. Changes in pack size, net content, important function, brand, or regulated attribute may require a distinct product. The GS1 GTIN Management Standard offers useful reasoning about when a trade item or product change needs unique identification; an internal system does not have to use GTIN to apply that principle.
Before migration, profile all codes and active use over an appropriate recent period, duplicates, ambiguous reuse, missing names/specifications, on-hand stock, and related transactions. Clean high-frequency, stocked, and finance-relevant items first. Rare retired codes may remain searchable read-only rather than delaying launch for nominal 100% cleanup. Similarity tools propose candidates; product, warehouse, sales, or finance owners approve any merge affecting stock or history.
The order interface can search by barcode, legacy code, standard code, name, and specification and displays brand, pack, unit, and state. A unique confirmed alias may auto-select. Ambiguous, retired, or unknown results require selection. Unknown input can create a draft mapping task but cannot reserve stock, price, or ship.
New-code creation is restricted. Staff submit a product request with specification, unit, supplier evidence, and reason; the master-data owner checks duplication and decides to create, map, or reject. A merge or split preserves relationships and assesses inventory, prices, BOM, orders, reports, and ERP integration. Transaction-bearing IDs are not reused.
During transition, track old-code searches, missing mappings, wrong selections, review time, and duplicate requests. Prompt frequent aliases with the new code and phase departments from entry to search-only to no legacy code on new orders, while historical records remain readable.
Acceptance uses real cases: multiple codes for one item, same code across customers, packaging changes, retired stock, unknown codes, and scan errors. Reconcile quantities, stock, and sales with the old system and deny unauthorized merges. Wavesteam treats code mapping as part of master-data migration within its enterprise solution work, not merely a search widget.