一、功能概述
商品分装管理是生鲜电商系统中的重要模块,旨在解决以下核心问题:
- 支持不同规格包装的商品管理(如整箱、散装、小份装等)
- 实现分装商品与原始商品的库存联动
- 提供灵活的分装规则配置
- 支持分装过程中的损耗管理
二、核心功能设计
1. 分装商品基础管理
- 分装模板配置:定义分装比例关系(如1箱=10份,1份=500g)
- 多级分装支持:支持原材料→半成品→成品的分级分装
- 分装商品属性:设置分装后的保质期、存储条件等特殊属性
- 图片与描述:为分装商品单独配置展示信息
2. 库存联动机制
- 实时库存同步:
- 分装操作自动扣减原材料库存
- 成品入库自动增加可售库存
- 库存预警:
- 原材料库存不足时预警
- 分装成品库存低于阈值时触发补货
- 批次管理:支持先进先出(FIFO)的库存管理策略
3. 分装流程管理
- 分装任务创建:
- 手动创建分装任务
- 系统自动生成分装建议(基于销售预测)
- 分装执行:
- 扫码确认原材料
- 记录分装数量与损耗
- 打印分装标签(含条码、保质期等信息)
- 分装历史追溯:完整记录分装操作日志
4. 损耗管理
- 损耗类型定义:
- 正常损耗(如去皮、去叶)
- 异常损耗(如破损、变质)
- 损耗率统计:按商品、分装员、时间段等多维度分析
- 损耗预警:当损耗率超过阈值时提醒
5. 价格体系
- 分装定价策略:
- 按重量定价(如元/500g)
- 按份数定价(如9.9元/份)
- 组合定价(如买3份送1份)
- 动态调价:支持根据库存、保质期等因素自动调整价格
三、技术实现方案
1. 数据库设计
```
分装模板表(packing_template)
- id
- name
- base_goods_id (原材料商品ID)
- packing_rules (JSON格式存储分装比例)
- is_active
分装任务表(packing_task)
- id
- template_id
- operator_id
- planned_quantity
- actual_quantity
- waste_quantity
- waste_reason
- status
- create_time
- finish_time
分装商品库存表(packed_inventory)
- id
- goods_id (分装后商品ID)
- batch_no
- quantity
- expire_date
- packing_task_id (关联分装任务)
```
2. 核心业务逻辑
```python
class PackingService:
def create_packing_task(self, template_id, quantity):
1. 验证原材料库存是否充足
template = PackingTemplate.get(template_id)
required_raw = self._calculate_raw_needed(template, quantity)
if not InventoryService.check_stock(template.base_goods_id, required_raw):
raise Exception("原材料库存不足")
2. 创建分装任务
task = PackingTask.create(
template_id=template_id,
planned_quantity=quantity,
status="PENDING"
)
return task
def execute_packing(self, task_id, actual_quantity, waste_quantity, waste_reason):
task = PackingTask.get(task_id)
template = PackingTemplate.get(task.template_id)
1. 扣减原材料库存
required_raw = self._calculate_raw_needed(template, actual_quantity)
InventoryService.deduct_stock(template.base_goods_id, required_raw)
2. 记录损耗
if waste_quantity > 0:
WasteRecord.create(
task_id=task_id,
goods_id=template.base_goods_id,
quantity=waste_quantity,
reason=waste_reason
)
3. 生成分装商品库存
packed_goods_id = template.packed_goods_id
batch_no = self._generate_batch_no()
expire_date = self._calculate_expire_date(template)
PackedInventory.create(
goods_id=packed_goods_id,
batch_no=batch_no,
quantity=actual_quantity,
expire_date=expire_date,
packing_task_id=task_id
)
4. 更新任务状态
task.status = "COMPLETED"
task.actual_quantity = actual_quantity
task.waste_quantity = waste_quantity
task.save()
return task
```
3. 接口设计
- 内部接口:
- `/api/packing/templates` - 分装模板管理
- `/api/packing/tasks` - 分装任务管理
- `/api/packing/execute` - 执行分装操作
- 外部接口:
- 供仓储系统调用:获取待分装任务列表
- 供POS系统调用:查询分装商品库存
四、实施建议
1. 分阶段实施:
- 第一期:实现基础分装功能,支持简单比例分装
- 第二期:增加多级分装和损耗管理
- 第三期:完善价格体系和动态调价功能
2. 硬件集成:
- 配备电子秤和扫码枪,提高分装效率
- 考虑使用PDA设备进行移动分装操作
3. 培训计划:
- 制定分装操作SOP
- 对分装人员进行系统操作培训
- 定期进行技能考核
4. 数据分析:
- 监控分装效率指标(如人均分装量)
- 分析损耗率变化趋势
- 优化分装模板和流程
五、预期效益
1. 运营效率提升:
- 减少人工计算错误
- 加快分装作业速度
- 自动化库存同步
2. 成本控制:
- 精准管理原材料使用
- 降低异常损耗
- 优化包装材料使用
3. 用户体验改善:
- 提供更多规格选择
- 确保商品新鲜度
- 减少缺货情况
该方案可根据美团买菜的实际业务需求进行调整和扩展,建议先在部分仓库试点运行,验证效果后再全面推广。