历史产品编码很多、很乱,但员工已经习惯按编码录入,新系统怎么兼顾?
结论:保留旧编码作为搜索别名,不再让它们直接代表产品。新系统给每个标准产品一个不可变主键和受控标准编码,员工仍可输入旧码找到商品;未映射、冲突或已停用编码进入主数据审核,不能静默猜测。
产品编码混乱通常不只是格式问题。同一商品可能因年份、客户、仓库或业务员产生多个码;同一个旧码也可能在不同公司代表不同规格;包装数量、颜色、材质或配方变化后,有人沿用旧码,有人新建。若只做字符串替换,库存和销售报表会把不同商品错误合并,风险比继续使用旧系统更大。
在继续拆分功能、数据与验收场景时,还可以对照 旧系统的历史数据怎么安全迁移到新系统?会不会丢或乱?;这些内容补充了需要放在同一项决策中考虑的上下文。
三种迁移策略的差异如下:
| 策略 | 一线操作变化 | 数据治理效果 | 主要风险 | 直接建议 |
|---|---|---|---|---|
| 全部沿用旧编码 | 几乎无变化 | 混乱被原样带入新系统 | 重复商品、统计和库存继续失真 | 仅作短期过渡 |
| 上线日强制切换新编码 | 变化最大 | 理论上统一最快 | 错录、抵触和业务中断 | 只适合编码少且培训充分的场景 |
| 标准产品 + 历史别名映射 | 可继续搜旧码,确认标准商品 | 逐步统一且可追溯 | 前期需要清洗和持续主数据责任人 | 大多数历史复杂项目优先 |
标准产品表应使用系统内部不可变 ID 作为关联键,标准编码只是可管理的业务属性。产品名称、规格、单位、包装层级、品牌、税收分类和生命周期状态分别存储;历史编码表记录旧码、来源系统、所属客户或组织、指向的标准产品、生效时间、停用时间、确认人和置信状态。订单明细永远关联标准产品 ID,同时保留当时输入的原始编码,便于追查。
映射不是永远多对一。只有经业务确认“商业上是同一可交易品”时才能合并;包装数量、净含量、关键功能、品牌或监管属性改变,可能需要不同标准产品。GS1 的 GTIN Management Standard 提供了贸易项目何时需要唯一标识及新产品/产品变更的判断思路。企业内部编码不一定必须采用 GTIN,但可以借鉴“可订购、定价或开票的贸易项目应被唯一识别”的原则。
上线前先对历史编码做画像:总数、近 12/24 个月实际使用数、完全重复、同码多义、无名称、规格缺失、仍有库存和关联订单的数量。优先处理高频、有库存、影响财务的编码,低频停用码可保留只读查询,不必为了达到“100% 清洗”拖延上线。自动相似匹配只生成候选,涉及库存或历史交易的合并必须由产品、仓库、销售或财务指定负责人确认。
录单界面允许扫描条码、输入旧码、标准码、名称或规格搜索,结果必须显示足以区分的品牌、包装、单位和状态。唯一命中且已确认的别名可以自动选择;一对多、停用或未知编码要提示人工选择。未知编码可以保存为草稿或待映射任务,但不能直接进入扣库存、报价或发货,否则错误会扩散到下游。
新编码创建权要收紧。普通员工可以申请新产品,提交名称、规格、单位、供应商资料和原因;主数据负责人先查重,再决定新增、映射或驳回。合并和拆分不能直接删除旧记录,应保存变更前后关系,并评估库存、价格表、BOM、订单、报表和外部 ERP 的影响。已产生交易的标准主键通常不复用。
过渡期按周统计旧码搜索占比、未映射次数、错误选择、主数据审核时长和重复新增。针对高频旧码在搜索结果中提示标准码,但不要依赖“自然淘汰”这一不可验证假设;可以分部门设定切换日期,先允许旧码录入,再只允许查询,最终对新订单停用,同时保持历史单据可读。
验收要用真实编码样本验证:同一商品多码、同码不同客户、包装变化、停用品、有库存、未知码和扫描错误。核对映射后订单数量、库存余额和销售额汇总与旧系统对账,并测试无权限人员无法合并产品。滚水科技在 企业级解决方案 中会把编码映射作为主数据迁移的一部分,而不是单独做一个搜索功能。