system column十三Tech
← 返回业财专栏
ERP

业财通识05:商品世界的基石——深入理解 SPU 与 SKU

2025/12/178 min read
ERP商品SPUSKU主数据十三Tech

大家好,我是十三。

导言:为什么需要 SPU 和 SKU?

你一定在电商平台上买过东西。当你打开某个商品页面,比如"iPhone 17 Pro"时,你会发现页面下方有多个选项:

  • 颜色:银色、深空黑、原色钛金属、蓝色钛金属
  • 存储容量:256GB、512GB、1TB

当你选择了"银色 256GB"后,系统会告诉你:这个规格有货,价格是 8999 元。但如果你选择"深空黑 1TB",价格就变成了 11999 元。

你有没有想过,为什么同一个"iPhone 17 Pro",会有这么多不同的价格和库存状态?系统是如何区分这些"看起来一样,但实际不同"的商品的?

这就是我们今天要探讨的核心概念:SPUSKU。它们是商品管理的基石,也是理解整个库存系统的前提。

SPU:标准产品单元——商品的"身份证"

SPU(Standard Product Unit),即"标准产品单元",你可以把它理解成商品的"产品模板"。

业务定义

SPU 是一组具有相同基本属性、规格的商品集合。它描述的是"什么产品",而不是"具体哪个"。

通俗理解

SPU 就像是一个"产品族"。例如,"iPhone 17 Pro"就是一个 SPU,它定义了产品的基本信息:品牌是 Apple,型号是 iPhone 17 Pro,属于智能手机类别。

SPU 的核心属性

属性 通俗理解 示例
产品名称 这个产品叫什么 "iPhone 17 Pro"
品牌 属于什么品牌 "Apple"
产品类别 属于什么类型 "智能手机"
产品描述 产品基本介绍 "6.1英寸超视网膜XDR显示屏..."
产品图片 展示图片 主图、详情图等

系统体现

在 ERP 系统中,SPU 通常作为商品主数据存在。它不直接参与库存管理,而是作为商品分类和展示的基础。

SKU:库存单位——库存管理的"最小单元"

如果说 SPU 是"产品族",那么 SKU(Stock Keeping Unit) 就是"具体商品"。

业务定义

SKU 是库存单位,是库存管理的最小单元。它是在 SPU 基础上,通过不同属性组合形成的具体商品。每个 SKU 都有唯一的编码。

通俗理解

SKU 是"可以单独管理库存的具体商品"。例如,"iPhone 17 Pro 银色 256GB"就是一个 SKU,它是"iPhone 17 Pro"这个 SPU 的一个具体规格。

SKU 的核心属性

属性 通俗理解 示例
SKU 编码 唯一标识,就像商品 ID "IPHONE17PRO-SILVER-256"
所属 SPU 属于哪个产品族 "iPhone 17 Pro"
规格属性 颜色、尺寸、容量等 颜色:银色,容量:256GB
库存数量 当前有多少库存 50 台
成本价格 采购成本是多少 8000 元/台
销售价格 售价是多少 8999 元/台

系统体现

在 ERP 系统中,所有的库存操作(入库、出库、盘点)都是基于 SKU 进行的。系统会为每个 SKU 单独记录库存数量、成本、价格等信息。

SPU 与 SKU 的关系:一对多

关系模型

一个 SPU 可以对应多个 SKU,但一个 SKU 只能属于一个 SPU。

举个例子

假设"iPhone 17 Pro"是一个 SPU,那么它可能对应以下 SKU:

  • "iPhone 17 Pro 银色 256GB"(SKU 编码:IPHONE17PRO-SILVER-256)
  • "iPhone 17 Pro 银色 512GB"(SKU 编码:IPHONE17PRO-SILVER-512)
  • "iPhone 17 Pro 深空黑 256GB"(SKU 编码:IPHONE17PRO-BLACK-256)
  • "iPhone 17 Pro 深空黑 512GB"(SKU 编码:IPHONE17PRO-BLACK-512)
  • "iPhone 17 Pro 原色钛金属 1TB"(SKU 编码:IPHONE17PRO-TITANIUM-1TB)
  • ...(更多规格组合)

