电商系统中的商品模型的分析与设计

前言html

    在电商系统中,商品模型相当重要,是整个电商的核心,下面经过一个简单的分析,设计一个基础的商品模型。java



商品模型的演化程序员

    在之前,那时CMS很流行,最多见的模型是栏目-文章模型。因而作电商的时候,天然就继承了这种一对多的关系。只是栏目变成了分类,文章变成了商品。商品也具有了独特的业务属性。如今不少电商网站上左侧的菜单,也就是这个分类。网络

image

后来咱们慢慢发现一个问题,只有分类并不能适应全部的需求,好比nike鞋和nikeT恤,用户可能但愿先看nike的全部商品,这个模型就不能知足。咱们想在这个关系中,加入“品牌”概念。因而:iphone

image

    这样基本用户能够在首页上经过分类或者品牌找到本身想要的商品,也能够直接查看热门的商品和新上架的商品。可是问题也来了,用户在进入分类后,展现在用户面前的是不少不少商品,用户但愿再经过筛选查询出更接近他目标的商品。因而优秀的产品设计师,设计出了相似这样的UI:post

image

    用户能够经过这些筛选条件进一步缩小本身的目标范围,那么问题又来了,这样的产品需求排在程序员面前,怎么去实现它?通过分析,咱们找出了一个方法,咱们知道商品之间的属性可能存在着较大的差异,好比牛仔裤它有版型、腰型、裤长等属性;而电脑它有CPU、显卡等属性,各种商品的属性是不一样的。再进一步想,休闲裤也版型、腰型、裤长等属性;台式电脑或者笔记本电脑都有CPU、显卡等属性。因此咱们得出:一个分类对应若干属性,而一个属性,对应若干属性选项,而一个具体商品又对应若干属性选项(例如具体一条牛仔裤,他的裤长:7分,裤型:直筒)。有点绕,仔细品味一下。性能

image

    从图上能够看出,分类和属性的关系(例如:“牛仔裤”分类下有裤型、裤长、版型等属性)、属性和属性选项的关系(例如:裤长属性有长款、九分裤、七分裤的选项)、商品和属性选项的关系(例如某条牛仔裤的裤长是7分裤)。至此,咱们知道一个商品的分类、品牌以及它有什么属性和对应的属性值。那么经过筛选条件,天然就能够查询出指定的商品。这里特别说一句,价格也是属性,不要设想用商品表中的价格字段去作计算。这不利于查询也增长了复杂度,让商家编辑人员用属性来设置并保证他的正确性。网站

有了这个模型,咱们大概就能够看到如下界面(请不要太关注左边,重点在右边和下面):搜索引擎

QQ图片20141029172940

image

    这个页面展现商品的全部信息,按照以前的设计好像均可以知足。可是咱们彷佛感受错过了什么,在图上右边咱们发现该商品当前的颜色和尺寸,而且容许用户能够选择其余的颜色和尺寸。这给咱们带来了疑惑,这里的“颜色”和“尺寸”是什么,一件商品的不一样颜色不一样尺寸是算一个商品仍是多个商品。通过思考后,咱们发现咱们混淆了两个概念——“商品”和“货品”。不一样规格的货品做为独立的商品。好比一条裤子的有L尺寸、M尺寸、一个U盘有16G仍是32G的,都是一样的货品,不一样规格的商品。能够认为货品商品是一对多的关系。弄清了这个概念,处理这个需求就容易多了,这里的“颜色”、“尺寸”咱们就做为“规格”来处理,而红色、黑色;L号、M号咱们视为规格的选项或者说规格值。一件货品对应若干规格,而具备某一规格值的货品就是商品。编码

    好了,如今好像差很少了。基于这个模型能够知足基本的商品搜索、展现的需求。搜索引擎也能够根据这个模型数据生成对应的商品索引,达到准确搜索的目的。商品模块还会和其余模块一块儿协做,好比用户系统、订单系统、支付系统等。通常状况下咱们会把商品业务独立出来作成“商品中心”的服务,集中处理商品查询、更新、发布等业务,支撑其余业务。



电商系统中的商品模型的分析与设计—续

2015-06-09 23:25 by 飘扬的红领巾, 4726 阅读, 35 评论, 收藏编辑

前言

    在《电商系统中的商品模型的分析与设计》中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问。我也对此作一些研究,再次简单的对商品模型作一个介绍。

