从“一堆旧 ERP”到一套可演进的 ERPNext 产品族
本报告先把产品线、租户、业务工作台和外围渠道分开,再回答三个核心问题:哪些能力 ERPNext 原生可用,哪些必须用 Custom App 重做,哪些旧资产只应保留数据与业务规则。
推荐目标不是“把所有旧页面搬进 ERPNext”,而是用 ERPNext 承担标准进销存、库存、会计、权限和工作流;用两个领域 Custom App 分别承接珠宝定价与原料金属结算;Platform、商城、手机、客服作为外围系统通过稳定合同接入。
一句话结论
先把关系摆正
当前系统同时混合了产品线、租户、工作台和渠道。只有先分清这四层,才能避免把一个租户的菜单差异误判成独立产品,也避免把客服或商城错误塞进 ERP 核心。
Nexora Platform · 统一控制面
身份认证、租户目录、产品授权、handoff 与业务身份映射;不承担库存和资金真相。
珠宝成品线
一物一码 · 成品零售 · 同一产品族
原料与贵金属线
重量台账 · 工厂结算 · 三种业务工作台
最大差异不是菜单,而是库存与结算
珠宝和原料有同源历史,也共享客户、商品、采购、销售和资金等概念;但“什么东西在库存里、如何计价、向谁结算”已经演化成两套领域模型。
珠宝成品
一物一码 · 成品零售原料与贵金属
重量台账 · 工厂结算珠宝可以建立在 ERPNext 标准库存、序列号、POS 和会计之上;原料 Metal 必须增加专业金属子账与结算引擎。若把两者硬压成一个“通用商品模型”,后期一定在重量、计价和审计上重新分叉。
现有资产如何处置
资产价值按“业务真相和迁移必要性”排序,而不是按代码量排序。旧系统可以被替换,但真实数据、单据状态、计算口径和外部合同不能丢。
| 资产 | 真正价值 | ERPNext 目标处置 | 动作 | 理由 |
|---|---|---|---|---|
| Platform 身份与租户控制面统一登录、租户、产品入口、handoff | 跨产品身份与授权边界 | 保留为 ERPNext 外部控制面,增加 SSO 与业务身份映射 | KEEP | 不应把跨产品平台能力塞进 ERPNext 业务库 |
| 囍铺、龙凤、摆件业务数据商品、库存、单据、会员、收款、历史 | 业务连续性和迁移真相 | 清洗、映射、分批迁移;保留来源主键与审计链 | MIGRATE | 这是最有价值且不可重造的资产 |
| 珠宝定价与状态机金价、克重、工费、旧料、退货、盘点 | 行业差异化和验收口径 | 重建为 Jewelry Custom App,旧代码仅作行为参考 | REBUILD | ERPNext 原生没有完整珠宝计价与旧料闭环 |
| 原料 Store 业务通用客户、库存、采购、销售、资金 | 原料租户的通用经营流程 | 优先映射标准 ERPNext;只把行业差异做成轻扩展 | CONFIGURE | 大量能力与标准进销存重合 |
| Metal 专业域成色、折足、提纯、工厂库存、结价、结算 | 原料线核心竞争力 | 重建独立 Metal Custom App 与金属子账 | REBUILD | 不能依赖普通库存字段模拟金属账 |
| Customer Service 工作台订单处理、收款信息、处理记录、客服业绩 | 运营效率与业务协同 | 保留独立工作台或 Frappe 轻应用,通过 API 读写 ERP 单据 | INTEGRATE | 它不是库存与会计真相源 |
| 商城、小程序、员工端商品、库存、订单、履约与移动操作 | 客户与员工入口 | 保留前端体验,重写 ERPNext 桥接合同 | INTEGRATE | 迁接口行为,不迁旧后端耦合 |
| 角色、菜单和 UAT 证据谁做什么、哪些能力真实存在 | 需求目录、权限语义和回归资产 | 转成 ERPNext Role/Permission、Capability Register 与验收用例 | KEEP | 菜单不照搬,但能反推出岗位与业务能力 |
| 重复 Vue/PHP/Kotlin fork多仓复制、兼容层、硬编码租户差异 | 仅剩行为参考价值 | 新系统稳定后只读归档,不继续维护 | ARCHIVE | 直接搬迁会把历史技术债复制进 Frappe |
| 空壳 schema、死接口、无引用页面测试时期或历史残留 | 无业务真相 | 证据确认后不迁移 | DROP | 迁移成本高于业务价值 |
ERPNext 能力映射
目标不是“ERPNext 全包”,而是让标准能力承担标准问题,让 Custom App 只承接行业核心。下表是当前建议边界,最终以源码、数据库和真实业务单据的 Gap Matrix 为准。
标准能力直接使用
- Company / Branch / Warehouse
- Item / Item Group / UOM
- Customer / Supplier
- 采购、销售、收货、发货
- Stock Entry / Stock Ledger
- 应收应付、Payment Entry、GL
- Serial No / Batch
- POS、Workflow、Role、Permission
- Quality Inspection、BOM、Subcontracting
配置与轻扩展
- 租户 Company / Site 组织结构
- 仓库、门店、账户与成本中心
- 商品属性:材质、规格、单位
- 审批状态与多级 Workflow
- Pricing Rule 与客户价格
- Print Format 与基础报表
- 角色权限与字段级可见性
- 自定义字段和少量 Server Script
Jewelry Custom App
- 克重、成色、金属类别
- 每日金价与价格快照
- 克重定价、工费、石料和附加费
- 一物一码、条码与 RFID
- 以旧换新与旧料折价
- 珠宝退货、盘点、维修和定制
- 珠宝 POS 与专用报表
- 租户能力开关:囍铺、龙凤、摆件
外围保留与桥接
- Nexora Platform SSO / handoff
- 员工 App / H5
- 商城与微信小程序
- Customer Service 运营台
- nexora-loop 客服与工单
- 打印、标签和条码设备
- 金价、图片、支付和物流服务
- 历史系统只读查询与归档
推荐的 ERPNext 目标架构
一套代码与应用版本,不等于把所有客户塞进同一业务库。推荐用同一 Bench/发布链管理多个独立 Site;领域差异由 Jewelry 与 Metal 两个 Custom App 承担,租户差异由配置和 Feature Flag 承担。
Nexora Platform
统一身份、租户、产品入口和 handoff。登录后把用户送入所属 ERPNext Site,不参与业务表联查。
Customer Service
保留独立运营工作台;通过受控 API 操作订单、备注和收款状态,不复制库存账。
一租户一 Site
囍铺、龙凤、摆件及原料租户各有独立数据库;共享代码和迁移版本,避免 aid 过滤成为永久架构债。
ERPNext Core
商品、客户、供应商、采购、销售、库存、应收应付、总账、角色、工作流和标准报表。
员工 App / H5
保留高频移动体验;业务接口逐步指向 ERPNext/Frappe,不再维护 PHP/Kotlin 双合同。
商城 / 小程序
ERPNext 提供商品、可售库存、订单和履约真相;渠道端保持会员与购物体验。
旧系统只读归档
保留历史查询、原始主键和审计证据;新业务稳定后停止旧 fork 的功能演进。
详细实施路线
先把业务事实做成可审计的能力清单,再开发。每阶段必须有明确入口条件和完成门禁;未完成上一阶段,不把“页面能打开”包装成“业务已经迁移”。
业务资产与关系审计
逐产品线、租户、角色、单据、状态、库存影响、资金影响、页面、API 和数据表建立 Capability Register。把“产品线差异、租户配置差异、历史重复实现”明确分栏。
ERPNext Gap Matrix
对每项能力标记 STANDARD / CONFIGURE / JEWELRY APP / METAL APP / BRIDGE / ARCHIVE / DROP,并验证对应 DocType、Workflow、权限和账务影响。
囍铺珠宝试点
以真实数据最完整的囍铺建立 Site、Company、仓库、账户、商品属性和 Jewelry App 最小闭环;优先完成商品、库存、销售、收款、退货、旧料和日结。
珠宝产品化
将囍铺试点收敛成可配置产品;龙凤、摆件通过租户配置、角色和功能开关复用同一 Jewelry App,不复制代码。补齐维修定制、标签打印与专业报表。
原料 Store 与客服工作台
先用 ERPNext 标准采购、销售、库存、账户和报表承接 Store;再把 darkgroup Customer Service 作为独立运营面接入,不把客服数据变成第二套账。
Metal 专业域
建立收料、成色、折足、提纯、工厂库存、结价、结算、付款和冲销 DocType;重量子账与资金子账并列,所有关键公式具备自动断言。
数据迁移与双系统对账
按主数据、期初余额、未完成单据、库存、应收应付、历史归档分批迁移;保留来源主键和映射表。对同一业务日做新旧系统并行计算。
渠道桥接与旧系统归档
员工端、商城、小程序、客服、打印和金价服务逐条切换到稳定合同;旧系统保留只读查询和审计,最后停止新业务写入。
Hermes 与 Hold X 的分工
按“证据采集”和“业务解释”分工,而不是让两个 Agent 各写一份互相不一致的方案。Hold X 负责把代码和数据事实找全;Hermes 对事实做业务归类并负责 ERPNext 取舍。
源码、数据库、接口审计
- Controller、Route、前端页面、API、数据表的调用链。
- 核心表字段、状态值、外键、真实数据量和活跃调用。
- 珠宝三租户与原料三业务形态的代码和 schema 差异。
- 商城、手机、客服、打印、金价等外部合同和调用方。
- 每项结论必须返回文件、函数、SQL 或运行态证据坐标。
业务模型、资产取舍、ERPNext 映射
- 将代码概念翻译为业务对象、单据、状态机和不变量。
- 区分产品线差异、租户配置差异和历史技术重复。
- 决定 STANDARD / CONFIGURE / CUSTOM APP / BRIDGE / DROP。
- 设计 Jewelry、Metal、Platform Bridge 和迁移边界。
- 维护唯一 Capability Register、Gap Matrix 和目标路线。
产品线、租户、工作台、渠道和真相源。
每项资产的价值、证据、动作和负责人。
原生、配置、Custom App、桥接与淘汰。
主数据、余额、未完单、历史和回滚。
分阶段门禁、对账规则、E2E 和退出条件。
四条决策红线
这四条用于防止 ERPNext 项目再次变成“旧系统换技术栈、历史问题原样复制”。
206 个菜单节点不是 206 个新页面;先归并成业务能力和 DocType。
每个核心流程必须用真实关联数据验证搜索、状态、库存、金额和审计。
Metal 的重量、成色、提纯和结算是独立领域模型,不做字段拼凑。
旧代码只做行为证据;新系统统一模型和发布链,先接新链再归档旧链。
Evidence: nexora_xipu · nexora_metal · ERPNext 16.28.0 · Frappe 16.27.0 · jewelry web freeze aadfb53b · raw representative evidence f9fc22d7