商品系统是电商SaaS、新零售SaaS最基础、最核心的系统之一。商品系统几乎需要支撑所有业务系统,商品详情、购物车、订单、履约、结算、售后、库存、供应链等,都需要依赖商品系统的能力。为了保障业务的稳定性、可扩展性,必须要非常重视商品系统建设。

优秀的业务模型是建设高质量商品系统的基础,在建设系统的过程中,需要对商品基础概念有非常清晰的认识。

商品基础概念

SPU概念

SPU(Standard Product Unit),指的是标准化产品单元,是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。又可称为平台商品。

SPU的概念来源于电商平台业务,第一个关键点在于SPU模型会提取商品的共性属性用于信息检索,这些属性通常是能够快速识别商品,并且消费者较为关心的属性;第二个关键点在于SPU的属性是全平台标准化的,这样才能有效保障消费者的检索体验与商家利益,例如,消费者搜索256G的iphone12,如果有填写容量的商品能搜出来,没填容量的商品搜不出,这样的设计明显不合理,因此平台需要规范所有商品的关键属性。

商品概念

商品概念特指商家的商品,一个商家可以有很多商品,若N个商家卖同一个商品,例如iphone13,该场景下有1个SPU实例,N个商品实例。每个商品可以有多个规格,例如大小、颜色、尺码等。

SKU概念

SKU(Stock Keeping Unit),指的是最小存货单位。以iphone13为例,关键规格有颜色(黑色、红色、银色、金色)、容量(128G、256G、512G),可以组合出4x3=12个SKU。

不同业务模式下的商品模型设计

自营电商业务

自营电商业务对商品进行统一生产或采购、商品展示、在线交易,并通过物流配送将商品交付到消费者手中,业务模式相对比较简单,需要2层商品结构即可(自营商品、SKU)。

电商平台业务

电商平台由于拥有多个商家在平台售卖商品,因此商品模型比自营电商业务要复杂,通常需要三层商品结构(SPU、商家商品、SKU),SPU主要用于解决相同的商家商品信息统一的问题,便于平台运营管控整个平台商品体系。

随着业务发展,后续又加入了CSPU的概念,C是Child缩写,通过CSPU概念进一步管控商家发布的SKU。例如,假设iphone13只有银色64G、银色256G、灰色64G、灰色256G四种SKU,电商平台可以设置4个CSPU,商家的SKU可以直接继承这4个的CSPU,既规范了平台商品,也提高了商家发布商品效率。

电商SaaS业务

电商SaaS业务主要是帮助商家搭建线上商城,完成交易转化。与电商平台业务有个非常大的区别是,电商SaaS业务由于没有平台属性,不需要对商家的商品进行强管控,因此SPU概念不是必须的,即只需要2层商品结构即可(商家商品、SKU)。

新零售SaaS业务

新零售SaaS的商品模型远比电商SaaS复杂,因为新零售商家通常有复杂的组织架构,例如连锁体系,品牌加盟体系,同时新零售商家有全渠道运营的需求,即商家在尽可能多的线上渠道、门店渠道进行销售,以满足更多消费者的购物需求。因此商品系统需要设计更加复杂的商品模型,才能支撑起这些业务模式。

小结

商品领域的核心概念是SPU、SKU、商品,不同的业务模式会衍生出不同的商品结构与商品关系,要警惕过度设计与设计不足,过度设计会导致商品系统复杂度高,设计不足导致扩展性差,只有深入了解业务背后的本质需求,才能选择合适的方案。

