升鲜宝商品模块功能分析、操作流程示意图与数据库表结构数据字典 E-R 图
面向供应链公司商品中心 pms_,覆盖 SPU / SKU / 单位换算 / 销售规格 / 价格 / 图片 / 条码 / B2B展示 / 采购库存映射
文档版本:V1.0 适用范围:升鲜宝供应链管理系统商品中心、B2B订货商城商品展示、采购库存成本映射

图 1:升鲜宝商品模块总体业务流程
1. 商品模块定位与边界
1.1 模块定位
升鲜宝商品模块是供应链公司业务系统的公司商品中心,建议以 pms_ 表为核心,负责维护商品分类、品牌、SPU、SKU、销售规格、单位换算、商品条码、商品图片、商品标签、基础价格和业务引用关系。商品模块不是库存模块、不是采购模块,也不是门店商品模块,但必须为采购、库存、成本、OMS订单、B2B订货商城、溯源、打印和报表提供稳定商品口径。
1.2 业务边界
|-----------|---------------------------------------|------------------------------------------------|
| 边界项 | 说明 | 推荐口径 |
| 公司商品中心 | 供应链公司层面的商品资料、SKU、单位、销售规格、条码、图片 | pms_ 表作为核心业务表 |
| 云商品库 | 平台公共商品模板库,供客户快速初始化商品,不直接参与业务核算 | platform_ 表复制/同步到 pms_ 后使用 |
| B2B订货商城商品 | 客户订货端展示与下单使用公司商品中心销售最小粒度 | sku_unit_id = pms_goods_sku_unit.id |
| 采购/库存/成本 | 公司采购、WMS库存、成本核算不能直接以 sku_unit_id 为主口径 | product_sku_id + unit_id |
| 门店商品/POS | 门店会员商城、POS收银属于门店商品体系 | shop_goods_unit_id / mall_shop_product_unit.id |
1.3 核心业务对象
|--------|-----------------------|--------------------|-------------------------------------|
| 对象 | 含义 | 示例 | 关键表 |
| 商品分类 | 商品树形分类,用于管理、商城展示、报表统计 | 蔬菜 / 肉禽 / 水产 / 调味品 | pms_goods_category |
| 品牌 | 商品品牌或厂牌 | 双汇、正大、自有品牌 | pms_brand |
| SPU | 标准商品档案,不代表具体规格 | 五花肉、波士顿龙虾、娃娃菜 | pms_goods |
| SKU | 商品规格组合,采购库存成本主商品对象 | 五花肉-精品、龙虾-大号 | pms_goods_sku |
| 单位 | 基础计量单位、采购单位、销售单位、库存单位 | 斤、kg、箱、只、包 | pms_goods_unit |
| 销售规格单位 | 销售侧最小商品粒度,B2B订单和价格使用 | 五花肉 1斤、龙虾 1只、鸡蛋 1箱 | pms_goods_sku_unit |
| 单位换算 | SKU在不同单位间的换算关系 | 1箱=20斤,1只≈1.3斤 | pms_goods_unit_relation |
| 条码与媒体 | 扫码、图片、视频、附件、追溯资料 | 商品主图、规格条码、检疫附件 | pms_goods_barcode / pms_goods_media |
2. 功能模块分析
|----------|-----------------------------------|--------------------------|
| 功能模块 | 功能说明 | 主要操作 |
| 商品分类管理 | 维护多级分类树、排序、图标、是否启用、商城显示分类映射 | 新增/编辑/删除/启用/禁用/拖拽排序/导入导出 |
| 品牌管理 | 维护品牌编码、品牌名称、Logo、排序、启用状态 | 新增/编辑/删除/启用/禁用 |
| 单位管理 | 维护单位名称、编码、小数位、基础单位、是否可销售/采购/库存 | 新增/编辑/启用/禁用/单位重复校验 |
| 商品档案 SPU | 维护商品名称、编码、分类、品牌、保质期、存储条件、税率等 | 新增商品、导入商品、编辑商品、商品审核 |
| SKU规格管理 | 维护一个商品下多个规格、SKU编码、规格属性、采购库存口径 | 新增SKU、复制SKU、SKU启用禁用 |
| 销售规格单位 | 维护sku_unit_id、销售单位、起订量、步长、条码、默认价格 | 新增销售规格、设置默认销售规格、同步B2B商城 |
| 单位换算 | 维护SKU多单位换算、销售单位、采购单位、库存主单位 | 配置换算、校验库存单位、双单位展示 |
| 条码管理 | 维护商品条码、规格条码、箱码、电子秤PLU码 | 扫码校验、唯一性检查、条码打印 |
| 商品图片/素材 | 维护主图、详情图、视频、附件、检疫证图片、标签图片 | 上传、排序、设主图、删除 |
| 价格管理 | 默认价、客户价、价格组价、历史价格、毛利规则 | 价格导入、价格预览、价格日志 |
| 商品上下架与展示 | 控制B2B商城展示、客户/价格组可见范围、推荐新品热销 | 上下架、可见范围、缓存刷新 |
| 商品导入导出 | Excel导入、错误报告、自动创建单位/分类、重复校验 | 导入模板、错误明细、导出任务中心 |
2.1 推荐后台菜单结构
商品中心建议作为供应链系统一级业务域,下面分为基础资料、商品资料、规格单位、价格展示、导入导出、数据质量六个二级分组。
|----------|----------|------------------------------|
| 一级菜单 | 二级分组 | 三级功能菜单 |
| 商品中心 | 基础资料 | 商品分类、商品品牌、计量单位、规格属性、商品标签 |
| 商品中心 | 商品资料 | 商品档案、SKU规格、销售规格单位、商品条码、商品图片 |
| 商品中心 | 单位换算 | 商品单位换算、双单位配置、库存主单位检查 |
| 商品中心 | 价格展示 | 默认公开价、客户特殊价、价格组价、商品展示配置 |
| 商品中心 | 导入导出 | 商品导入、价格导入、条码导入、导入错误报告、导出任务 |
| 商品中心 | 数据质量 | 重复商品检查、缺图商品、未配置单位、未配置价格、异常条码 |
3. 操作流程示意图

