1 文章概述
消费者在购物时,电商平台会生成订单。订单相当于是购物者和电商平台签订的合同,后续电商平台会进行履约。
消费者一般只关心买什么东西、付多少钱、货什么时候送达,对底层订单逻辑并不关心,对订单拆单这个概念也比较陌生,本文我们探讨一次基本订单拆单流程。
需要说明真实拆单场景非常复杂,不同公司拆单策略也不同,本文只是讲解一个简单实例,复杂场景需要根据策略具体分析。本文使用的是测试数据仅供演示。
2 一次拆单流程
2.1 购物车
小明在电商平台购物车增加六件商品:
- 商家S1(平台自营)
- A商品:冰箱 1个 100元
- B商品:纸巾 1包 20元
- C商品:书本 1本 20元
- D商品:饼干 1盒 20元
- 商家S2(第三方商家)
- E商品:充电器 1个 20元
- F商品:显示器 1个 20元
2.2 第一次拆单(财务维度)
小明在购物车选择上述商品点击结算按钮,此时发生一次拆单:
- 拆单次数:第一次
- 拆单维度:财务维度
- 解决问题:购买行为能否合成一个父订单
S1和S2是两个不同商家,在财务上完全独立,不能作为同一个父订单,需要拆成两个父订单:
- orderId_1:对应商家S1
- orderId_2:对应商家S2
2.3 第二次拆单(物流维度)
小明点击提交订单按钮发生第二次拆单:从节省物流成本考虑,商家希望将同一笔父订单所有商品放在同一个包裹。但是由于商品体积、数量、存储条件不同,仓库位置不同,不可以放在同一个包裹,所以需要拆单。
- 拆单次数:第二次
- 拆单维度:物流维度
- 解决问题:父订单商品能否放在一个包裹
对于S1自营商家,订单系统调用调度中心拆单服务获取如下拆单逻辑:
- 体积因素:冰箱体积远大于其它商品,所以独立成单
- 仓库位置:纸巾在上海仓库,书本和饼干在杭州仓库,纸巾独立成单,书本和饼干属于同一个子单
对于S2第三方商家,假设E和F商品分别由不同供应商供货,因为不同供应商各自发货,所以E和F各自独立成单。需要注意在财务维度电商平台还是与S2商家结算。
- order_1
- sub_order_id_1-1:A冰箱
- sub_order_id_1-2:B纸巾
- sub_order_id_1-3:C书本、D饼干
- order_2
- sub_order_id_2-1:E充电器
- sub_order_id_2-2:F显示器
2.4 优惠策略
小明在下单时使用以下优惠策略:
- 平台优惠
- 商品AF参与跨店满120元减10元活动
- 店铺优惠
- 商品BCD参与A店满60元减9元活动
- 用户权益
- 注册时赠送10个积分抵扣5元
优惠金额按照商品价格比例分摊:
- A冰箱
- 平台优惠:(100/120) x 10 = 8.33
- 用户权益:(100/200) x 5 = 2.5
- B纸巾
- 店铺优惠:(20/60) x 9 = 3
- 用户权益:(20/200) x 5 = 0.5
- C书本
- 店铺优惠:(20/60) x 9 = 3
- 用户权益:(20/200) x 5 = 0.5
- D饼干
- 店铺优惠:(20/60) x 9 = 3
- 用户权益:(20/200) x 5 = 0.5
- E充电器
- 用户权益:(20/200) x 5 = 0.5
- F显示器:
- 平台优惠:(20/120) x 10 = 1.67
- 用户权益:(20/200) x 5 = 0.5
2.5 订单支付
在支付时小明不小心退出支付页,如果点开订单列表再完成支付时会看到两笔父订单,付款时需要支付两次:
- orderId_1:89.17 + 16.5 x 3 = 138.67
- orderId_2:19.5 + 17.83 = 37.33
2.6 物流配送
订单支付完成后15-30分钟,下推到调度中心。为什么不是支付完成立即下推?因为用户在支付之后短时间可能取消订单,等一段时间再下推,取消订单概率一定程度上会降低。
对于S1自营商家,订单下推经过调度中心,仓储系统、配送系统之后回传物流单号至订单中心。
对于S2第三方商家,如果商家自己发货,商家从供应商处获取物流单号后,通过订单管理后台回填物流单号。
3 流程分析
3.1 拆单维度
订单拆单总体上分为财务和物流两个维度。财务维度拆单主要解决问题是:本次购买行为能否合成一个父订单,常见拆单指标是不同商家拆分为不同父订单。
物流维度主要解决问题是:同一个父订单商品能否放在同一个包裹,常见拆单指标包括:商品体积、数量、存储条件,仓库位置,供应商等等。
3.2 子订单表
父订单有多个子订单,子订单非常重要,后续订单履约按照子订单维度流转,子订单表至少需要承载以下信息:
- 父订单Id
- 子订单Id
- skuId
- 购买数量
- sku单价
- 分摊后平台优惠金额
- 分摊后店铺优惠金额
- 分摊后用户权益抵扣金额
- 实付金额
- 供应商
- 订单状态
- 退款状态
- 物流单号
4 文章总结
第一本文引出订单拆单这个概念,第二本文通过一次购物流程讲解了拆单发生原因和时机,优惠策略计算,第三本文对拆单流程进行分析以及子订单表如何设计。
需要说明真实拆单场景非常复杂,不同公司拆单策略也不同,本文只是讲解一个简单实例,复杂场景需要根据策略具体分析,总体上可以从财务和物流两个维度思考。
作者:JAVA
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。