在电商系统里经常会提到“商品”、“单品”、“SPU”、“SKU”这几个词,那么这几个词到底是什么意思呢?
既然不知道是什么,那么我们就查一下:SPU = Standard Product Unit (标准化产品单元),SKU=stock keeping unit(库存量单位)。
然后搞清楚商品与单品的区别。例如,iphone是一个单品,但是在淘宝上当很多商家同时出售这个产品的时候,iphone就是一个商品了。
商品:淘宝叫item,京东叫product

理解一下:
SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。例如,iphone4就是一个SPU,N97也是一个SPU,这个与商家无关,与颜色、款式、套餐也无关。
 
SKU即库存进出计量的单位,也可以理解为“最小化库存单位”, 可以是以件、盒、托盘等为单位。在服装、鞋类商品中使用最多最普遍。 例如纺织品中一个SKU通常表示:规格、颜色、款式。
在使用时要根据不同业态,不同管 理模式来处理。比如一香烟是50条,一条里有十盒,一盒中有20支,这些单位就要根据不同的需要来设定SKU。
 
一个SPU可以对应多个SKU!!
 
下面摘录一些在知乎上的玩家简述的他们的理解:
 
作者:Tony Liu
链接:https://www.zhihu.com/question/19841574/answer/74171565
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

spu 和 sku 都是属性值的集合, 举个栗子 >>

一部 6S, 它身上有很多的属性和值. 比如 :

  • 毛重: 420.00 g
  • 产地: 中国大陆
  • 容量: 16G, 64G, 128G
  • 颜色: 银, 白, 玫瑰金

你跑进苏宁顺电, 说想要一台 6S, 店员也会再继续问: 你想要什么 6S? 16G 银色? 64G 白色?

每一台 6S 的毛重都是 420.00 g, 产地也都是 中国大陆. 这两个属性就属于 spu 属性.
而容量和颜色, 这种会影响价格和库存的(比如 16G 与 64G 的价格不同, 16G 银色还有货, 金色卖完了)属性就是 sku 属性.

spu 属性(不会影响到库存和价格的属性, 又叫关键属性) >>

  • 毛重: 420.00 g
  • 产地: 中国大陆

sku 属性(会影响到库存和价格的属性, 又叫销售属性) >>

  • 容量: 16G, 64G, 128G
  • 颜色: 银, 白, 玫瑰金

sku 在生成时, 会根据 属性生成 相应的 笛卡尔积.
想像一下扑克牌的黑红梅方和 A-K, 扑克牌是这样的 sku 属性:

  • 牌面: A - K
  • 花色: 黑红梅方

最终会生成 13 * 4 = 52 张牌, 上面的 6S 则会生成 3 * 3 = 9 个 SKU

商品 : iphone 6s
spu : 包含在每一部 6s 的属性集合, 与商品是一对一的关系(产地:中国, 毛重:420g...)
sku : 影响价格和库存的 属性集合, 与商品是多对一的关系
单品 : 同 sku. 国人的另一种叫法!

 
作者:姜沈励
链接:https://www.zhihu.com/question/19841574/answer/34013014
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

我从电商实际运营的角度说下:

SKU:Stock Keeping Unit
从名字上可以看出,SKU以从库存视角看的(一箱可乐和一打可乐由于库存包装不同,因此是不同SKU)。因此很多自营B2C电商在早期的每一个商品详情页对应一个独立的SKU编码。

SPU:Standard Product Unit
从名字可以看出,SPU的提出主要是为了体现商品标准化。
这个名词随着电商平台的发展收到更多关注。因为在一个电商平台下,大家发现同一个基本产品(例如iphone 6 白色 16g 裸机)经常由多个卖家在销售,因此在前台页面展示上比较冗余,消费者在浏览时存在不便,也因此大家开始采用一个新的展示方案:先显示基本产品,点击后再展示这个产品下所售商家的商品。(大家可以在淘宝搜索下‘手机’,展示的不再是item,而是基本产品,也就是我们所说的SPU。但是顺便说下,淘宝的SPU做得不是很完善,如果大家需要深度学习和借鉴,可以研究下美国亚马逊)

商品:
如果某个商家出售某个SPU,那么这个东西叫做商品。商品相对产品,数据层面增加了价格、促销活动、运费等信息。目前主流的B2C网站,一个商品详情页对应了一个商品。刚刚提到,早期自营B2C系统由于对应的是SKU,因此需要升级改造。往往这个项目叫做‘一品多商’。大部分电商都经历过这个痛苦的改造过程,很多至今伤痕累累。

ITEM:
淘宝作为平台,不关注库存。ITEM直接代指宝贝。但一个ITEM可能包括 “黑色iphone6”、“白色iphone6”等多个商品。ITEM虽然前台展示灵活,但是数据底层有些紊乱。

