Skip to content

商品属性

商品属性用于维护 SKU 规格维度,例如颜色、尺寸、容量等;属性值用于维护每个维度下的可选值,例如红色、蓝色、128G、256G。RuoYi Office 当前管理端将属性项和属性值放在同一页面左右联动维护。

本页基于 ProductPropertyControllerProductPropertyValueController、管理端 views/mall/product/property 和 API 类型整理。

模块边界

路径 / 接口
属性项控制器controller/admin/property/ProductPropertyController.java
属性值控制器controller/admin/property/ProductPropertyValueController.java
管理端页面apps/web-antd/src/views/mall/product/property
左侧组件modules/property-grid.vue
右侧组件modules/value-grid.vue
管理端 APIapps/web-antd/src/api/mall/product/property/index.ts
接口前缀/admin-api/product/property/admin-api/product/property/value

页面结构

页面左侧维护属性项,右侧根据当前选中的属性项加载属性值。searchPropertyId 是两侧联动的关键状态。

接口清单

对象功能接口权限
属性项创建POST /product/property/createproduct:property:create
属性项更新PUT /product/property/updateproduct:property:update
属性项删除DELETE /product/property/deleteproduct:property:delete
属性项分页GET /product/property/pageproduct:property:query
属性项精简列表GET /product/property/simple-list登录即可
属性值创建POST /product/property/value/createproduct:property:create
属性值更新PUT /product/property/value/updateproduct:property:update
属性值删除DELETE /product/property/value/deleteproduct:property:delete
属性值分页GET /product/property/value/pageproduct:property:query
属性值精简列表GET /product/property/value/simple-list登录即可

精简列表通常用于商品表单中选择规格,而分页接口用于属性维护页面。

和 SKU 的关系

商品 SKU 中的 properties 数组保存属性项和属性值快照:

ts
{
  propertyId: number;
  propertyName: string;
  valueId: number;
  valueName: string;
}

这意味着商品规格不仅依赖属性 ID,也依赖当时的属性名称和值名称。维护属性时要注意:修改属性名称可能影响后续商品编辑体验,但历史订单通常应继续使用订单项快照。

维护建议

  1. 属性命名尽量通用,例如“颜色”“尺寸”“容量”,避免为单个商品创建过多重复属性。
  2. 删除属性前先确认是否被 SKU 使用,避免商品编辑时规格无法回显。
  3. 属性值排序和命名要符合前台展示习惯。
  4. 多租户场景下要确认属性数据属于当前租户,不要跨租户复用。
  5. 商品导入或批量维护时,先准备属性项和属性值,再生成 SKU。

排查清单

现象优先检查
右侧属性值为空是否已选中左侧属性项,propertyId 是否传入
商品规格无法选择属性项/属性值是否存在,精简列表接口是否正常
SKU 回显异常SKU properties 中的属性 ID/值 ID 是否仍有效
删除属性失败是否存在业务引用或权限不足
不同商品规格混乱是否重复创建近似属性,命名是否统一

下一步

维护好属性后,可以在 商品 SPU 与 SKU 中组合 SKU;商品售出后的评价管理请阅读 商品评价

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版