为什么需要这种设计?

  1. 库存管理精确化:不同规格的商品,库存是独立的,不能混用。你不能把"银色 256GB"的库存,用来满足"深空黑 512GB"的订单。
  2. 定价灵活性:不同 SKU 可以有不同的价格。256GB 版本可能卖 8999 元,而 1TB 版本可能卖 11999 元。
  3. 销售统计:你可以统计 SPU 级别的销售数据(所有规格的总和),也可以统计 SKU 级别的数据(具体哪个规格卖得好)。比如,你可以知道"iPhone 17 Pro"这个 SPU 总共卖了多少台,也可以知道"银色 256GB"这个 SKU 卖了多少台。

在采购和库存中的应用

理解了 SPU 和 SKU 的概念后,我们来看看它们在实际业务中是如何应用的。

采购订单中的 SKU

在创建采购订单时,你必须明确到 SKU 级别,不能只写"iPhone 17 Pro"。

错误示例

采购订单:
- 商品:iPhone 17 Pro
- 数量:100 台

正确示例

采购订单:
- SKU:IPHONE17PRO-SILVER-256(iPhone 17 Pro 银色 256GB)
- 数量:50 台
- 单价:8000 元/台

- SKU:IPHONE17PRO-BLACK-512(iPhone 17 Pro 深空黑 512GB)
- 数量:50 台
- 单价:9500 元/台

为什么必须明确到 SKU?因为不同 SKU 的成本、价格、库存都是独立的,系统需要精确管理。

库存管理中的 SKU

所有库存操作(入库、出库、盘点)都基于 SKU 进行。

入库时

入库单:
- SKU:IPHONE17PRO-SILVER-256
- 入库数量:50 台
- 系统自动更新:该 SKU 的物理库存从 0 增加到 50

出库时

出库单:
- SKU:IPHONE17PRO-SILVER-256
- 出库数量:10 台
- 系统自动更新:该 SKU 的物理库存从 50 减少到 40

库存查询

查询结果:
- SPU:iPhone 17 Pro
  - SKU:IPHONE17PRO-SILVER-256,库存:40 台
  - SKU:IPHONE17PRO-SILVER-512,库存:30 台
  - SKU:IPHONE17PRO-BLACK-256,库存:20 台
  - ...
  - SPU 总库存:90 台(所有 SKU 库存之和)

三单匹配中的 SKU

还记得我们在第三篇文章中提到的"三单匹配"吗?在发票校验时,必须确保 PO、入库单、发票中的 SKU 完全一致。

匹配逻辑

匹配项 采购订单(PO) 入库单(GRN) 供应商发票(Invoice) 是否匹配
SKU IPHONE17PRO-SILVER-256 IPHONE17PRO-SILVER-256 IPHONE17PRO-SILVER-256 匹配
数量 50 台 50 台 50 台 匹配
单价 8000 元/台 - 8000 元/台 匹配

如果 SKU 不一致,比如 PO 是"银色 256GB",但发票是"深空黑 512GB",系统会立即报错,拒绝通过校验。

SPU 与 SKU 的关系图示

为了更好地理解 SPU 和 SKU 的关系,我们可以用一个简单的图示来表示:

SPU: iPhone 17 Pro
├── SKU: 银色 256GB      → 库存: 40 台
├── SKU: 银色 512GB      → 库存: 30 台
├── SKU: 深空黑 256GB    → 库存: 20 台
├── SKU: 深空黑 512GB    → 库存: 15 台
└── SKU: 原色钛金属 1TB  → 库存: 10 台

这个图示清晰地展示了:一个 SPU(iPhone 17 Pro)可以对应多个 SKU(不同的颜色和容量组合),而每个 SKU 都有自己独立的库存数量。

总结:商品管理的基石

商品管理的两个核心概念:

  1. SPU(标准产品单元):是"产品族",用于产品展示和分类。它定义了产品的基本信息,但不直接参与库存管理。
  2. SKU(库存单位):是"具体商品",是库存管理的最小单元。所有的库存操作、采购订单、销售订单都必须明确到 SKU 级别。

它们的关系:一个 SPU 可以对应多个 SKU,但一个 SKU 只能属于一个 SPU。这种设计让系统既能从宏观层面管理产品(SPU 级别),也能从微观层面精确管理库存(SKU 级别)。

理解 SPU 和 SKU,是理解整个商品管理体系的基础。无论是采购、销售,还是库存管理,都离不开这两个概念。下一篇,我们将回到采购流程,探讨一个经常被忽视但对库存预测至关重要的问题:采购在途。


往期回顾

关于十三Tech

资深服务端研发工程师、架构师、AI 编程实践者。
专注分享真实的技术实践经验,持续记录企业系统、架构设计与 AI 编程实践。