BTW:
对于服装,同一个产品可能有不同颜色和不同尺码。
那么SPU到底是对应到服装款式,还是服装款式+颜色,还是服装款式+颜色+尺码这个最细粒度?
这个没有最终答案,YHD、JD、Vancl的做法也都有差异,也各有利弊。
但是按照个人经验,由细到粗易,有粗到细难。
底层如果做细,展示层才能灵活。反之有时候无解。

 
 

SPU、SKU、ARPU是什么,我来记录一下我的理解的更多相关文章

  1. SPU - SKU - ARPU

    商品和单品: 单品:汉语中的“个”  例如,iphone是一个单品,但是在淘宝上当很多商家同时出售这个产品的时候,iphone就是一个商品了 商品:淘宝叫item,京东叫product,商品特指与商家 ...

  2. SpringBoot电商项目实战 — 商品的SPU/SKU实现

    最近事情有点多,所以系列文章已停止好多天了.今天我们继续Springboot电商项目实战系列文章.到目前为止,整个项目的架构和基础服务已经全部实现,分布式锁也已经讲过了.那么,现在应该到数据库设计及代 ...

  3. 【知识点】SPU&SKU

    SPU:标准化产品单元 SPU = Standard Product Unit (标准化产品单元),SPU是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性. ...

  4. Spring学习记录(十二)---AOP理解和基于注解配置

    Spring核心之二:AOP(Aspect Oriented Programming) --- 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软 ...

  5. Bootstrap 我的学习记录3 导航条理解

    以下理论内容copy自Bootstrap中文网 (一个不错的bootstrap学习网站) 导航条 默认样式的导航条 导航条是在您的应用或网站中作为导航页头的响应式基础组件.它们在移动设备上可以折叠(并 ...

  6. Mybatis学习记录(三)----理解SqlMapConfig.xml文件

    SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases( ...

  7. TensorFlow使用记录 (二): 理解tf.nn.conv2d方法

    方法定义 tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=True, data_format="NHWC&quo ...

  8. 记录MNIST实现与理解

    之前半个月的时间几乎都在看理论书籍,最近两天开始撸代码,一个跟Hello World同级别的教程例子就出来了,那就是MNIST.实现代码应该很多地方都有: #!/usr/bin/env python ...

  9. 商品的spu、sku及其之间的关系

    今日来总结一下,电商系统中涉及到商品时必然会遇到的几个概念,SPU.SKU.单品等.彻底搞懂和明白了这几个概念对我们设计商品表是十分必要的前提条件. SPU:标准化产品单元 SPU = Standar ...

随机推荐

  1. UIRecorder环境搭建及录制实现

    前天看TesterHome提到UI录制做UI自动化,很感兴趣,前来学习学习. 参考:https://github.com/alibaba/uirecorder/blob/master/doc/zh-c ...

  2. Swift代理和传值

    第一个视图控制器: import UIKit // 遵循协议 class ViewController: UIViewController,SecondVCDelegate { override fu ...

  3. 多个结果显示成一个group_concat函数

    需求:获取班级.课程中文名.老师 扩展:一个班级一门课程,老师可能多个,想把多个教师显示成在一个结果里 解决方案:加个group by 参考资料:https://www.cnblogs.com/zhu ...

  4. vim中凝视多行python代码

    在vim中凝视多行python代码比較麻烦,主要由下面几种方法: (1)将须要凝视的代码以文档字符串的形式呈现 (2)将须要凝视的代码以函数的形式呈现 (3)使用vim自身快捷键 我们主要使用第三种方 ...

  5. heap堆&&priority_queue优先队列

    堆(heap)不是stl中的东西...它分为 max heap 和min heap. 但我不想用这些,而是采用了priority_queue,优先队列,定义在queue中.顾名思义,它的作用就是无论怎 ...

  6. 原生JS---3

    原生js学习笔记3——数组 定义数组 两种方式定义一个数组: 1. var array1 = new array(1, 2, 3, 4); 2. var array2 = [1, 2, 3, 4]; ...

  7. Java 自定义线程池

    Java 自定义线程池 https://www.cnblogs.com/yaoxiaowen/p/6576898.html public ThreadPoolExecutor(int corePool ...

  8. [转]深入javascript——构造函数和原型对象

    对象,是javascript中非常重要的一个梗,是否能透彻的理解它直接关系到你对整个javascript体系的基础理解,说白了,javascript就是一群对象在搅..(哔!). 常用的几种对象创建模 ...

  9. css的外边距合并或者外边距塌陷问题

    第一种情况: 已知两个宽和高均为100px,margin均为20px的div垂直排列,现象如下图所示: 当设置css1的margin-bottom:40px:或者css2的margin-top:40p ...

  10. Java基础13一异常

    1.异常概念 异常是程序在运行期发生的不正常的事件,它会打断指令的正常执行流程. 设计良好的程序应该在异常发生时提供处理这些不正常事件的方法,使程序不会因为异常的发生而阻断或产生不可预见的结果. Ja ...