一、系统设计:多规格商品模型
1. 商品基础信息
- 包含商品ID、名称、分类、品牌、主图、详情描述等基础属性。
- 关联规格模板(如“重量”“包装”“口味”等),支持动态扩展。
2. 规格维度定义
- 规格类型:单选(如“500g/1kg”)、多选(如“辣度:微辣/中辣/特辣”)、区间(如“数量:1-10件”)。
- 规格值:每个规格类型下的具体选项(如“500g”对应价格¥10,“1kg”对应价格¥18)。
- 规格组合:通过笛卡尔积生成所有可能的规格组合(如“500g+微辣”“1kg+特辣”)。
3. SKU管理
- 每个规格组合对应唯一SKU,包含独立库存、价格、条码、上下架状态。
- 支持批量导入/导出SKU数据,减少人工操作错误。
二、技术实现:数据库与接口设计
1. 数据库表结构
- 商品表(goods):存储商品基础信息。
- 规格模板表(spec_template):定义规格类型(如“重量”“口味”)。
- 规格值表(spec_value):存储具体规格值(如“500g”“微辣”)。
- 商品规格关联表(goods_spec):关联商品与规格模板。
- SKU表(sku):存储规格组合、价格、库存等。
2. API接口设计
- 获取商品规格:根据商品ID返回所有规格类型及可选值。
- 生成SKU列表:前端选择规格后,后端计算对应SKU信息(价格、库存)。
- 库存同步:下单时扣减对应SKU库存,超卖时触发预警或拦截。
3. 前端交互优化
- 规格选择器:支持单选/多选、级联选择(如先选重量再选口味)。
- 动态价格显示:用户选择规格后,实时更新价格和库存状态。
- 缺货提示:当某规格库存为0时,禁用选择并显示“补货中”。
三、业务逻辑:核心功能实现
1. 规格组合生成
- 后端根据规格模板自动生成所有可能的SKU组合,避免手动创建遗漏。
- 示例:商品“苹果”有规格“重量(500g/1kg)”和“产地(山东/陕西)”,生成4个SKU。
2. 价格与库存管理
- 不同规格可设置独立价格(如进口苹果比国产贵20%)。
- 库存按SKU维度管理,支持全局库存预警(如总库存低于10%时通知补货)。
3. 搜索与筛选优化
- 用户可通过规格筛选商品(如“搜索1kg以上的苹果”)。
- 搜索结果按规格分组展示,提升查找效率。
4. 促销活动支持
- 针对特定规格设置折扣(如“500g苹果买二送一”)。
- 满减活动按SKU金额计算,避免规格混淆导致优惠错误。
四、用户体验:细节优化
1. 规格展示清晰化
- 在商品详情页用表格或图标展示规格差异(如“500g:¥10/1kg:¥18”)。
- 支持规格对比功能,帮助用户决策。
2. 购物车兼容性
- 允许添加不同规格的同一商品到购物车(如“500g苹果×2”和“1kg苹果×1”)。
- 购物车页显示规格详情,避免用户混淆。
3. 订单页信息完整
- 订单详情中明确显示所购商品的规格、单价和数量。
- 售后时按SKU维度处理退换货,减少纠纷。
五、扩展功能:提升运营效率
1. 规格模板复用
- 商家可保存常用规格模板(如“水果类:重量+产地”),快速应用到新商品。
2. 批量操作工具
- 支持批量修改规格价格、库存或上下架状态。
- 导入Excel模板生成SKU,减少手动输入错误。
3. 数据分析支持
- 统计各规格的销售占比、转化率,帮助商家优化规格策略。
- 识别滞销规格,及时调整价格或下架。
六、技术挑战与解决方案
1. 性能优化
- 规格组合数量可能指数级增长(如10个规格类型,每个有5个值,生成近10万组合)。
- 解决方案:按需生成SKU(用户选择前不预计算),或使用缓存加速查询。
2. 数据一致性
- 确保规格修改后,所有关联SKU信息同步更新。
- 解决方案:使用事务处理,或通过消息队列异步更新。
3. 移动端适配
- 小屏幕下规格选择需简洁,避免层级过深。
- 解决方案:采用滑动选择器、图片+文字结合展示规格。
总结
美团买菜系统通过多规格商品支持,实现了以下价值:
- 用户侧:满足个性化需求,提升购买决策效率。
- 商家侧:灵活管理库存和价格,优化运营策略。
- 平台侧:增强商品丰富度,提升竞争力。
实际开发中需结合业务场景,平衡功能复杂度与用户体验,通过迭代优化逐步完善。