商品模型:SPU、商品、SKU概念模型设计的更多相关文章

  1. 42、生鲜电商平台-商品的spu和sku数据结构设计与架构

    说明:Java开源生鲜电商平台中商品的spu和sku数据结构设计与架构,包括数据库图标与架构分析. 1. 先说明几个概念. 电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商 ...

  2. Java生鲜电商平台-商品的spu和sku数据结构设计与架构

    Java生鲜电商平台-商品的spu和sku数据结构设计与架构 1. 先说明几个概念. 电商网站采用在商品模块,常采用spu+sku的数据结构算法,这种算法可以将商品的属性和商品的基本信息分离,分开维护 ...

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

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

  4. SPU与SKU概念

    1. 什么是SPU SPU 是商品信息聚合的最小单位,是一组可复用.易检索的标准化信息的集合,该集合描述了一个产品的特性.即:某一款商铺的公共属性. 通俗点讲,属性值.特性相同的货品就可以称为一个 S ...

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

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

  6. tp5 商城商品模型删除

    1:控制器代码 public function delete($id) { //验证id是否正确 $id if (!intval($id)) { return getJsonData(10010, ' ...

  7. 商品spu 和 sku的关系

    总结一下在目前的电商系统中的商品涉及的属性spu,sku.搞清楚两者之间的关系对表的设计非常重要 spu Standard Product Unit (标准产品单位) ,一组具有共同属性的商品集 SK ...

  8. 在电子商务里,一般会提到这样几个词:商品、单品、SPU、SKU

    简单理解一下,SPU是标准化产品单元,区分品种:SKU是库存量单位,区分单品:商品特指与商家有关的商品,可对应多个SKU. 首先,搞清楚商品与单品的区别.例如,iphone是一个单品,但是在淘宝上当很 ...

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

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

随机推荐

  1. 简单实现支付密码输入框 By HL

    密码输入框在微信,支付宝中比较常见 主要功能点 1.6位(或者N位)密码输入框封装

  2. JavaGuide--Java篇

    本文避免重复造轮子,也是从JavaGuider中提取出来方便日后查阅的手册 参考链接: JavaGuider:https://javaguide.cn/java/basis/java-basic-qu ...

  3. Centos7系统使用yum遇到的问题failure: repodata/repomd.xml from base: [Errno 256] No more mirrors to try.

    简单粗暴重新安装yum. 1.查看linux上所有的yum包 # rpm -qa|grep yum 2.逐个卸载,如 # rpm -e yum-plugin-fastestmirror-1.1.31- ...

  4. 通过C#在控制台输出各种图形文字

    这不是要准备公司年会了嘛 每个部门抓壮丁,必须安排至少一个节目 想着上去唱首歌算了,被毙,没有部门特色 妈蛋,唱歌没特色,那隔壁在前线工作的部门要表演个啥,抄表? 冥思苦想之下,给节目加了点部门特色, ...

  5. 无xml文件的springMVC

    使用springMVC我们一般都会在web.xml中配置一个dispatcher,现在我们基于用java代码的方式来使用springMVC import org.springframework.con ...

  6. Spring系列14:IoC容器的扩展点

    Spring系列14:IoC容器的扩展点 回顾 知识需要成体系地学习,本系列文章前后有关联,建议按照顺序阅读.上一篇我们详细介绍了Spring Bean的生命周期和丰富的扩展点,没有阅读的强烈建议先阅 ...

  7. R数据分析:数据清洗的思路和核心函数介绍

    好多同学把统计和数据清洗搞混,直接把原始数据发给我,做个统计吧,这个时候其实很大的工作量是在数据清洗和处理上,如果数据很杂乱,清洗起来是很费工夫的,反而清洗好的数据做统计分析常常就是一行代码的事情. ...

  8. MXNet源码分析 | KVStore进程间通信

    本文主要基于MXNet1.6.0版本进行分析. 在上一篇文章中,我们分析了MXNet中KVStore的进程内通信机制.在这篇文章中,我们主要分析KVStore如何进行多节点分布式通信. 在KVStor ...

  9. python中类的调用

    1 class Computer: # 创建类,类名首字母大写 2 screen = True # 类的属性 3 4 def start(self): # 创建实例方法,不要漏了 self 5 pri ...

  10. [Java]Java入门笔记(二):数据类型、程序结构、数组、控制台输入

    二.基本语法 2.1 标识符 定义:给类.方法.变量等起的名字 规则: 可以使用字母(26个英文字母的大小写.各国的一些语言.-).数字.下划线.美元符号: 不能以数字开始(可以$开始): 不能是Ja ...