前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >猿设计22——真电商之订单的真实面目

猿设计22——真电商之订单的真实面目

作者头像
山旮旯的胖子
发布于 2020-08-11 08:56:59
发布于 2020-08-11 08:56:59
1.8K0
举报
文章被收录于专栏:猿人工厂猿人工厂

经过前面一段时间的学习,相信你对类目、属性、商品、促销、库存、购物车的业务和设计有了一定的了解。上一章节我们也讨论了结算系统的功能以及业务逻辑。

似乎离提交订单只有最后一步了,不过在结算页面我们并没有发现需要持久的信息。那么订单到底需要包含哪些信息呢?今天是订单的第二个章节,猿人工厂君打算和你聊一聊订单模型的那些事儿。

猛然一想订单需要包含哪些信息,有一点无从下手的感觉,我们可以回头看看结算页的设计,或许可以从中寻找一丝规律。

哈哈,又看到这个复杂的调用关系了。结算页为了展示结算使用的信息,发生了无比复杂的调用关系。结算页的一些信息可以为我们提供帮助。

用户地址、商品信息、商家信息、库存信息、促销优惠、优惠券优惠、运费,这些信息应该在订单中体现吗?在回答这个问题之前,我们可以先聊一聊订单是个什么?

订单是订购货物的合同、单据,电商网站的订单,是消费者和电商网站之间达成的销售合同。电商网站需要负责向消费者提供合同约定内的商品和服务,而消费者付出应该支付的酬劳。

那么订单是合同的体现,自然有买卖双方了,谁买的,谁卖的,什么时间以什么价格买了什么东西,这些被购买的东西包含了哪些优惠,这些东西的价格构成是什么样的,订单需要什么时候以什么方式送达到用户手中,订单是以什么方式来进行支付,订单需要开具什么样的发票信息,都要白字黑字写得清清楚楚。

我们从系统层面上分析,会发现有很多信息可能是经常变化的,比如商品信息,商品的价格。再比如促销相关的信息,一个商品可能现在搞活动,可能过一段时间就不搞活动了,再比如说商家想换一个招牌(名字),还能不让他换吗?

所以从某种层面上来讲,订单信息能会贯穿全站的核心信息,并且在下单的一瞬间,记录的是这些信息的一个快照。几乎就是一个绕口令了:

某人,某一时刻,享受了某些促销优惠之后,再使用了若干优惠券,采取了某个支付方式购买了某些商家的商品,并要求使用某些物流供应商的配送服务,将商品送达至某地的某人。

这个绕口令虽然有些复杂我们也可以一起来分析分析一个订单到底需要包含哪些信息,这些关联关系又是什么样的。由于订单的关系比较复杂,我们先分析订单维度的一些事情。

从订单的维度出发,订单的主要信息可以分为以下几类,订单主信息,订单价格信息,订单收货人信息,订单优惠券信息,订单促销信息,订单运费信息,订单发票信息,为了记录订单的一些系统级别和扩展信息,我们还专门抽象了一个订单扩展实体用于存储。

可能有朋友会觉得好奇,甚至产生疑问,为什么猿人工厂君的每个实体中,都有orderId,parentOrderId,userId,userName,sellerId,sellerName,这几个固定的字段,而且不嫌弃信息冗余吗?相信能看懂这几个字段的朋友,都是有一定电商实际经验的人士了,暂且卖个关子,一切为了后续扩展,构建系统的时候胃口还是要有的。

接下来讲以下订单这几个实体的关系,订单信息和订单价格,订单收货人信息,订单发票信息,订单扩展信息是一对一的关系。订单信息和订单优惠券信息,订单促销信息,订单运费信息是一对多的关系。

聊完了订单维度的几个实体,我们一起来聊聊订单中SKU的那些事情了。我们先用类图归纳总结一下。

有的同学一定会很好奇,为什么OrderSku实体有一个属性叫orderSkuUuid,在一个订单中,skuId不应该是唯一的吗?哈哈有经验的朋友一定不会问这样的问题,因为如果产生了优惠互斥,一条记录就没办法体现sku的信息了。所以需要单独定义一个属性来表示。

SKU的价格怎么来表示呢?订单上SKU的价格信息,实际上记录的是,某一个SKU买了多少个的价钱。而不是某一个SKU买了一个的价钱。为什么会有这样的问题?我们在讲价格计算的时候已经举过类似的例子了,我们改一下——一个sku买了3个,供货价总共12块,优惠2块,总金额10块。这个就表示不了每一个了。但是业务确实存在。

