一、模块概述
价格管理模块是生鲜电商系统的核心功能之一,负责处理商品定价、促销活动、价格调整等业务逻辑。针对生鲜行业特点,该模块需要支持动态定价、分时定价、区域定价等特殊需求。
二、核心功能设计
1. 基础价格管理
- 商品基准价设置:支持按SKU设置基础采购价、销售价、会员价
- 价格有效期管理:可设置价格生效和失效时间
- 价格单位管理:支持按重量(kg/g)、件、箱等不同单位定价
- 多级价格体系:支持不同采购量对应不同阶梯价格
2. 动态定价策略
- 成本加成定价:根据采购成本+毛利率自动计算销售价
- 市场参考定价:对接第三方价格数据,自动调整竞品价格
- 智能调价引擎:基于供需关系、库存周转率等算法动态调价
- 分时定价:支持按时间段设置不同价格(如早晚市价格)
3. 促销活动管理
- 满减活动:满X元减Y元
- 折扣活动:按百分比或固定金额折扣
- 买赠活动:买A送B
- 限时秒杀:特定时间段超低价格
- 组合套餐:多商品组合优惠定价
4. 区域价格管理
- 城市/区域定价:支持不同配送区域设置不同价格
- 仓库定价:不同仓储中心对应不同成本价格
- 客户群体定价:企业客户、VIP客户等特殊定价
三、技术实现方案
1. 数据库设计
```sql
-- 商品价格主表
CREATE TABLE product_price (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
product_sku VARCHAR(50) NOT NULL,
base_price DECIMAL(10,2) NOT NULL,
market_price DECIMAL(10,2),
member_price DECIMAL(10,2),
cost_price DECIMAL(10,2),
price_type TINYINT COMMENT 1-基准价 2-促销价 3-会员价,
status TINYINT DEFAULT 1 COMMENT 0-无效 1-有效,
create_time DATETIME,
update_time DATETIME
);
-- 价格策略表
CREATE TABLE price_strategy (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
strategy_name VARCHAR(100) NOT NULL,
strategy_type TINYINT NOT NULL COMMENT 1-成本加成 2-市场参考 3-智能调价,
params TEXT COMMENT 策略参数JSON,
status TINYINT DEFAULT 1,
create_time DATETIME
);
-- 促销活动表
CREATE TABLE promotion_activity (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
activity_name VARCHAR(100) NOT NULL,
activity_type TINYINT NOT NULL COMMENT 1-满减 2-折扣 3-买赠 4-秒杀,
start_time DATETIME NOT NULL,
end_time DATETIME NOT NULL,
status TINYINT DEFAULT 0 COMMENT 0-未开始 1-进行中 2-已结束,
create_time DATETIME
);
-- 促销规则表
CREATE TABLE promotion_rule (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
activity_id BIGINT NOT NULL,
rule_type TINYINT NOT NULL COMMENT 1-商品级 2-品类级 3-全店级,
rule_condition TEXT COMMENT 规则条件JSON,
discount_value DECIMAL(10,2),
create_time DATETIME
);
```
2. 核心类设计(Java示例)
```java
// 价格策略接口
public interface PricingStrategy {
BigDecimal calculatePrice(Product product, PricingContext context);
}
// 成本加成策略实现
public class CostPlusPricingStrategy implements PricingStrategy {
private BigDecimal markupRate;
@Override
public BigDecimal calculatePrice(Product product, PricingContext context) {
return product.getCostPrice().multiply(BigDecimal.ONE.add(markupRate));
}
}
// 价格计算服务
public class PriceCalculationService {
private Map strategyMap;
public BigDecimal calculateFinalPrice(Product product, PricingContext context) {
// 1. 检查是否有适用促销
Promotion promotion = promotionService.findApplicablePromotion(product, context);
if (promotion != null) {
return promotion.calculateDiscountedPrice(product);
}
// 2. 应用定价策略
PricingStrategy strategy = selectStrategy(product, context);
return strategy.calculatePrice(product, context);
}
private PricingStrategy selectStrategy(Product product, PricingContext context) {
// 根据商品属性、上下文等选择合适策略
// ...
}
}
```
3. 关键业务逻辑
1. 价格计算流程:
- 检查是否有适用促销活动
- 如果有促销,应用促销价格
- 如果没有促销,应用定价策略计算价格
- 考虑区域、客户类型等修正因子
- 返回最终价格
2. 价格更新机制:
- 定时任务:每日同步采购成本更新销售价
- 实时触发:采购价变更时触发价格重算
- 手动调整:运营人员手动修改价格
3. 价格缓存策略:
- 使用Redis缓存商品价格,减少数据库查询
- 设置合理的缓存过期时间
- 实现缓存更新通知机制
四、生鲜行业特殊处理
1. 损耗率考虑:
- 在定价时自动加入预计损耗成本
- 不同品类设置不同损耗系数
2. 新鲜度定价:
- 根据商品上架时间动态调整价格
- 临近保质期自动降价
3. 季节性定价:
- 支持按季节设置不同价格系数
- 自动识别应季商品调整价格
4. 批量采购定价:
- 支持按采购量设置阶梯价格
- 自动计算最优采购量建议
五、接口设计
1. 内部服务接口
- `/api/price/calculate` - 价格计算接口
- `/api/price/update` - 价格更新接口
- `/api/promotion/create` - 创建促销活动
- `/api/price/history` - 查询价格历史
2. 外部对接接口
- 采购系统价格同步接口
- 第三方价格数据对接接口
- 线下门店价格同步接口
六、测试要点
1. 功能测试:
- 基准价设置与查询
- 促销活动创建与应用
- 阶梯价格计算
- 区域价格差异验证
2. 性能测试:
- 高并发价格查询
- 批量价格更新
- 促销活动生效时的系统负载
3. 异常测试:
- 价格计算为负数的处理
- 促销时间重叠的处理
- 价格更新失败回滚机制
七、部署与监控
1. 部署方案:
- 价格计算服务独立部署,避免影响主交易流程
- 使用消息队列处理价格变更通知
2. 监控指标:
- 价格计算响应时间
- 促销活动生效成功率
- 价格同步延迟
3. 告警机制:
- 价格异常波动告警
- 促销活动未生效告警
- 价格计算失败告警
八、扩展性考虑
1. 支持多货币:为跨境生鲜业务预留扩展
2. 多组织架构:支持集团化多子公司价格管理
3. AI定价集成:预留机器学习模型接入接口
4. 价格预测:基于历史数据的价格走势预测功能
通过以上设计,美菜生鲜系统的价格管理模块将能够灵活应对生鲜行业的复杂定价需求,同时保证系统的高可用性和性能。