:解密「零售」系列(二):产品架构( 四 )


(2)订单状态流转
订单状态由订单系统来维护 , 也是其最重要的数据 。其几乎控制着整个电商系统的运行流转 。
:解密「零售」系列(二):产品架构
文章图片

文章图片

每一个状态的变化会影响和指引订单的信息流、实物流、资金流的流向 。通常在大型电商平台会有上百个系统来监听订单状态的变化来触发业务 , 作为业务开始的起点 。每个状态都是在不同的作业流程中各系统来触发改变 , 并将数据回传到订单主数据 , 由订单主数据来统一维护和调度订单状态 , 以确保数据一致性 。
由于订单状态的重要性 , 其在设计之初要特别小心 。个性化状态不能加到主干流程 , 可作为订单扩展数据存在 。每个状态的流转需有前置和后置状态的合法性校验 , 且作为可配置 。如能从状态1到2 , 但是不能从状态3到2 。
4. 履约引擎
所谓的订单履约就是按照订单上的承诺来履行和用户的一个承诺的约定 。而通常为了考虑履约成本 , 且由于商品所在物理上并不是一个不可拆分的单元 , 也即:它不是一个颗粒度最小的实体 , 可以进行多种形式的分解 , 具体如何分解根据不同的业务场景 , 可以进行不同形式的拆分 。
:解密「零售」系列(二):产品架构
文章图片

文章图片

(1)订单拆分
订单拆分是通过客户在前台提交的订单 , 把客户承诺的合同或履行约定 , 拆成货主可生产的一系列子单 , 其实最核心的是拆信息、拆资金、拆实物 。其实不同的平台拆分维度很多 , 不做赘述 。拆分后 , 比如说仓库生产、配送环节、售后环节 , 实际上都是参照子单去进行操作 。
1)实物拆分
像双11或者618等这种大促的时候 , 我们的购物车可能一次性会有10个甚至有若干个东西要购买 , 最后发现被拆成多个订单 , 什么原因呢?
维度1:库房位置
即使针对同一个货主 , 也有可能其不同品类的商品由于储存环境等因素会被放到不同的仓 , 这样就会带来一个拆分 , 这是最主要的一个维度 , 即库房 。
维度2:货主不同
京东为例 , 京东现在有自营和POP , 而POP里边有不同的商家 , 京东为了要给不同的商家进行结算 , 不可能在一张订单上同时存在两个商家的商品 , 这将导致京东无法跟商家做结算 。因而 , 京东会根据商家去进行拆单 。
维度3:特殊业务
有些是业务本身的特殊性 , 需要单独履约 。比如用户下单买了A和B商品 , 但是B暂时无货 , 那么可以选择有货先发 , 那么就会被拆开分别履约 。
2)信息拆分
将原始订单信息复制或者分摊计算到子单 。
3)资金拆分
基本365天都会有不同类型的促销 。比如买个东西 , 满199减 100啊(活动预热) , 大家都会凑单凑到199 。于是 , 用户就会买食品凑够199然后减掉100 。假如用户买了10件商品 , 减了100元 , 那么具体这100块钱怎么减呢?
对于客户来说 , 他们不理会平台怎么操作这个优惠折扣 , 只要这100块钱在自己结算的时候抵扣即可 。比如 , 用户花了200块钱 , 而实际只是收了用户100块钱 , 这就可以了 。但对于平台来说 , 这100块钱并不是直接减100这样来登记的 , 其不在订单里 , 是以商品的金额订单里 , 商品金额的比例分拆优惠的钱 。
(2)订单履约计划
订单转移可以理解为订单的计划 , 其是为了实现订单履约 , 而制定的生产方案 。一个合理的生产计划 , 能在保证时效承诺的前提下 , 起到优化生产 , 降低成本的作用 。由于平台越来越开放 , 不同的订单来源于不同渠道 , 需要由不同的生产系统来履约 。


推荐阅读