关于订单价格和SKU价格的属性,其实是一个可以扩展的属性,新增一种新的优惠,可能需要增加对应的优惠属性,也许有的小伙伴会问,既然是这样的话,为什么不设计为一对多的关系?

其实这是一种扁平化的设计,如果太多的一对多关系,会导致数据量的急速增加,而采用扁平化的方式来处理,也能很好的应对高速的业务发展。

以上就是订单实体的一些属性和关系,在接下来的一章中,我们会讲到订单下单中的一些小秘密。可能你会觉得简单了些,或者有不同的设计,欢迎你联系猿人工厂君噢,至于最后的实现,还有详细设计还有更多的门门道道噢,设计系列完成之后,就是实现了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 猿人工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
猿设计23——真电商之订单中的那些秘密
经过前面一段时间的学习,相信你对类目、属性、商品、促销、库存、购物车的业务和设计有了一定的了解。上一章节我们也讨论了订单的实体信息。
山旮旯的胖子
2020/08/17
5610
猿设计23——真电商之订单中的那些秘密
猿设计10——真电商之完整商品设计
经过前一章节的讨论我们已经将商品的主要信息抓取出来了。看上去还不错噢,似乎这些信息已经能够很充分的去描述一个商品了,这些信息真的就足够了吗?嘿嘿似乎还有一定的距离,设计就是这样一个过程,不断的去回看之前的一些东西,从而发现遗漏的东西,查漏补缺。今天,我们一起来经历下这个过程,进一步完善商品系统的设计。
山旮旯的胖子
2020/07/28
4640
猿设计10——真电商之完整商品设计
电商系列:订单中心业务梳理
订单中心是一个电商后台系统的枢纽,在这订单这一环节上需要读取多个模块的数据和信息进行加工处理,并流向下一环节;因此订单模块对一电商系统来说,重要性不言而喻。
架构之家
2022/07/12
1.9K0
电商系列:订单中心业务梳理
猿设计21——真电商之订单结算
经过前面一段时间的学习,相信你对类目、属性、商品、促销、库存、购物车的业务和设计有了一定的了解。上一章节我们也讨论了结算系统的功能以及业务逻辑。电商的系统最终的目的就是为了向用户售卖商品,当我们具备之前一系列的准备之后,最终于可以去触碰最重要的一个环节了——下单。
山旮旯的胖子
2020/08/11
1.3K0
猿设计21——真电商之订单结算
猿设计13——真电商之颠覆你对价格的理解
经过上一章的讨论相信你已经有些了解促销系统了。促销确实是电商网站的重中之重,需要慎重考虑。也许你会有一些疑问,猿人工厂君给出了促销规则,但是却没有告诉你限购怎么来玩耍。 这个问题我们稍微放一放,考虑到每个人的基础不一样,在后面的文章中会一定会体现出来的。今天,我们一起来聊一聊电商网站的价格是怎么一回事情。
山旮旯的胖子
2020/07/28
1.2K0
猿设计13——真电商之颠覆你对价格的理解
订单模块数据库表解析(一)
本文主要对订单及订单设置功能的表进行解析,采用数据库表与功能对照的形式。 订单 相关表结构 订单表 订单表,需要注意的是订单状态:0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单。 create table oms_order ( id bigint not null auto_increment comment '订单id', member_id bigint not null comment '会员
macrozheng
2019/07/22
2.2K0
订单模块数据库表解析(一)
猿设计14——真电商之运费模板
经过上一章的讨论相信你已经有些了解价格和促销的关系了。价格对于一个电商网站确实需要独立设计,否则散落于系统的各个地方,将会强耦合你的系统,维护起来的成本不可估量,甚至是难以维护。也许你会有一些疑问,为什么运费没有被提及,运费也是价格的一类啊。因为运费相对独立,而且同样是一个比较复杂的模块,需要单独设计。今天猿人工厂君,就和你聊聊运费的那些事。
山旮旯的胖子
2020/07/28
7730
猿设计14——真电商之运费模板
捋一捋luban-mall电商项目商品中心与订单中心业务功能
本文对 luban-mall 电商项目中的商品中心和订单中心业务进行了一番梳理,主要梳理了业务功能对应的表结构和对应的页面操作入口,熟悉这两个模块的业务开发流程。希望对正在学习luban-mall项目的小伙伴能有所帮助。下一篇文章笔者将继续发文介绍电商项目中的支付流程业务,敬请期待!
用户3587585
2022/09/21
6400
捋一捋luban-mall电商项目商品中心与订单中心业务功能
一文搞懂“交易核心”:交易、订单、账单、支付
交易系统是交易过程中推动整个交易流程进行的信息化系统。交易流程始于用户挑选商品,终于用户完成订单并满意离开。这一流程涵盖了商品导购、下单签约、营销计价以及履约等多个环节。
Louis XIV
2025/02/19
9081
一文搞懂“交易核心”:交易、订单、账单、支付
6个部分,详解电商订单管理流程
电商所有模块中,订单模块是核心中的核心,电商所有模块都是直接或者间接为订单模块服务的。
物流IT圈
2020/04/26
5.8K0
猿设计24——真电商之接单是怎么一回事情
经过前面一段时间的学习,相信你对类目、属性、商品、促销、库存、购物车的业务和设计有了一定的了解。上一章节我们还讨论了一些订单设计的秘密。
山旮旯的胖子
2020/08/17
6500
猿设计24——真电商之接单是怎么一回事情
订单下单
某天准备出远门时,想到没有充电宝,就打开京东或天猫超市,选择一个心仪的充电宝,“哎哟,居然还有一个10元的优惠券”,下单付款,下午快递员敲门,充电宝就到家了。
普通程序员
2019/10/23
3.7K0
订单下单
猿设计3——电商设计之挖掘实体的办法
看过上一章节相信你从感官上对电商的前台和后台系统有了一个感性的认知,也学些了UML用例图的基本画法。开始试图使用用例图去分析归纳系统的功能点。也许你会觉得这些东西有一点简单可笑,设计的事情你觉得不屑于去做,但这些东西确实能够帮助你清晰的认识系统,去挖掘系统的功能,最后落地到系统设计。
山旮旯的胖子
2020/07/28
4470
猿设计3——电商设计之挖掘实体的办法
写给供应链产品经理:浅谈订单系统的设计
订单管理是一个常见的管理问题,包含在企业的订单处理流程中。由于客户/用户下订单的方式多种多样、订单执行路径千变万化、产品和服务不断变化、发票开具难以协调,这些情况使得订单管理变得十分复杂。
物流IT圈
2019/08/09
4.5K0
平台型电商优惠券设计方案,看这篇就够
本文转载自鸟哥笔记 在介绍具体方案前,我想先强势安利一波优惠券。 优惠券之于电商,可以说是促销手段中至关重要的一环。相比于直接降价,利用优惠券来吸引顾客,其结果明显会更加有效。 本文3600字。 单纯
iCDO互联网数据官
2018/03/05
6.7K0
平台型电商优惠券设计方案,看这篇就够
电商数据分析-02-电商业务介绍及表结构
电商业务简介 大数据项目之电商数仓、电商业务简介、电商业务流程、电商常识、业务数据介绍、电商业务表、后台管理系统
IT从业者张某某
2023/12/27
5980
电商数据分析-02-电商业务介绍及表结构
谷粒商城:订单中心概念解析
电商系统涉及到 3 流,分别时信息流,资金流,物流,而订单系统作为中枢将三者有机的集 合起来。 订单模块是电商系统的枢纽,在订单这个环节上需求获取多个模块的数据和信息,同时对这 些信息进行加工处理后流向下个环节,这一系列就构成了订单的信息流通。
一个风轻云淡
2023/10/15
6390
谷粒商城:订单中心概念解析
京东后台:订单履约系统设计(上)
订单是一次交易的生命周期,交易开始生成订单,结束的时候完成订单。在天猫或者京东上买东西,最终都会生成一张订单。
架构之家
2022/07/12
3.3K0
京东后台:订单履约系统设计(上)
猿设计16——真电商之你不了解的库存
经过上一章的讨论相信你已经了解了运费的一些事情。已经很期待可以讲这些设计转化为实现,开始自己的电商网站的落地实现。诚然,你已经了解类目、属性、商品、促销、运费,看起来是可以做一些美好的实现了。但是如果要做到售卖,还遗漏了一个很重要的环节——库存。相信大家已经看过太多的什么超卖啦,什么的文章,但是库存到底是怎么一回事儿,可能并不是很明白。今天猿人工厂君,就和你库存的那些事儿。
山旮旯的胖子
2020/07/28
1K0
猿设计16——真电商之你不了解的库存
一篇文章搞清电商订单结算页面设计?
我们依据上面整理的内容,再通过以往的经验把订单结算页面进行模块化拆分和组合,得到如下订单结算页面的模块化构成:
用户1093396
2020/10/29
1.7K0
一篇文章搞清电商订单结算页面设计?
相关推荐
猿设计23——真电商之订单中的那些秘密
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档