图 2:商品建档与启用操作流程
3.1 商品新增/编辑操作说明
|--------|----------|--------------------------|-------------------------------|
| 步骤 | 操作对象 | 操作说明 | 结果 |
| 1 | 分类/品牌/单位 | 先维护基础资料,保证分类、品牌、单位可选 | 形成商品建档基础字典 |
| 2 | SPU商品档案 | 录入商品名称、编码、分类、品牌、保质期、存储条件 | 生成 pms_goods 记录 |
| 3 | SKU规格 | 录入SKU编码、规格属性、默认库存单位 | 生成 pms_goods_sku 记录 |
| 4 | 销售规格单位 | 配置销售单位、起订量、订购步长、默认价、条码 | 生成 pms_goods_sku_unit 记录 |
| 5 | 单位换算 | 配置销售单位、采购单位、库存单位之间换算 | 生成 pms_goods_unit_relation 记录 |
| 6 | 图片/条码/价格 | 上传图片、维护条码、设置客户价/价格组价 | 形成可售商品资料 |
| 7 | 启用与发布 | 启用商品,刷新B2B商品缓存与分类缓存 | 客户订货端可展示并下单 |

图 3:单位换算与双单位业务流程
3.2 商品导入流程
|--------|--------------------------|---------------------|
| 环节 | 说明 | 系统处理规则 |
| 上传模板 | 导入商品名称、分类、品牌、规格、单位、条码、价格 | 检查Excel列头、必填项、数据类型 |
| 基础资料匹配 | 匹配分类、品牌、单位 | 不存在时可按配置自动创建或进入错误列表 |
| 重复校验 | 按商品名称+规格+单位、条码、SKU编码校验 | 重复则提示合并、跳过或覆盖 |
| 生成商品 | 生成SPU、SKU、sku_unit、条码、价格 | 导入成功写入导入日志 |
| 错误报告 | 输出错误行、错误列、错误原因 | 支持下载错误Excel并二次修正导入 |
3.3 商品销售、采购、库存业务引用流程
|----------|-----------------------------------------|------------------------------------------|---------------------------|
| 业务场景 | 使用字段 | 关联表 | 说明 |
| B2B客户订单 | sku_unit_id | oms_order_bill_info / b2b商品展示表 | 销售侧以销售规格单位下单 |
| 客户特殊价 | sku_unit_id + customer_id | cus_customer_price | 客户登录后优先取客户价 |
| 价格组价 | sku_unit_id + customer_grade_id | cus_customer_grade_price | 无客户价时取价格组价 |
| 采购入库 | product_sku_id + unit_id | 采购明细 / wms入库明细 | 采购和库存口径不直接用sku_unit_id |
| WMS库存 | product_sku_id + unit_id + warehouse_id | wms_goods_inventory | 库存数量、金额、成本主核算 |
| 成本流水 | product_sku_id + unit_id | wms_goods_cost_flow | 移动加权、FIFO等算法基于库存单位 |
| 门店POS | shop_goods_unit_id | shop_goods_unit / mall_shop_product_unit | 门店商品体系独立,不混用公司sku_unit_id |
4. 数据库总体设计与E-R图

