引言:说点好玩的,电商后台订单系统的设计需要先了解到供应链是什么,套用业内最常用的一句话:
供应链是指产品生产和流通过程中所涉及的原材料供应商、生产商、分销商、零售商以及最终消费者等成员通过与上游、下游成员的连接 (linkage) 组成的网络结构。也即是由物料获取、物料加工、并将成品送到用户手中这一过程所涉及的企业和企业部门组成的一个网络。 ---文章引用自MBA智库
从整个供应链的定义来看,不同行业上下游关系等大不相同,故而在实际的设计中针对于不同行业,不同角色,不同企业,设置相同企业所属的业务阶段不同,也可能进行简化和复杂化。
而整个平台型的交易流程,和自营的差异点在于,无需处理原材料供应商,生产商,分销商等之间的关系;仅需要做的是处理电商平台和零售商以及最终消费者的上下游链接关系。
而交易系统在整个电商行为中,核心要承载的就是整个交易行为过程中,整个供应链四个流程的业务协调,从而从后台达到:1)高效率;2)低成本;的满足用户需求和企业利润的作用。平台型的更多的是关注外部对用户的效率和体验;而内部更多的是追求对外用户效率和对内供应链相应速度及时性在各方成本方面的均衡,追求尽可能满足用户体验的情况下获取最大的利润。
01.交易系统设计要素和原理
基本原理
定位:承载用户的交易处理行为和后续的交易数据服务;
供应链基础流程:信息流,资金流,物流
系统流程:信息流:由资金流和物流决定的信息流转;
核心设计要素
1)订单状态建模:状态机引擎设计:订单如何流转,一般为交易系统的灵魂;一般会分为基础版本和升级玩法版本;并且不同行业,不同业务形态均不相同。以实物电商为例:基础玩法,一般根据先货后款或者先款后货两类;升级玩法也就是业务和基础交易流的融合,一般体现为 营销玩法:如:拼团,预售等不同的玩法;
2)订单结构建模:承载订单上需要记录的信息并结构化信息,不同行业可能会存在不同,针对于玩法类订单类型的,在基础分类的订单结构的基础上,需要新引入业务相关信息;
其他:订单状态建模或者结构建模由于业务驱动点不同,故而引发出订单类型的概念,订单类型的分类标准各企业均不相同,不过以订单建模不同而分类较为常见,如:货到付款订单,先款后货订单,预售订单,拼团订单之类;
02.交易系统设计
由于整个交易体系博大精深,我们仅以实物电商的先款后货来探讨此处的设计方法;
交易系统状态设计
交易状态流转设计三要素:信息流,物流,资金流;大多数交易系统状态建模是针对于该三种状态的体现。
设计两大实体:状态,角色;
状态:是交易行为的在不同角色的不同操作下流转的行为结果,不同的状态下,订单的各信息不同。
角色:针对于订单可进行操作的主体。以平台侧为例:分为:商家,平台运营,系统,客人;
动作:动作是由角色触发,引起订单状态变化的诱因,同时不同的状态下又根据定位不同导致角色支持的操作不同。
此处以实物电商的正向交易系统流程设计为例:我们举例如下;
简化版交易流说明图
每一种状态的之间的流转均由一系列的动作触发,而不同的动作则是在不同的状态由不同的角色触发,以实物电商平台侧举例如下:
影响状态类操作
实际的订单流程中,平台不同,则流程权限各不相同,除影响订单状态的操作外,还有很多虽然不影响订单状态,但实际上很重要的操作,此处不再展开;
交易系统结构建模设计
所谓订单的结构设计,主要指的是订单记录的信息,在不同状态下,订单的结构字段对应的取值等各信息不相同。
初步整理如下:
交易系统服务方说明
交易系统服务方一般来讲分为两类:业务处理服务方;数据服务方;
业务处理服务方:和交易流程完成相关的服务方,如前端用户端,后端供应链,商户系统,运营系统。一般更多的是同步处理,时效性要求强。
数据服务方:和交易流程不强相关的系统服务方,如CRM,BI,风控,结算等后置数据处理方。一般更多的是异步处理,时效性要求弱。
针对于前者,更多的是业务流程渠道处理触发,针对于后者,更多是不同纬度交易数据的聚合提供数据服务,前者需对业务了解深入,避免入坑,后者需提前考虑可能需要的纬度,适当预留收集信息。
写在最后:由于交易系统是供应链关系的反馈,而各家供应链各不相同,故而在细节侧遵循过多的设计规范,因地制宜即可。不一定为了引入更好的规范而引入更好的设计,没有最好的设计,只有在当期和稍微可见的短期最适合企业的设计。