浅谈SKU和SPU的区别与联系

浅谈SKU和SPU的区别与联系SKU 和 SPU 是所有涉及电商领域人士都需要面对的两个概念 是设计一个好的电商系统的必要前提 商系统实现了什么功能 大数情况下都是和商品模块相关联的 因此商品模块本身的实现要足够抽象 灵活 易于扩展 这样才能满足各种业务需求 而这一切的基础都建立在 SPU 和 SKU 的设计 所以说这两个概念 是设计好电商系统的关键 那 SKU 和 SPU 又分别是什么东西呢 SPUSPU StandardProd

SKU和SPU是所有涉及电商领域人士都需要面对的两个概念,是设计一个好的电商系统的必要前提。商系统实现了什么功能,大数情况下都是和商品模块相关联的。因此商品模块本身的实现要足够抽象、灵活、易于扩展,这样才能满足各种业务需求。而这一切的基础都建立在SPU和SKU的设计,所以说这两个概念,是设计好电商系统的关键。那SKU和SPU又分别是什么东西呢?

SPU

SPU (Standard Product Unit)即标准化产品单位,是商品信息聚合的最小单位,是一组可复用易检索标准化信息集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。

SKU

SKU(stock keeping unit)即库存量单位,是物理上不可分割的最小存货单元。正因为它在物理上是不可分割的最小存货单元,所以也就可以通过SKU来确定具体的货物存量。

SPU和SKU的关联

下面我们通过一个具体的电商流程来搞懂SPU和SKU。

常规的业务流程是这样的:用户通过一个标有商品简略信息的入口点进一个商品页面,这时会有几个不同的配置、颜色、尺寸供选择,用户选择时需要判断这个商品是否有库存。

这一系列操作中一个商品的页面会是一个SPU,最后检查的库存就是SKU

但是为什么业务的流程是这样的呢?我们通过下图的来进行分析。

SKU和SPU

通过上图某东关于小米10手机的商品页面我们不难在图中发现红框是SPU信息,蓝框是SKU信息。但是为什么是这样的呢?回顾一下这二者的概念:

SPU:标准化产品单位 SKU:库存量单位

那么上图红框中的信息就是标准化产品单位,我们可以这样理解标准化产品单位,无论选择购买什么样配置、颜色的小米10手机,首先它一定是一部小米10手机。而不同配置、颜色之间的小米10手机一定具有一些相同的属性,这些属性可以称之为公共属性,那么由这些公共属性组合而成的集合,就可以称为该产品的SPU。此时小米10就是这个SPU的名称。通过在某东查看“规格与包装”来获得具体的SPU信息。如下图所示:

SPU

当然,这只是部分信息的截取,在这个标签页内展示的内容就是小米10手机的具体SPU信息,如果这其中有某个属性不一致的话我们可以认定该产品不是小米10手机。现在对SPU这个概念是不是有了较清晰的认识了。正是因为有了这个SPU我们在说起小米10手机的时候,我们就能知道这是一部怎样的手机了,但是这部小米10手机的具体颜色,容量等信息对方是不清楚的。这是因为SPU只定义了一个产品,但不是商品。一个SPU可以拥有多个SKU(不同规格组合),SKU和SPU是一种多对一的关系,SKU才是定义了产品下的具体商品。回到最开始的图我们来细说。

SPU和SKU

我们通过点击选择红框中的不同规格,可以组合出不同的小米10商品(SKU),同时价格、库存量会有相应的变化。因为SPU+SKU才会得到一个具体的商品。这就跟你去手机店跟柜员说我要买手机或者我要买小米10手机,多少钱,人家柜员需要反问你啥手机、什么型号、多大内存、啥颜色不然没法给你报价一个道理。那SKU为什么称之为“库存量单位”?因为在采购商品的时候,不可能只写小米10手机,相反采购单是根据颜色、容量、规格等SKU组合来区分采购的。入库也是根据不同的SKU组合来入库的,所以SKU称之为库存量单位。就好比小米10上市的时候,12GB+256GB的容量是缺货状态的,但其他容量是正常供应的。一个SPU拥有的规格越多,可以组合出来的SKU商品就越多,就拿小米10中颜色和版本这两个规格来举例,每部小米10最多可以有3*3=9种SKU组合,就代表小米10这个产品下有9种商品,而每种SKU组合又可以分别定价。

总结

  1. SPU和SKU都是属性的集合,SPU是公共属性的集合,SKU是独有属性的集合。
  2. SPU定义了产品,但不是商品,产品描述了商品的公共属性,不影响库存和价格。
  3. SKU定义了商品,是在SPU的基础上描述了其独有的属性,一个SPU可以拥有多个SKU,影响库存和价格。
  4. SKU是库存量的最小存货单位,也是用户能够选择的最小单位是实际购买的商品。每一个sku可以有独立的价格,当库存减少时减少的实际是sku的库。
  5. 也可以这样认为只有确定了一个SPU才能获得关于这个SPU的所有SKU信息,而不能通过一组不同的SKU来确定SPU信息。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177156.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午8:10
下一篇 2026年3月26日 下午8:11


相关推荐

  • c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」

    c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」VISUALc+中的pdb文件及其作用程序数据库(PDB)文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。当以/ZI或/Zi(用于C/C++)生成时,将创建一个PDB文件。在VisualC++中,/Fd选项用于命名由编译器创建的PDB文件。当使用向导在VisualStudio中创建项目时,/Fd选项被设置为创建一个名为projec…

    2022年6月2日
    33
  • java版我的世界_我的世界Java版1.16[通俗易懂]

    java版我的世界_我的世界Java版1.16[通俗易懂]我的世界Java版1.16是我的世界的特殊版本,这个版本的我的世界深受玩家们的喜欢,小编为各位玩家带来了最新的我的世界Java版1.16手机版本,不仅游戏内容在一定程度上丰富十足,画面打造也非常的精美,玩过的小伙伴都赞不绝口,喜欢的玩家就来下载吧!我的世界Java版1.16游戏说明JAVA版JAVA版应该算是玩家接触到的最广的版本,也是游戏内容最丰富的版本。事实上,JAVA版本就是PC版,是我的世…

    2022年7月7日
    63
  • 指令重排详解_cpu指令重排序

    指令重排详解_cpu指令重排序指令重排:编译器指令重排,cpu指令重排,内存指令重排。编译器可能会调整顺序,如下图,左边是c++源码,右边是优化后顺序一条汇编指令的执行是可以分为很多步骤的,分为不同的硬件执行取指IF译码和取寄存器操作数ID执行或者有效地址计算EX(ALU逻辑计算单元)存储器访问MEM写回WB(寄存器)指令重排只可能发生在毫无关系的指令之间,如果指令之间存在依赖关系,则不会重排。单线程内程序的执行结果不能被改变。1原子性是指一个操作是不可中断的.

    2022年10月17日
    4
  • 提示词工程、上下文工程都过时了,现在是Harness Engineering 的时代

    提示词工程、上下文工程都过时了,现在是Harness Engineering 的时代

    2026年3月14日
    2
  • ant使用全总结_ant教程_ant打包apk_ant如何使用

    所需文件ant打包apk需要三个目录: build.xml,local.properties,proguard-project.txt生成方式,在项目根目录下执行指令:android update project —path .其中,build.xml文件是进行ant build的主要文件,它引用了其它文件。这些被引用的文件有local.properties,ant.properties两个属性文

    2022年3月11日
    54

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号