思渡AI Logo
技术架构文档电商业务系统04. 商品属性管理设计

04. 商品属性管理设计

商品属性管理方案 (Product Attribute Management)

1. 概述

为了支撑高灵活度的商品管理(如:同一衬衫有不同尺码颜色,手机有内存和存储组合),电商系统采用 EAV (Entity-Attribute-Value) 变种模型方案。该方案旨在解决非结构化、多变的商品参数存储与检索问题。

2. 核心模型设计

2.1 属性分类

系统将商品属性分为以下几类,以满足不同的业务场景:

  1. 销售属性 (Sales Attributes / SKU Specs)

    • 定义: 决定商品库存单价(SKU)的关键属性。
    • 示例: 颜色、尺码、内存容量。
    • 行为: 排列组合生成 SKU 列表;必填。
  2. 筛选属性 (Filterable Attributes)

    • 定义: 用于在商城前台列表页进行侧边栏筛选的属性。
    • 示例: 品牌、屏幕尺寸、适用季节。
    • 行为: 建立倒排索引,支持聚合查询 (Aggregation)。
  3. 关键/普通属性 (Display Attributes)

    • 定义: 用于商品详情页参数表格展示,不影响交易。
    • 示例: 包装清单、产地、详细材质成分。
    • 行为: JSON 结构存储,用于展示。

2.2 属性录入类型

  • 文本输入 (Text): 适用于无固定枚举值的属性(如:长宽高、重量)。
  • 单选 (Single Select): 适用于互斥的枚举值(如:领型、屏幕材质)。
  • 多选 (Multi Select): 适用于可多选的特征(如:适用风格、成分)。
  • 布尔 (Boolean): 是/否选项(如:是否加绒)。
  • 日期 (Date): 适用于时间相关属性(如:上市年份)。

3. 功能模块

3.1 属性库管理 (Attribute Library)

统一管理池,维护所有可能的商品特征。

  • 路径: AI电商 -> 店铺运营 -> 商品属性
  • 功能:
    • 属性的增删改查。
    • 预设值(Option Values)管理。
    • 属性特性标记(是否销售属性、是否筛选)。

3.2 属性组/模版 (Attribute Sets) (规划中)

将一组属性绑定到特定的后台类目,实现发布商品时的动态表单。

  • 示例:
    • "手机" 类目绑定: [屏幕尺寸, CPU型号, 内存容量, 存储容量]
    • "服装" 类目绑定: [材质, 颜色, 尺码, 适用季节]

4. 数据结构示例 (Draft)

Product Attributes Table:

CREATE TABLE product_attributes (
    id VARCHAR PRIMARY KEY,
    name VARCHAR NOT NULL,       -- 显示名: 如 "颜色"
    code VARCHAR NOT NULL,       -- 编码: 如 "color"
    type VARCHAR NOT NULL,       -- text, select, multi_select...
    is_sales BOOLEAN DEFAULT 0,  -- 是否销售属性
    is_filterable BOOLEAN DEFAULT 0,
    options JSON                 -- 预设选项值: [{"label":"红","value":"red"}]
);

Product Value Mapping: 存储在 products 表的 attributes JSON 字段中:

{
  "color": "red",
  "size": "L",
  "material": ["cotton", "polyester"]
}

对于 SKU 生成,使用专门的关联表或 JSON 结构维护变体关系。