本文档旨在详细说明CRMEB系统中商品管理模块的设计架构、核心功能、代码实现及开发规范,为系统开发人员提供完整的开发参考。
本文档适用于CRMEB系统开发人员、维护人员及二次开发人员,用于指导商品管理模块的开发、扩展和维护工作。
| 术语 | 解释 |
|---|---|
| SPU | 标准化产品单元,如"iPhone 13" |
| SKU | 库存量单位,如"iPhone 13 128G 白色" |
| 商品属性 | 商品的特征,如颜色、尺寸等 |
| 商品规格 | 商品属性的具体值,如红色、XL等 |
| 商品分类 | 用于组织商品的树形分类结构 |
| 商品标签 | 用于标记商品特征的关键词 |
系统采用分层架构设计,严格遵循MVC设计模式:
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ ProductModel │ │ ProductDao │ │ ProductServices │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ ProductController│
└─────────────────┘
│
┌─────────────────┐
│ Routes │
└─────────────────┘
商品主模型:crmeb/app/model/product/product/StoreProduct.php
商品规格相关模型:
StoreProductAttr.php - 商品属性模型StoreProductAttrValue.php - 商品属性值模型StoreProductAttrResult.php - 商品属性结果模型商品分类模型:
StoreCategory.php - 商品分类模型商品DAO:crmeb/app/dao/product/product/StoreProductDao.php
商品Services:crmeb/app/services/product/product/StoreProductServices.php
商品Controller:crmeb/app/adminapi/controller/v1/product/StoreProduct.php
商品路由:crmeb/app/adminapi/route/product.php
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 商品ID(主键) |
| cid | int(10) | 分类ID |
| merchant_id | int(10) | 商户ID |
| store_name | varchar(100) | 商品名称 |
| store_info | text | 商品简介 |
| keywords | varchar(255) | 关键词 |
| image | varchar(255) | 商品主图 |
| slider_image | text | 轮播图 |
| video_link | varchar(255) | 视频链接 |
| price | decimal(10,2) | 商品价格 |
| ot_price | decimal(10,2) | 原价 |
| unit_name | varchar(10) | 单位名称 |
| stock | int(10) | 库存 |
| sales | int(10) | 销量 |
| sales_actual | int(10) | 实际销量 |
| give_integral | int(10) | 赠送积分 |
| cost | decimal(10,2) | 成本价 |
| is_show | tinyint(1) | 是否显示 |
| is_hot | tinyint(1) | 是否热门 |
| is_new | tinyint(1) | 是否新品 |
| is_recommend | tinyint(1) | 是否推荐 |
| is_postage | tinyint(1) | 是否包邮 |
| postage | decimal(10,2) | 邮费 |
| unit_id | int(10) | 计量单位ID |
| sort | int(10) | 排序 |
| add_time | int(10) | 添加时间 |
| is_deleted | tinyint(1) | 是否删除 |
| store_content | longtext | 商品详情 |
| virtual_sales | int(10) | 虚拟销量 |
| browse | int(10) | 浏览量 |
| code_path | varchar(255) | 商品码路径 |
| temp_id | int(10) | 商品模板ID |
| goods_id | int(10) | 商品SPU ID |
| specs_type | tinyint(1) | 规格类型 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 属性ID |
| product_id | int(10) | 商品ID |
| attr_name | varchar(50) | 属性名称 |
| attr_values | text | 属性值 |
| sort | int(10) | 排序 |
| add_time | int(10) | 添加时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 属性值ID |
| product_id | int(10) | 商品ID |
| attr_id | int(10) | 属性ID |
| attr_value | varchar(50) | 属性值 |
| image | varchar(255) | 属性图片 |
| sort | int(10) | 排序 |
| add_time | int(10) | 添加时间 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 结果ID |
| product_id | int(10) | 商品ID |
| attr_result | varchar(255) | 属性结果(JSON格式) |
| stock | int(10) | 库存 |
| price | decimal(10,2) | 价格 |
| cost | decimal(10,2) | 成本价 |
| code | varchar(30) | 商品编码 |
| bar_code | varchar(30) | 条形码 |
| weight | decimal(10,2) | 重量 |
| volume | decimal(10,2) | 体积 |
| sales | int(10) | 销量 |
| sales_actual | int(10) | 实际销量 |
| image | varchar(255) | 商品图片 |
| is_show | tinyint(1) | 是否显示 |
| sort | int(10) | 排序 |
| unique | varchar(255) | 唯一值 |
| 字段名 | 数据类型 | 描述 |
|---|---|---|
| id | int(10) unsigned | 分类ID |
| pid | int(10) | 父分类ID |
| cate_name | varchar(50) | 分类名称 |
| icon | varchar(255) | 分类图标 |
| sort | int(10) | 排序 |
| is_show | tinyint(1) | 是否显示 |
| add_time | int(10) | 添加时间 |
/adminapi/v1/product/list/adminapi/v1/product/detail/{id}/adminapi/v1/product/create/adminapi/v1/product/update/{id}/adminapi/v1/product/delete/{id}/adminapi/v1/product/status/{id}/adminapi/v1/product/category/list/adminapi/v1/product/category/create/adminapi/v1/product/category/update/{id}/adminapi/v1/product/category/delete/{id}命名规范:
代码结构:
数据库操作:
问题:商品规格属性过多时,SKU生成数量过大,导致页面卡顿 解决方案:
问题:高并发场景下,商品库存出现超卖问题 解决方案:
问题:商品数据在多个终端间同步不及时 解决方案:
问题:商品数量过多时,搜索速度变慢 解决方案:
系统设计具有良好的扩展性,可通过以下方式扩展功能:
系统在关键业务节点触发事件,可通过监听事件进行功能扩展:
系统提供了多个钩子点,可通过钩子函数进行功能扩展:
| 版本 | 更新日期 | 更新内容 | 更新人 |
|---|---|---|---|
| 1.0 | 2026-01-19 | 初始版本,包含商品管理核心功能 | AI Assistant |
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ ProductModel │ │ ProductDao │ │ ProductServices │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ │ │
└───────────────────────┼───────────────────────┘
│
┌─────────────────┐
│ ProductController│
└─────────────────┘
│
┌─────────────────┐
│ Routes │
└─────────────────┘
商品添加流程:
1. 接收商品基本信息
2. 验证商品信息合法性
3. 处理商品分类关联
4. 生成商品SPU(如果需要)
5. 处理商品规格属性
6. 生成SKU列表
7. 保存商品主信息
8. 保存商品规格信息
9. 保存商品描述
10. 关联商品标签、参数、保障等
11. 返回操作结果
商品上下架流程:
1. 接收商品ID和状态
2. 验证商品是否存在
3. 更新商品状态
4. 清除商品缓存(如果需要)
5. 触发商品状态变更事件
6. 返回操作结果
提示:该文档由AI生成,仅供参考。