从SPU、SKU开始

    首先咱们须要澄清上篇中的这两个概念,在上篇文章中“货品”是指一种概念物品,这种物品并非一个具体的实物,当它具有具体的属性、价格时,才是一种实物,也就是商品。“商品”就是库存中一个具体的实物。例如:iphone6,就是一种货品,但用户购买的并非货品而是商品,也就是用户最终购买的多是:金色-16G-移动版 iphone6。换句话来讲,货品是一种产品的称谓(如iphone6),商品是用户购买的具体实物,具有特定的属性(如:金色-16G-移动版)。若是以为这样理解仍是比较混,那么忘记这两个概念,下面讲标准化的名称。

    咱们刚才说的iphone6,书面称谓叫“SPU” Standard Product Unit (标准化产品单元),它是最接近用户认知的产品单元,好比用户说,我想买个iphone四、iphone六、小米4,这些都是SPU,也就是用户广泛认知范围内的一种产品。然而在电商系统中只有SPU并无什么卵用,用户购买时确定要肯定,须要什么颜色、多少G的,支持什么网络。因此,例如金色-16G-移动版 iphone6,就须要一个名称去规范它,这个名称叫“SKU” Stock Keeping Unit(库存单元),换句话理解就是库存里面存的东西,库存里存在东西确定是具体的某种规格的iphone6。基于这个理解,咱们先画下图:

image

    SPU,SKU两个表,有各自的编码,这方便库存统计以及后台系统的管理,另外价格字段是在SKU中,这应该好理解,不一样规格的iphone6确定价格不同,另外SPU与分类和品牌关联,如iphone6属于“手机”分类,“苹果”品牌。固然一个SPU也可能属于多个分类,能够作成多对多的关系。有了这个基础,咱们再来看电商商品详情页是怎么设计的:

image

    咱们看到这个页面实际上是一个SKU的详情页,由于它指定了价格、颜色、版本、容量等信息,不一样的颜色、版本、容量实际上是不一样的价格,不一样的SKU。咱们若是要实现这个设计,咱们须要加两个概念,就是“属性”和“属性选项”。“属性”正如这里的颜色、版本、容量。而“属性选项”则是金色、银色、移动4G版、16gb、64gb等。能够看出“属性”和“属性选项”是一对多的关系,而“属性选项”和SKU则是多对多关系,一个金色-16G-移动版 iphone6,具有“金色”、“16G”,“移动版”多个选项,而一个“金色”选项除了对应iphone6还能够对于iphone4。咱们继续画图:

image

    须要注意的是,属性是对于一个分类的,这样设计的目的主要是为了属性能归类管理,也方便在添加产品时,经过分类对属性进行筛选。例如,“手机”分类有颜色、版本、容量等属性,而“衬衫”分类有“颜色”、“尺寸”。这里有博友可能有疑问,若是属性和分类是一对多的关系,那么属性表将会出现一些冗余,好比“手机”、“衬衫”都有颜色属性,可是在属性表中就会两条颜色的记录甚至更多。这里其实能够设计为多对多的关系。一对多的关系,能够在商品规模小、数据量不太大的电商上适应,这样的好处是,可让产品发布者更好的管理属性选项和发布产品,由于即使是两个颜色的属性,但他们的属性选项确能够不一样,对于“手机”来讲,可能只有黑、白、金、银等颜色,但对于“衬衫”分类来讲选项就能够有“红橙黄绿青蓝紫”甚至有“花格”。因此能够考虑牺牲冗余来提升商家发布者的体验。接下来咱们来看另一个特性——“规格”:

image

“规格”表明这一个SKU具体的各项参数,是一个详细的产品规格说明,用户能够经过这些参数与其余同类手机作对比。这些参数中,部分参数将参与列表页的筛选条件中

image

    咱们能够注意到两幅图,有些规格并不能对应上。这是由于咱们在规格表中能够设置哪些规格显示在详细页中,哪些规格显示在列表筛选条件中。最终的商品模型就是这样:

image

    好了,这个电商商品模型的雏形就有了,但一个成熟的大型电商系统模型要比这个复杂的多,光是一个价格都会有一个单独的模块进行管理,好比市场价、进货价、成本价等,要进行成本核算,要与营销活动结合,双11折扣,或者与其余商品打包购买价格更便宜等。总之,须要根据业务的须要进行一步一步的扩展和设计。之后有机会介绍下电商中订单模型。

相关文章
相关标签/搜索