促销系统业务模型 - 2
POP
POP是Point of Purchase的简称,指线上线下一体化促销管控专用记录单。该单据用于存储已完成线下落地筹备的促销/会员全量约束信息。其核心是通过布尔字段 print_pop 标识是否生成/打印线下海报、地推物料、门店价签等线下实物物料,是系统执行同sku、同门店、时段互斥的核心依据。
如果双方任意一侧有POP数据且是否打印为真,则互斥,否则不互斥。
覆盖单门店、店群、城市级全域活动;只要活动覆盖范围内任意门店存在 print_pop=True 的 POP 记录,同 SKU、重叠时段的新活动直接拦截创建,避免线下多套冲突促销物料同时投放、线上活动随意修改导致门店执行混乱。
库存管理与订货规划
库存管理需要关注两个维度:我需要多少货,和已经卖了多少货。订货规划则需要关注应该订多少货,和实际订货的偏差是多少。一个完整的库存系统(无论用于促销活动还是供应链管理),都需要关心如下问题:
| 角色 | 核心关注 |
|---|---|
| 运营 | 备货策略如何定?(目标库存天数/安全水位)怎么根据大促波次调整配货权重? |
| 审核员 | 这个订货量合理吗?滞销或断货等风险可控吗? |
| 订货系统 | 建议的采购建议量是多少?怎么区分大仓补货和门店直供? |
| 供应商 | 生产多少? |
| 大仓 | 我要收供应商多少?每个门店发多少?在一个供应链系统中,如何对有保质期的商品及时配送? |
| 门店 | 今天要订多少货?能卖多少货?一共能卖多少货? |
| 交易系统 | 还能卖吗?超过限制了吗? |
| 消费者 | 我还能买吗? |
活动创建
运营创建促销活动时,需要关注如下信息
- 有哪些sku参与?促销规则是什么?
- 单个sku(无论是参与品还是优惠品)的最大库存总量应该是多少?
- 有没有限购规则?活动赠送是仅限一次还是可以反复送?活动参加有什么门槛?
随后活动进入审批系统。审核员主要关注如下信息
- 活动名字、描述等是否合理?
- 促销规则是否存在被薅羊毛的可能?
- 库存限制是否合理?
审批通过后,活动开始前,活动将进入“待生效”状态。此时和货物相关的角色开始供货
开始供货
订货系统按照运营给定的促销规则,给供应商、大仓、门店、交易系统指定规则
- 对每个供应商,告诉他们大仓可能回订多少货,需要他们在什么时候开始供应多少货
- 对每个大仓,告诉他们应该在什么时间段备足多少货,他们能联系哪些供应商,提供哪些sku,应该在什么时候发送到哪些门店
- 对每个门店,告诉他们谁给他们供货,应该在什么时间备好多少货
订货系统接收如下信息
- 供应商对应时间段的最大供货量信息
- 大仓对应的现存货物信息,实际对应的门店信息
- 门店的现存库存信息,门店实际执行的订货量
活动开始
一定时间后,活动进入“生效中”状态,先前的供货开始使用。消费者开始按照交易系统中的信息购买sku。消费者的限购额或限购数是一早由运营写好的。
由于这是一个促销管理系统,因此对库存管理也是点到即止,还没有涉及大仓中可能的竞态问题(生产-消费者问题),没有涉及保质期问题。
价格倒挂
因为某些规格的物品进行了促销活动,导致一些本应该比它更便宜的物品却更贵了,导致后者没人买,就产生了价格倒挂。一般来说,可以归纳至少但不限于以下几种情形
- 包装规格:小型包装规格(如300ml可乐)的物品做促销后,每毫升价格居然比大型包装规格(2L可乐)的还便宜,这样大可乐就没人买了。解决方案是小型包装规格的物品在做促销时,大型包装规格的物品也一定要做促销。
- 冰镇和常温:冰镇啤酒做促销后的价格比常温啤酒还便宜,常温啤酒就没人买了。解决方案是冰镇啤酒做促销时常温啤酒必须同步促销。
- 大米真空失空:真空大米做促销后的价格比正常大米还便宜,正常大米就没人买了。解决方案是真空大米做促销时正常大米也必须做促销。、
活动互斥叠加
活动互斥指同一商品在不同活动间不能同时存在。活动叠加指同一商品可同时参加不同的活动。
我们首先需要将活动分为三类
- 单品活动:一个活动中,每个商品之间没有关系的活动,如折扣、特价等;
- 多品活动:多个商品一起满足特定条件下的优惠活动,如指定商品满69元减10元等;
- 订单活动:整个购物车的商品一起作为门槛统计,且一单只能享受一个。
于是我们可以将互斥叠加规则如下描述
- 单品活动间不可叠加
叠加了就存在先后问题,不好算价 - 多品活动间不可叠加
和单品活动类似,不好酸钾 - 订单活动间可以叠加
均为整单金额,件数独立计算是否可以拿到优惠,因此可以叠加
为了进行互斥叠加的校验,一种可行的步骤为
- 先将可能互斥的活动全部拿出。可能互斥的活动满足以下特点
- 活动状态为实际参与的活动,详细一点就是
(生效中 OR 待生效) OR (草稿 and !(作废 OR 审核不通过(不可修改))) - 促销范围是不是一样的(单品和多品这些)
- 门店和城市是否重叠了
- 活动状态为实际参与的活动,详细一点就是
- 开始按照促销类型的不一样,开始查看是否重叠。除了上面提到的促销范围,还可能存在如下问题
- 买A赠A和一口价/秒杀价/折扣不能在一起。
- 买A赠B和买B赠A不能在一起
- ……
- 互斥校验完了,得到了活动列表,然后再查看这些活动之间能不能叠加
此处可能还存在许多情况,不一一列举。