一. SKU 和 SPU
一个电商系统,SPU、SKU等设计的好坏,影响到后面的开发进度,以及架构的调整等。而 SPU、SKU又是一个电商系统的核心,我们一起参考淘宝设计来讲清楚什么是 SPU、SKU。
SPU,是 standard product unit,标准化产品单元,是商品信息聚合的最小单位,属性值、特性相同的商品就可以成为一个SPU。在淘宝中你可能看不到 spu 这个概念,淘宝商品都拥有商品 ID(item design),其实就是 spu。不像京东,直接来个 spuId = xxx 这样的直观。
SKU,全称 stock keeping unit,库存量单位。SKU 是用来定价和管理库存的。例如:7 Plus 有很多颜色,很多配置,每个颜色和配置的组合都会形成新的产品,这时就产生很多 SKU,SKU 在传统线下行业也是一个非常常用的概念,尤其是服装行业,同款不同尺码不同色都是独立的 SKU,需要有独立的条形码,独立的库存管理等。
下面我们一起来看看淘宝中的 SPU 和 SKU,加深大家的认识。
当我们在浏览器里访问:https://detail.tmall.com/item.htm?id=525248995106&skuId=4225910992958 和 https://detail.tmall.com/item.htm?id=525248995106&skuId=4225910992962 时,会看到两款不同的商品,这就是 SPU。每款商品中有不同的颜色,规格,尺寸等代表的就是 SKU。
以 https://detail.tmall.com/item.htm?id=525248995106&skuId=4225910992961 为例,当我们选择不同的颜色后,浏览器地址栏中的 skuId 就会跟着变化。选择不同的颜色,价格和库存都会跟着变化,这就是 SKU 决定了一个商品的价格和库存。
上面的 id 就对应着一个 SPU,一个 SPU 可以有多个 SKU。SPU 用来区分品种,一般商家用来统计某个品种的销量。比如,A 商家统计 iphone 8 销量,就是 SPU 的维度来统计的。也可以从 SKU 的方向来统计,比如:A 商家统计 iphone 8 中黑色64G的销量。
京东和淘宝还是有区别的,京东的商品详情页链接是直接挂着skuid的,url例如:
https://item.jd.com/100008348542.html
在url的后半部分就挂着一个skuid,我们可以直接根据这个skuid 100008348542 在首页进行搜索,搜索的结果会直接跳到该商品详情页,这一点是和淘宝天猫的区别。
如果还是不理解,大家都去过超市买东西,到收银台的时候,收银员手里有一个扫码枪,她会一个一个的扫你购买的商品上条形码。这个条形码就对应一个 SKU,一个 SKU 对应一个条形码,因为每一个条形码对应一个价格和库存。
二. 表结构设计以及models
1. 表结构设计
2. models编写
根据之前设计好的表结构来写models.py文件
from django.db import models
class Catalog(models.Model):
"""
商品类别
"""
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
name = models.CharField(max_length=10, verbose_name='类别名称')
class Meta:
db_table = 'DDSC_GOODS_CATALOG'
verbose_name = '商品类别'
verbose_name_plural = verbose_name
def __str__(self):
return self.name
class Brand(models.Model):
"""
品牌
"""
create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
update_time = models.DateTimeField(auto_now=True, verbose_name="更新时间")
name = models.CharField(max_length=20, verbose_name='商品名称')
logo = models.ImageField(verbose_name='Logo图片')
first_letter = models