一、项目背景与目标
随着"一人食"经济和健康饮食理念的兴起,小份规格菜品需求日益增长。小象买菜系统需要实现小份规格标准化,以提升用户体验、减少食材浪费并优化供应链管理。
二、小份规格标准化核心要素
1. 规格定义标准化
- 统一小份菜品重量范围(如150-200g/份)
- 制定包装尺寸标准(如18cm×12cm餐盒)
- 明确价格计算规则(如原价×0.6-0.8系数)
2. 视觉呈现标准化
- 统一小份菜品图片拍摄角度和风格
- 规范菜品描述模板(含热量、主要食材等信息)
- 开发小份专属标签样式
三、系统架构设计
1. 数据库设计
```sql
-- 小份规格主表
CREATE TABLE small_portion_specs (
id INT PRIMARY KEY AUTO_INCREMENT,
dish_id INT NOT NULL, -- 关联完整菜品ID
weight_min DECIMAL(5,1), -- 最小重量(g)
weight_max DECIMAL(5,1), -- 最大重量(g)
price_coefficient DECIMAL(3,2),-- 价格系数
package_type VARCHAR(20), -- 包装类型
is_active BOOLEAN DEFAULT TRUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 小份规格与库存关联表
CREATE TABLE small_portion_inventory (
id INT PRIMARY KEY AUTO_INCREMENT,
spec_id INT NOT NULL, -- 关联规格ID
current_stock INT DEFAULT 0, -- 当前库存
daily_limit INT, -- 每日限量
last_restock TIMESTAMP -- 最后补货时间
);
```
2. 后端服务实现
```python
小份规格服务类示例
class SmallPortionService:
def __init__(self):
self.spec_repo = SmallPortionRepository()
self.inventory_repo = InventoryRepository()
def create_spec(self, dish_id, weight_range, price_coeff, package_type):
验证重量范围是否合理
if weight_range[1] - weight_range[0] < 30:
raise ValueError("小份规格重量范围过小")
spec = SmallPortionSpec(
dish_id=dish_id,
weight_min=weight_range[0],
weight_max=weight_range[1],
price_coefficient=price_coeff,
package_type=package_type
)
return self.spec_repo.save(spec)
def calculate_price(self, original_price, spec_id):
spec = self.spec_repo.find(spec_id)
return round(original_price * spec.price_coefficient, 2)
def check_availability(self, spec_id):
inventory = self.inventory_repo.find_by_spec(spec_id)
return inventory.current_stock > 0
```
3. 前端展示优化
1. 菜品列表页:
- 添加"小份"标签过滤选项
- 小份菜品显示特殊标识(如????图标)
- 鼠标悬停显示规格详情弹窗
2. 菜品详情页:
- 突出显示小份规格信息区
- 添加营养信息对比图表(小份vs标准份)
- 实现规格切换动画效果
三、关键功能实现
1. 智能规格推荐算法
```javascript
// 基于用户历史的规格推荐
function recommendPortionSize(userId) {
const userHistory = getUserOrderHistory(userId);
const recentOrders = userHistory.slice(-5); // 取最近5单
let smallPortionCount = 0;
recentOrders.forEach(order => {
order.items.forEach(item => {
if (item.isSmallPortion) smallPortionCount++;
});
});
const preference = smallPortionCount / (recentOrders.length * 3); // 假设每单平均3个菜品
if (preference > 0.6) return SMALL;
if (preference > 0.3) return SUGGEST_SMALL;
return STANDARD;
}
```
2. 动态价格计算
```java
// Java实现动态价格计算
public class PriceCalculator {
public static double calculateSmallPortionPrice(
double originalPrice,
double weightRatio,
double packagingCost
) {
// 基础价格 = 原价 * 重量比例 + 包装成本
double basePrice = originalPrice * weightRatio + packagingCost;
// 应用阶梯折扣(购买越多折扣越大)
if (weightRatio < 0.5) {
return basePrice * 1.1; // 极小份加价10%
} else if (weightRatio < 0.7) {
return basePrice * 0.95; // 小份折扣5%
} else {
return basePrice * 0.9; // 接近标准份折扣10%
}
}
}
```
3. 库存动态管理
```python
库存预警系统
def check_inventory_alerts():
specs = SmallPortionSpec.objects.all()
for spec in specs:
inventory = SmallPortionInventory.objects.get(spec_id=spec.id)
if inventory.current_stock < inventory.daily_limit * 0.2:
库存低于日销量20%时触发预警
send_alert(
f"小份规格{spec.id}库存紧张,剩余{inventory.current_stock}份"
)
自动补货建议
if inventory.current_stock < 50:
suggested_order = inventory.daily_limit * 3 - inventory.current_stock
create_purchase_suggestion(spec.id, suggested_order)
```
四、质量保障措施
1. 规格验证流程:
- 新增规格需经过营养师审核
- 实际重量抽检(每日随机抽查10%)
- 用户反馈闭环(设置规格满意度评分)
2. 包装测试标准:
- 密封性测试(模拟运输振动)
- 保温性能测试(冷链菜品)
- 开启便利性测试(老年用户组)
3. 数据监控看板:
- 小份菜品销量占比趋势
- 规格切换率(用户从小份切换到标准份的比例)
- 浪费率对比(小份vs标准份的退单率)
五、实施路线图
1. 第一阶段(1个月):
- 完成规格标准制定
- 开发基础规格管理后台
- 选择50个SKU进行试点
2. 第二阶段(2个月):
- 全面上线小份规格
- 开发智能推荐系统
- 建立用户反馈渠道
3. 第三阶段(持续):
- 优化算法模型
- 扩展至更多品类
- 建立供应商小份包装标准
六、预期效果
1. 用户侧:
- 满足单人用餐需求,减少食物浪费
- 价格更亲民,提升购买频次
- 营养摄入更精准可控
2. 运营侧:
- 库存周转率提升15-20%
- 客单价下降但订单量上升
- 用户复购率提升8-12%
3. 供应链侧:
- 采购计划更精准
- 包装成本优化
- 损耗率降低
通过该标准化实现方案,小象买菜系统能够有效满足细分市场需求,同时提升整体运营效率,实现商业价值与社会价值的双赢。