B2C自营商城的订单设计方案

浪子
16 评论 45994 浏览 333 收藏 6 分钟
🔗 产品经理的不可取代的价值是能够准确发现和满足用户需求,把需求转化为产品,并协调资源推动产品落地,创造商业价值。

去年我们的美妆社区APP,上线了自有商城。之后经过多次版本迭代,商城系统的模块已经基本健全,值此时间分享一些经验出来,希望可以共同交流。

有了商品之后才有可能产生交易。所以先讲了《B2C自营商城的商品设计方案》,这篇讲解我们的订单模块怎么设计。

一、订单是什么

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

主流的下单方式

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

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

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

订单的类型

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

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

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

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

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

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

二、订单的逻辑拆分

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

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

三、订单的金额拆分

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

四、订单状态机

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

不含退款退货

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

包含退款退货

那么比较复杂,相当于多了一层状态机。具体可以查看我的另外一篇文章《如何绘画状态机来描述业务变化》。

五、总结

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

以上内容可以点击我的订单模块原型来详细查看。

至于订单模块和商品模块,和营销模块的耦合,后续的文章会再讲讲。

相关阅读

B2C自营商城的商品设计方案

B2C自营商城的优惠券设计方案(上篇)

#专栏作家#

浪子,人人都是产品经理专栏作家,业务型PM,浪子PRD系列51prd.com,公众号langzisay。

本文由 @浪子 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 当一笔交易只有一个子订单,那么tid=oid,这个时候主要看trade结构体里面的内容,当一笔交易有多笔子订单(类似于购物车购买方式),那么tid=oid,这个时候主要看order结构体里面的内容。

    这句里怎么有2个tid=oid?

    来自上海 回复
  2. 原型还要收费

    来自山东 回复
  3. 如果能结合实例就好了,订单是根据什么进行拆分,店铺,折扣,优惠券

    回复
  4. 钱款全退为什么sku会有未全退的情况,一个订单SKU退完了,钱才全退的吧

    来自四川 回复
    1. 一个订单的所有SKU都申请过退款并退了钱,不代表所有的钱都退了。
      你可以去淘宝或者有赞等去下一个多sku订单试试。

      来自江苏 回复
    2. 一个父订单下面的子订单全部申请退款,不应该是退所有实际支付的钱吗(包邮的情况下)?非包邮要扣运费?希望大佬点拨下

      来自浙江 回复
  5. 你的文章我都读了,迷妹迷妹 🙂

    来自江苏 回复
    1. 好难得,tks 😳

      来自上海 回复
  6. 还是没有明白父订单和子订单的意思 求赐教啊

    回复
    1. 一个订单里面如果包含多个物品,这些物品可以根据某些规则分成一些子订单,这样便于后期对这些分出来的子订单进行特殊的操作:评论啊/退换货/啊。。。。我理解的

      来自四川 回复
    2. 去淘宝用购物车下单,使用优惠券。
      然后退款其中的个别商品。
      跑几次,就能理解父订单和子订单的运用场景了。

      来自上海 回复
    3. 子订单号一般是背后的逻辑吧?对客展示一般只展示一个父订单号吧?

      来自江苏 回复
    4. 嗯,通常是这样。但是不展示子订单号,不代表不展示子订单信息和子订单功能。

      来自江苏 回复
    5. 感谢,我也是这么理解,正准备提问的

      来自浙江 回复
  7. 很有帮助,感谢浪子,一系列电商产品的经验分享干货十足啊,作为电商产品新人受益颇多

    来自湖北 回复
    1. 哈哈,有用就行。谢谢支持哈

      回复
专题
19131人已学习13篇文章
在B端产品设计中,数据的筛选是其中必不可少的一个步骤。本专题的文章提供了B端数据筛选查询的设计思路。
专题
14146人已学习12篇文章
“产品架构能力”是B2B产品经理中泛指设计产品系统架构的能力,这是产品经理非常重要的一个能力。本专题的文章分享了产品架构的设计指南。
专题
12783人已学习12篇文章
发觉用户本能的最好方式就是从用户的心理出发,利用人的本能做产品设计,用最“自然”的方式影响用户的行为。本专题的文章分享了产品心理学。
专题
14247人已学习13篇文章
数据仓库是所有产品的数据中心,公司体系下的所有产品产生的所有数据最终都流向数据仓库。本专题的文章分享了什么是数据仓库和如何搭建数据仓库。