美文网首页产品与项目产品设计系统架构
业务梳理-电商-B2C订单设计方案

业务梳理-电商-B2C订单设计方案

作者: HughJin | 来源:发表于2021-04-18 09:58 被阅读0次

    Java工程师知识树


    一、订单是什么

    订单的本意是指你购买商品之后生成的单据凭证,只是在电商中,它是虚拟的。

    主流的下单方式

    整个电商体系中常见的下单方式有2种,购物车下单直接下单

    淘宝称之为购物车结算和立即购买,正常情况下你可以任选一种去购物。但是在秒杀之类的特殊场景中,只支持直接下单。

    京东也称之为购物车结算和立即购买,不同的是,正常情况下你必须通过购物车去结算,秒杀情况下你可以选择立即购买和购物车结算。

    订单的类型

    由于不同的下单方式,其实导致订单的类型有2种。

    简单来说购物车结算的订单肯定包含了基于sku不同的多个子订单,而每个子订单包含n件同一sku。而立即购买的订单是包含n件同一sku。

    然后淘宝的PM因为后续增加了购物车结算这一下单方式,而不得不想出一套规则,那就是父订单和子订单。当然还有很多其他原因。

    此次购物,整体称之为交易,生成了一个父订单号。如果它是购物车结算,那么有N个子订单。如果他是立即购买,那么只有1个子订单。

    从技术角度来定义,那就是trade称为父订单,order称为子订单,或者说trade是一笔交易单,子订单是每笔交易中的商品明细单,trade与order可以是一对多的关系,trade是由使用购物车生成。

    当一笔交易只有一个子订单,那么tid=oid,这个时候主要看trade结构体里面的内容,当一笔交易有多笔子订单(类似于购物车购买方式),那么tid=oid,这个时候主要看order结构体里面的内容。

    二、订单的逻辑拆分

    根据以上的规则,订单逻辑上面应该按照这样的方式来拆分。

    基于这样的设计方式,才可以去支持退款退货,以及设计活动、优惠券等营销功能。

    三、订单的金额拆分

    进而得到订单的金额是如何拆分的,其中营销得来的优惠拆分到每一个子订单,以及每一个sku的实际支付单价。

    四、订单状态机

    订单的状态是一个很复杂的事情,决定着用户,商家的每一个操作。

    不含退款退货

    如果你们的商城比较特殊,无需提供退款退货功能,那么订单状态机比较简单。

    包含退款退货

    那么比较复杂,相当于多了一层状态机。

    五、总结

    订单模块的架构设计,以上基本上把主要的内容讲了一遍。按照这样的方式去设计,至少可以兼顾大部分商城的订单需求。

    相关文章

      网友评论

        本文标题:业务梳理-电商-B2C订单设计方案

        本文链接:https://www.haomeiwen.com/subject/pwlgnktx.html