B2B订单系统怎么做?流程引擎与权限模型拆解
一、B2B订单系统和B2C有什么不同很多技术团队接过B2C的订单系统开发再碰到B2B项目时第一反应是“差不多再加几个字段就行”。这个想法一冒出来项目就已经埋下隐患了。B2B订单的业务复杂度和B2C完全不在一个量级。B2C的订单链路相对标准化用户下单、付钱、发货、收货流程基本固定。B2B订单却绕不开几样东西审批流、多层级价格、信用额度、分批履约、对账结算周期。同一个客户的同一个订单可能采购经理下完、财务总监还要再批一次。同一个商品不同客户等级看到的价格不一样。同一笔订单的货可能要分三批发到三个不同的收货地址。这些需求如果在系统设计阶段没被处理好代码写出来就是一层又一层的补丁。云策擎在交付过多个B2B项目后总结出B2B订单系统有两个核心骨架必须先搭好流程引擎和权限模型。这两样东西定了整个系统才撑得住。二、流程引擎订单的“交通指挥系统”B2B订单不是“下单即成交”。从采购申请、审批、确认、发货到对账结算一张单子可能要在多个部门之间转好几圈。靠硬编码写死流转路径一旦客户的审批规则变了代码就得跟着改系统越改越脆弱。云策擎的架构选择是用流程引擎来管理订单生命周期。流程引擎的作用不是让订单“动起来”而是把“谁能动、什么时候能动、动了之后触发什么”这三个问题从代码里抽出来放进可配置的规则里。订单的状态节点在B2B场景下比B2C多出不少。除了常见的待付款、已发货、已完成还需要支持待审批、审批驳回、部分发货、待对账、已结算这些中间态。每一个状态节点由哪个角色操作、操作后流转到哪个下一节点全部定义在流程模板里。举个例子一个客户的审批规则要求“金额超过五万需总监审批”。这个规则不是写死在代码里而是作为条件分支配置在流程引擎中。金额小于五万订单自动通过金额大于等于五万自动路由到总监审批节点。未来客户把阈值改成三万只需要修改配置参数一行代码都不用动。审批节点本身还需要考虑超时机制。总监超过二十四小时未审批是自动通过、自动驳回、还是升级到更高层级处理这些分支规则也要提前定义在流程模板里。云策擎的做法是让流程引擎支持SLA计时器每个审批节点独立设置超时后的默认动作。流程引擎带来的最大收益不是“自动化”而是“可修改”。B2B客户的业务流程差异太大几乎不存在两家的审批规则完全一致。把流转规则做成可配置的模板OMS才能适配不同客户而不用二次开发。三、权限模型比菜单控制更重要的事权限模型在很多B2C系统里相对简单——管理员能看所有、客服只能看订单、仓库只能看发货。但B2B的场景要复杂得多。同一个客户公司下采购员和审批人的权限边界完全不同同一个供应商公司下业务员只能看自己名下的客户订单不能看同事的。云策擎在B2B订单系统的权限设计上采用三层权限结构。第一层角色层。定义系统内有哪些角色采购员、审批人、供应商业务员、系统管理员。每个角色的菜单权限范围不同采购员不需要看到结算模块供应商业务员不需要看到内部审批流。这是最基础的一层。第二层数据层。这是B2B权限的核心。同一个角色不同用户看到的数据范围不同。供应商A的业务员只能查到属于供应商A的订单供应商B的业务员不能看到供应商A的数据。同一个采购公司下普通采购员只能看自己下的单部门经理能看到部门内所有采购员的单子。这一层的实现方式是给每个用户标记所属组织节点查询订单时自动拼接数据过滤条件。第三层操作层。同一张订单不同角色能做的操作不同。采购员可以提交审批、撤回审批审批人可以同意或驳回供应商业务员可以确认订单、发起发货。操作层的权限粒度需要控制到按钮级别——一个用户打开订单详情页页面上显示的按钮取决于他当前在这个订单上下文里拥有的操作权限。这个三层权限模型落地之后B2B订单系统的安全边界才算真正建立起来。数据不会跨组织泄露操作不会越权执行。比起B2C系统“按角色分配菜单”的粗放做法B2B系统的权限模型必须精细到“谁、看什么、能干什么”三个维度。四、流程引擎和权限模型怎么协同流程引擎和权限模型不是两套独立的东西。它们在B2B订单系统里是深度耦合的。流程引擎定义“订单当前处于哪个节点”权限模型定义“当前节点的操作者是谁”。当订单流转到“总监审批”节点时系统自动查找拥有审批权限的角色只向这些用户开放审批操作。审批节点的通过或驳回操作又触发流程引擎计算下一跳转节点。节点的每一次变化都同时更新操作权限的归属。云策擎在实现上让流程引擎和权限模型共享一套用户组织关系表。流程节点配置时直接引用角色定义权限分配时也基于同一套角色体系。这个设计避免了权限在流程引擎里定义一次、在权限模块里又定义一次的双重维护问题。五、总结B2B订单系统的复杂度不在界面不在报表而在于两样东西流程怎么流、权限怎么分。这两个骨架搭好了上面的功能模块——询价、报价、信用额度、分批履约、对账结算——才有一个稳固的底子可以承接。云策擎的经验是B2B订单项目启动时先花足够时间把客户的审批规则和角色权限矩阵理清。这两张图画透了代码怎么写是水到渠成的事。