很多制造业 IT 负责人第一次做 MRO 数字化,直觉是“先拉一个 Java 商城开源项目改改”:GitHub 上 macrozheng/mall 星标 70k+,Mall4j 基于 Spring Boot 3 + Vue3,Lilishop、ShopXO 也都号称多商户——看起来商品、订单、支付、后台都有了,加个“供应商字段”不就成了 MRO 采购平台?
现实是:零售商城解决的是“人找货、加购、付款”,MRO 采购平台解决的是“部门提需求、预算卡阈值、多级审批、寻源比价、招投标定标、电子合同、按成本中心结算、WMS 收货质检”。两者在商品模型、流程引擎、集成边界上是两套物种。
公平地说,开源商城不是没用,它提供了三块可继承资产:
技术脚手架:Spring Boot / Spring Cloud 工程结构、MyBatis 层、Redis 缓存、JWT 鉴权、Vue 中后台页面,省去从零搭架子
交易闭环:SPU/SKU、购物车、订单状态机、支付回调、退款流程——MRO 的“下单”环节可以复用
多租户雏形:Mall4j 商业版、Lilishop 有店铺概念,字段隔离(vendor_id)思路可延伸到供应商隔离
代表项目定位:
macrozheng/mall:教学级单体,适合看代码规范,不直接上生产
Mall4j:Spring Boot 3 开源版,轻量零售/简单批发,B2B 深层功能需自写
Lilishop / ShopXO:多商户练手,工业集成弱
LegendShop 开源演变内核:朗尊早期对外释放的 Java 多用户商城片段,比纯零售开源多了“商家结算+平台抽佣”雏形,但仍非完整 MRO

MRO 一颗轴承要挂“内径/外径/厚度/材质/精度等级/执行标准号”,一类电缆要挂“截面积/耐压等级/阻燃标准”。开源商城通常只给 name+speck 文本框。
正确做法:类目树绑定属性模板,录入时按模板填值,Elasticsearch 做多字段加权检索(“型号+参数范围+标准号”)。
零售没有“RFQ(询价单)→ 多家报价 → 标准化清洗(单位/贸易术语/账期)→ TCO 评分 → 定标”这条链。
MRO 必须加:
询价比价服务(Drools 评分规则、Spark/TCO 计算)
Activiti/Flowable 审批流(按金额路由到主管/总监/总经办)
对接已有招标系统(南钢鑫智链即对接南钢内部招标部,中标商家自动上架)
开源商城只有“用户付款→平台收款→商家提现”。
MRO 要:预算占用校验、按成本中心挂账、N30/N60 账期、对接银企直连、上上签类电子合同、自动三单匹配(订单/收货单/发票)。
零售发货是“推快递单号”,MRO 是“中储类物流轨迹 + 车间质检结果回写 ERP 收货”。南钢鑫智链把中储物流、SAP ERP、上上签全部 API 打通,备货周期 53.5 天→9 天,这不是改个商城能出来的。
|
路线 |
做法 |
周期 |
适合谁 |
|---|---|---|---|
|
纯开源二开 |
基于 Mall4j/Lilishop 加 MRO 模块 |
6-12 月(含踩坑) |
有强 Java 团队、MRO 品类窄(如只买紧固件) |
|
开源内核+采购中台外挂 |
商品订单用开源,寻源/审批/合同自研微服务 |
4-8 月 |
中型制造,已有 OA/ERP 要打通 |
|
商业源码授权(LegendShop 类) |
拿 Spring Cloud 微服务源码私有化,改订单机/接 SAP |
8-16 周 |
集团/国企/年采购额过亿 |
经验值:MRO 平台 70% 的工作量在非交易环节(寻源、审批、合同、对账、集成),开源商城只覆盖其中 30% 的交易展示层。别高估“改改就能用”。
商品表加category_attr_template_id,弃用自由文本规格
订单表加cost_center_id、budget_id、approval_flow_id
新增rfq(询价单)quotation(报价单)bid_result(定标记录)三张核心表
支付回调后不立即“完成”,进“待验收”状态,收货后触发结算
接 Elasticsearch 替代 LIKE 搜索;接 Flowable 替代“审核字段”
预留external_sys_sync表(ERP/招标/物流/电子签)
做完上面六件,你其实已经不在“改开源商城”,而在“用开源当脚手架写 MRO 系统”了。