一、技术架构设计
1. 商品模型分层
- 基础商品层:定义商品核心属性(如名称、分类、品牌),作为所有规格的公共信息载体。
- 规格属性层:通过动态字段配置支持多维度规格(如重量、包装、产地),例如:
- 苹果:规格1(3斤装,产地山东)、规格2(5斤装,产地新疆)
- 牛奶:规格1(250ml×6盒)、规格2(1L×2盒)
- 库存与价格层:每个规格独立管理库存、成本价、售价及促销策略,避免规格间库存冲突。
2. 数据库优化
- 采用EAV(Entity-Attribute-Value)模型或JSON字段存储规格属性,适应生鲜商品规格动态变化的需求。
- 通过索引优化加速规格查询,例如为商品ID+规格组合建立联合索引。
3. 前后端分离
- 前端:使用Vue/React动态渲染规格选择组件(如单选、多选、步进器),支持图片切换(不同规格展示不同商品图)。
- 后端:通过RESTful API或GraphQL提供规格数据,支持按规格筛选商品列表。
二、业务逻辑实现
1. 规格关联与依赖
- 互斥规则:禁止用户同时选择冲突规格(如“散装”与“礼盒装”)。
- 组合推荐:基于用户历史行为推荐高频搭配规格(如“买3斤苹果送1斤橙子”)。
- 动态定价:根据规格成本自动计算价格(如大规格单价更低)。
2. 库存管理
- 实时同步:用户下单后立即扣减对应规格库存,避免超卖。
- 预售支持:对缺货规格开启预售,记录用户需求并触发补货流程。
- 批次管理:生鲜商品需关联批次号,支持按规格追溯源头(如“这箱苹果来自哪个农场”)。
3. 供应链协同
- 采购预测:分析各规格销售数据,优化采购计划(如重点采购畅销规格)。
- 分拣效率:通过规格编码指导分拣员快速定位商品(如“SKU-A-001”对应3斤装苹果)。
三、用户体验优化
1. 规格展示清晰化
- 视觉区分:用颜色、图标或标签突出规格差异(如“限时特惠”“大份量更划算”)。
- 对比工具:提供规格参数表(如重量、保质期、单价),帮助用户决策。
2. 购物车智能处理
- 合并逻辑:相同商品不同规格视为独立项,避免自动合并导致价格计算错误。
- 规格切换:支持在购物车中直接修改规格,无需返回商品页。
3. 售后流程适配
- 退换货规则:按规格制定退换政策(如“生鲜商品拆封后不可退”)。
- 缺货补偿:若某规格缺货,自动推荐替代规格并给予优惠券。
四、典型场景示例
- 场景1:用户购买车厘子
系统展示规格选项:
- 2斤装(J级,原价99元,促销价89元)
- 5斤装(JJ级,原价199元,会员价179元)
用户选择5斤装后,购物车显示总价、单价及预计送达时间。
- 场景2:商家上架新规格
运营人员在后台配置:
- 新增规格“10斤装(JJJ级)”
- 设置库存100件、成本价300元、售价399元
- 关联促销活动“满299减30”
五、技术挑战与解决方案
- 挑战1:规格数据膨胀
- 方案:采用分库分表策略,按商品ID哈希分片存储规格数据。
- 挑战2:高并发扣减库存
- 方案:使用Redis分布式锁+Lua脚本保证原子性操作。
- 挑战3:规格组合爆炸
- 方案:限制规格维度数量(如最多5个属性),或通过AI算法自动生成高频组合。
六、行业实践参考
- 美团买菜:通过“规格热力图”展示用户偏好,动态调整规格排序。
- 盒马鲜生:支持“规格订阅”,用户可设置缺货提醒并自动补货。
- 每日优鲜:引入“规格试吃装”,降低用户尝试新规格的决策成本。
通过以上设计,叮咚买菜的多规格商品系统既能满足生鲜行业“非标品、高损耗、快周转”的特性,又能通过精细化运营提升用户复购率和平台利润。实际开发中需结合具体业务场景,在灵活性与性能间找到平衡点。