跳至内容

从 Odoo 出发,电子产品 ERP 能力建设的分阶段路线图

2026年7月24日
从 Odoo 出发,电子产品 ERP 能力建设的分阶段路线图
小智

为什么不能"开箱即用"

如果你直接拿 Odoo 标准的 MRP/PLM 去管电子产品制造,很快会撞上一堵墙:位号(Reference Designator)、AVL/AML(合格供应商/制造商清单)、器件生命周期状态、CPL/Centroid 工程文件、批次到位号级的追溯、车间执行(MES)——这些电子(PCBA/SMT)制造的刚需,Odoo 原生能力和现有开源生态都没有整体覆盖过。

这不是 Odoo 的锅,它本来就是为通用离散制造设计的最小闭环。真正的问题是:怎么在不推倒重来的前提下,把这些能力一点点补齐。

我们的答案是:不追求一次性补全,按投入产出比从高到低分阶段推进。先把数据模型的地基(BOM 层)打牢,再补质量体系,再做替代料和工程变更管理,最后才评估外部元件库和 MES——这也是为什么追溯与 MES 明明投入最大,却排在最后:对"先把 BOM 管起来"这件事,它们的边际帮助最小。

路线图全景

阶段 目标 依赖 优先级
Phase 1 电子物料 BOM 数据模型扩展 无,立即可开始 高(地基)
Phase 2 器件生命周期与分销商数据对接 Phase 1 字段就绪
Phase 3 替代料(Alternate Component)管理 Phase 1
Phase 4 质量体系补齐(OCA quality_control 移植) 无,可并行
Phase 5 工程变更管理(ECO/ECN 轻量版) Phase 1
Phase 6 元件库外部化评估(InvenTree POC) 无,可独立评估
Phase 7 追溯与 MES 长期规划 Phase 1-3 上线后 低(仅立项跟踪)

关键的排序逻辑:Phase 1 是唯一的强前置依赖。位号、MPN、生命周期状态这些字段一旦定型,后面的分销商数据回填、替代料、BOM 版本化全都直接建在它的数据结构之上——返工成本最高,所以必须最先独立启动。Phase 4 不依赖 Phase 1,可以并行推进。Phase 6、7 是评估性质,不占主线开发资源,可以见缝插针地穿插进行。

分阶段怎么做

Phase 1 · 电子物料 BOM 数据模型扩展(地基)

把位号、MPN、AVL/AML、生命周期状态四类信息落到 Odoo 的 BOM/产品数据模型里。计划新建模块 inair_electronics_bom(依赖 inair_common + mrp),核心动作包括:

  • mrp.bom.line 扩展 reference_designator(位号),支持一个 BOM 行对应多个位号;
  • 新增 product.manufacturer.part(制造商料号)模型,关联产品、制造商、MPN、生命周期状态(active/nrnd/eol/obsolete);
  • 扩展 product.supplierinfo 或新建 AVL 关联模型(供应商 + 优先级 + 认证状态);
  • 改造 BOM list/form 视图,支持按位号搜索;
  • 存量数据迁移脚本,不影响现网数据;
  • 字段约束 + BOM 展开/成本计算的回归测试。

验收标准很朴素:现有 BOM 功能零回归,新建 BOM 能录入位号/MPN/AVL,旧数据迁移后不会因字段为空而报错。风险也很明确:BOM 行结构改动影响面广,采购、成本核算都读 BOM,上线前必须在测试库跑一轮完整回归。

Phase 2 · 器件生命周期与分销商数据对接

让生命周期状态和合规属性不再靠人工维护。调研 Octopart/贸泽(Mouser)/Digikey 的开放 API,在 inair_commonbase.external.dbsource 框架上扩展 REST 类型数据源适配器,用 ir.cron 定时按 MPN 批量回填生命周期状态、RoHS/REACH 合规属性;BOM 中出现停产/不推荐器件时,通过 mail.activity 或看板预警。风险点是 API 额度和费用,需要先确认业务量级是否在免费额度内。

Phase 3 · 替代料(Alternate Component)管理

BOM 中一个位置可以配置多个可用元件,按优先级 + 数量换算比例排列。生产发料时(扩展 mrp.production/stock.move)可以选替代料,库存正确扣减;成本核算要反映替代料的实际用料价格。

Phase 4 · 质量体系补齐(OCA quality_control 移植)

在没有企业版 Quality 模块的前提下,评估 OCA/manufacture 下的 quality_control_oca 系列是否有 19.0 分支,没有就走 quilt 或自维护模块移植。配置 IQC(来料)、IPQC(制程)、FQC(成品)三类质检点模板,分别挂接采购入库、生产工单、成品入库节点,质检记录与生产批次关联,为 Phase 7 的追溯打基础。

Phase 5 · 工程变更管理(ECO/ECN 轻量版)

不依赖企业版 PLM,mrp.bom 增加版本号字段及历史版本关联;新建 product.change.order 变更单模型,复用 mail.thread/activityproject 工作流做审批;变更生效时检查受影响的在制生产订单/在库物料,给出冲突提示(先做提示级,不要求自动处理)。

Phase 6 · 元件库外部化评估(InvenTree POC)

评估是否值得引入 InvenTree 作为专业元件库,而不是在 Odoo 里重新造轮子。部署试用、评估 REST API 覆盖度,设计 Odoo ↔ InvenTree 的同步方案并明确 Source of Truth,小范围单向同步 POC。产出是一份技术选型报告,不要求生产可用。

Phase 7 · 追溯与 MES(长期规划,仅立项跟踪)

先确认业务方是否有真实的车间自动化/设备联网需求(SMT 贴片机/AOI/ICT 等)。有明确需求再谈自研 vs 对接开源 MES 的可行性。本阶段只产出"做/不做"的结论和依据,避免在没有真实需求时投入这类高成本能力。

悬而未决的问题

  1. Phase 2 的分销商 API 具体选哪家、免费额度是否够用,需要业务方确认预算和数据量级。
  2. Phase 4 的 OCA 模块是否有 19.0 兼容分支,要实测才能定移植工作量。
  3. Phase 6/7 是否推进到实施,取决于评估结论,暂不预排开发资源。

下一步

方案已按阶段拆分为具体的子任务,挂在本 issue 下,可以直接排期启动 Phase 1。

让智能体把文档发成博客:inair_website_blog 的设计与实现
复用 auth=openapi 零配置认证与 md_to_html,用 multica blog 让智能体把技术文档发成博客草稿