4.1 表关系说明
|----------------|---------------------|----------------------------------------------------------------|
| 关系 | 说明 | 字段关联 |
| 分类 -> 商品 | 一个分类下可以有多个商品 | pms_goods.category_id -> pms_goods_category.id |
| 品牌 -> 商品 | 一个品牌下可以有多个商品 | pms_goods.brand_id -> pms_brand.id |
| 商品 -> SKU | 一个SPU商品下可以有多个SKU规格 | pms_goods_sku.goods_id -> pms_goods.id |
| SKU -> 销售规格单位 | 一个SKU可以有多个销售单位/销售规格 | pms_goods_sku_unit.product_sku_id -> pms_goods_sku.id |
| 单位 -> 销售规格单位 | 销售规格单位引用计量单位 | pms_goods_sku_unit.unit_id -> pms_goods_unit.id |
| SKU -> 单位换算 | 同一SKU在不同单位之间换算 | pms_goods_unit_relation.product_sku_id -> pms_goods_sku.id |
| 销售规格 -> 客户价 | 客户特殊价按销售规格配置 | cus_customer_price.sku_unit_id -> pms_goods_sku_unit.id |
| 销售规格 -> 价格组价 | 价格组价按销售规格配置 | cus_customer_grade_price.sku_unit_id -> pms_goods_sku_unit.id |
| 销售规格 -> 订单明细 | 客户订单明细按销售规格下单 | oms_order_bill_info.sku_unit_id -> pms_goods_sku_unit.id |
| SKU+单位 -> 库存 | 库存主核算按SKU+单位 | wms_goods_inventory.product_sku_id + unit_id |
| SKU+单位 -> 成本 | 成本主核算按SKU+单位 | wms_goods_cost.product_sku_id + unit_id |
5. 数据库表结构数据字典
说明:以下为商品模块推荐落地数据字典,结合升鲜宝当前业务口径整理。若原库字段名称存在历史差异,建议以"字段口径"保持一致,逐步通过视图、兼容字段或迁移脚本平滑调整。
5.x pms_goods_category(商品分类表)
维护公司商品分类树
|---------------|--------------|-------------|------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| parent_id | bigint | 上级分类ID,一级为0 | idx_parent |
| category_code | varchar(64) | 分类编码 | 唯一建议 |
| category_name | varchar(100) | 分类名称 | 同级唯一建议 |
| level | int | 分类级别 | |
| tree_path | varchar(500) | 分类路径 | 查询优化 |
| icon_url | varchar(500) | 分类图标 | 商城展示 |
| image_url | varchar(500) | 分类图片 | 商城展示 |
| show_flag | tinyint | 是否展示 | 1是0否 |
| sort_code | int | 排序码 | |
| enabled | tinyint | 启用状态 | 1启用0禁用 |
| del_flag | tinyint | 删除标记 | 0正常1删除 |
5.x pms_brand(商品品牌表)
维护商品品牌资料
|--------------|--------------|----------|-----------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| brand_code | varchar(64) | 品牌编码 | 唯一建议 |
| brand_name | varchar(100) | 品牌名称 | |
| logo_url | varchar(500) | 品牌Logo | |
| first_letter | varchar(10) | 首字母 | 检索 |
| sort_code | int | 排序码 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_unit(计量单位表)
维护商品计量单位和小数位
|----------------|-------------|----------|-----------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| unit_code | varchar(64) | 单位编码 | 唯一建议 |
| unit_name | varchar(50) | 单位名称 | 不可重复建议 |
| unit_symbol | varchar(20) | 单位符号 | |
| decimal_places | int | 数量小数位 | 数量精度 |
| base_unit_flag | tinyint | 是否基础单位 | 1是0否 |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods(商品SPU表)
维护商品基础档案
|-------------------|---------------|-------------------|--------------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| goods_code | varchar(64) | 商品编码 | 唯一建议 |
| goods_name | varchar(200) | 商品名称 | |
| category_id | bigint | 商品分类ID | FK pms_goods_category.id |
| brand_id | bigint | 品牌ID | FK pms_brand.id |
| default_unit_id | bigint | 默认单位ID | FK pms_goods_unit.id |
| goods_type | tinyint | 商品类型:普通/称重/组合/加工品 | |
| sale_flag | tinyint | 是否可销售 | |
| purchase_flag | tinyint | 是否可采购 | |
| inventory_flag | tinyint | 是否管库存 | |
| shelf_life_days | int | 保质期天数 | |
| storage_condition | varchar(100) | 存储条件 | 冷藏/冷冻/常温 |
| tax_rate | decimal(10,3) | 税率 | |
| main_image_url | varchar(500) | 商品主图 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_sku(商品SKU表)
维护商品规格组合与采购库存主商品对象
|-----------------|---------------|----------|----------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| goods_id | bigint | 商品SPU ID | FK pms_goods.id |
| sku_code | varchar(64) | SKU编码 | 唯一建议 |
| sku_name | varchar(200) | SKU名称 | |
| spec_json | varchar(1000) | 规格属性JSON | 颜色/等级/大小等 |
| purchase_flag | tinyint | 是否可采购 | |
| inventory_flag | tinyint | 是否管库存 | |
| default_unit_id | bigint | 默认库存单位 | FK pms_goods_unit.id |
| barcode | varchar(100) | 默认条码 | 可选 |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_sku_unit(商品销售规格单位表)
销售侧最小商品粒度 sku_unit_id
|----------------|---------------|--------------------|----------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID,即 sku_unit_id | PK |
| product_sku_id | bigint | 商品SKU ID | FK pms_goods_sku.id |
| unit_id | bigint | 销售单位ID | FK pms_goods_unit.id |
| sku_unit_code | varchar(64) | 销售规格编码 | 唯一建议 |
| sku_unit_name | varchar(200) | 销售规格名称 | |
| barcode | varchar(100) | 销售规格条码 | 可唯一 |
| default_price | decimal(12,3) | 默认公开价 | 未登录显示 |
| min_order_qty | decimal(12,3) | 起订量 | B2B下单 |
| max_order_qty | decimal(12,3) | 最大订购量 | 可选 |
| order_step_qty | decimal(12,3) | 订购步长 | |
| sale_flag | tinyint | 是否可销售 | |
| show_flag | tinyint | 是否展示 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_unit_relation(商品单位换算关系表)
维护SKU不同单位之间换算关系
|----------------|---------------|----------|---------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| product_sku_id | bigint | 商品SKU ID | FK pms_goods_sku.id |
| unit_id | bigint | 主单位ID | |
| unit_id2 | bigint | 换算单位ID | |
| unit_relation | decimal(18,6) | 换算比例 | 如1箱=20斤 |
| sale_flag | tinyint | 是否销售单位 | |
| purchase_flag | tinyint | 是否采购单位 | |
| inventory_flag | tinyint | 是否库存主单位 | |
| inv_type | tinyint | 库存单位类型 | 主库存/辅助库存 |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_barcode(商品条码表)
维护SKU/销售规格多条码
|----------------|--------------|-----------------|--------------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| goods_id | bigint | 商品ID | 可选 |
| product_sku_id | bigint | SKU ID | 可选 |
| sku_unit_id | bigint | 销售规格单位ID | FK pms_goods_sku_unit.id |
| barcode | varchar(100) | 条码 | 唯一建议 |
| barcode_type | tinyint | 条码类型:商品码/箱码/PLU | |
| default_flag | tinyint | 是否默认条码 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_media(商品媒体表)
维护商品图片、视频和附件
|----------------|--------------|----------------|-----------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| goods_id | bigint | 商品ID | FK pms_goods.id |
| product_sku_id | bigint | SKU ID | 可选 |
| sku_unit_id | bigint | 销售规格ID | 可选 |
| media_type | tinyint | 媒体类型:1图片2视频3文件 | |
| media_url | varchar(500) | 媒体地址 | |
| main_flag | tinyint | 是否主图 | |
| sort_code | int | 排序码 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_i18n(商品多语言表)
商品名称、描述等多语言扩展
|------------|---------------|----------|-----------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| goods_id | bigint | 商品ID | FK pms_goods.id |
| language | varchar(10) | 语言编码 | zh-CN/en-US等 |
| goods_name | varchar(200) | 商品名称译文 | |
| goods_desc | varchar(1000) | 商品描述译文 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x cus_customer_price(客户商品价格表)
B2B客户特殊价
|-------------|---------------|----------|--------------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| customer_id | bigint | 客户ID | B2B客户 |
| sku_unit_id | bigint | 销售规格单位ID | FK pms_goods_sku_unit.id |
| price | decimal(12,3) | 客户价 | |
| start_time | bigint | 生效时间 | |
| end_time | bigint | 失效时间 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x cus_customer_grade_price(价格组商品价格表)
B2B价格组价格
|-------------------|---------------|----------|--------------------------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| customer_grade_id | bigint | 客户价格组ID | |
| sku_unit_id | bigint | 销售规格单位ID | FK pms_goods_sku_unit.id |
| price | decimal(12,3) | 价格组价 | |
| start_time | bigint | 生效时间 | |
| end_time | bigint | 失效时间 | |
| enabled | tinyint | 启用状态 | |
| del_flag | tinyint | 删除标记 | |
5.x pms_goods_import_log(商品导入日志表)
记录商品导入批次与错误信息
|----------------|--------------|---------------|-----------|
| 字段名 | 类型 | 业务说明 | 约束/关联 |
| id | bigint | 主键ID | PK |
| import_no | varchar(100) | 导入批次号 | 唯一 |
| import_type | tinyint | 导入类型:商品/价格/条码 | |
| file_name | varchar(255) | 文件名 | |
| total_count | int | 总行数 | |
| success_count | int | 成功数 | |
| fail_count | int | 失败数 | |
| error_file_url | varchar(500) | 错误文件地址 | |
| import_status | tinyint | 状态:处理中/成功/失败 | |
| operator_id | bigint | 操作人ID | |
| create_date | bigint | 创建时间 | |
6. 关键字段口径与开发约束
|--------------------------|---------------------------------------|-----------------------------|-----------------------|
| 字段/对象 | 正确口径 | 错误做法/风险 | 开发建议 |
| sku_unit_id | 公司商品中心销售最小粒度,关联 pms_goods_sku_unit.id | 拿 sku_unit_id 作为公司库存成本主商品字段 | 仅用于销售、价格、B2B展示、订单来源追溯 |
| product_sku_id + unit_id | 采购、库存、成本主核算商品口径 | 采购库存直接用销售规格,导致单位换算和成本混乱 | WMS、采购、成本流水必须使用该组合 |
| shop_goods_unit_id | 门店POS/会员商城销售最小粒度 | 门店订单直接用公司 sku_unit_id | 门店销售明细使用门店商品规格ID |
| platform_goods_* | 云商品库公共模板,不参与核算 | 直接用云商品库商品下单/库存 | 复制到 pms_ 后再进入业务 |
| category_id | 商品主分类,分类树可扩展商城展示分类 | B2B商城直接展示全部PMS分类 | B2B商城建议有展示分类配置与可见范围 |
| barcode | 扫码识别字段,可能一品多码 | 条码不唯一导致扫码错品 | 按业务场景控制唯一性和默认条码 |
6.1 后端接口对象命名建议
|----------|------------------------|--------------------|-------------------------|
| 接口场景 | Req命名 | Resp命名 | 说明 |
| 商品分页查询 | ReqPmsGoodsPage | RespPmsGoodsPage | 列表展示商品名称、分类、品牌、SKU数量、状态 |
| 商品保存 | ReqPmsGoodsSave | RespId | 保存SPU基本信息 |
| SKU保存 | ReqPmsGoodsSkuSave | RespId | 保存SKU规格组合 |
| 销售规格保存 | ReqPmsSkuUnitSave | RespId | 保存sku_unit_id销售单位 |
| 单位换算保存 | ReqPmsUnitRelationSave | RespBoolean | 维护换算关系 |
| 商品详情 | 无或ReqId | RespPmsGoodsDetail | 聚合SPU、SKU、销售单位、图片、条码 |
| 商品导入 | ReqPmsGoodsImport | RespImportResult | 返回成功数、失败数、错误文件 |
7. 当前设计风险与优化建议
|-----------------|-----------------------|------------------------------------------------------|---------|
| 问题 | 影响 | 优化建议 | 优先级 |
| 销售口径与库存口径混用 | 订单、库存、成本无法准确换算,后续对账困难 | 明确 sku_unit_id 仅销售使用,库存成本统一 product_sku_id + unit_id | 高 |
| 门店商品与公司商品混用 | POS/会员商城和B2B业务边界不清 | 门店销售使用 shop_goods_unit_id,门店商品表与公司商品表映射 | 高 |
| 单位换算规则不完整 | 采购、销售、库存多单位时容易出错 | 完善 pms_goods_unit_relation,增加用途标记和库存主单位校验 | 高 |
| 商品图片、条码、价格分散 | B2B商城展示、扫码、导入导出维护困难 | 建立统一商品媒体、条码、价格日志与缓存刷新机制 | 中 |
| 商品数据质量缺少检查 | 重复商品、缺单位、缺价格、缺图影响上线 | 增加数据质量看板和导入错误报告 | 中 |
| 云商品库与公司商品中心边界不清 | 可能误把模板库商品参与业务核算 | platform_ 只做模板,复制到 pms_ 后才可业务引用 | 高 |
8. 验收清单
|---------|---------------------------------------|
| 验收项 | 验收标准 |
| 商品分类 | 可新增、编辑、删除、启用、禁用、排序;同级分类名称不重复 |
| 商品建档 | 可维护SPU、SKU、销售规格单位、图片、条码、单位换算 |
| 单位换算 | 支持一个SKU多个销售/采购/库存单位,并能正确换算 |
| B2B销售 | 客户下单明细使用 sku_unit_id,客户价/价格组价可正确取价 |
| 采购库存 | 采购入库、库存、成本使用 product_sku_id + unit_id |
| 导入导出 | Excel导入可校验重复、缺失、错误并生成错误报告 |
| 数据质量 | 可检查缺图、缺价、缺单位、重复条码、未启用商品 |
| 缓存刷新 | 商品、分类、价格变更后能刷新B2B商城相关缓存 |
9. 结论
升鲜宝商品模块建议围绕"公司商品中心 pms_ + 销售规格 sku_unit_id + 采购库存 product_sku_id + unit_id + 门店商品独立口径"进行重构和规范。这样既能满足B2B订货商城按客户价格展示与下单,也能保证采购、库存、成本核算不被销售单位影响,同时为后续门店商品、云商品库、溯源、加工生产等模块留出清晰边界。