促销模型小记

不管是B2B,C2C,在有交易的电子商务过程当中,不可避免的出现促销这样的事,一般常见的促销包括打折优惠,买多少减多少,买多少送几样等等,甚至是订单满多少钱可以免邮什么的,距离几公里内可以免邮什么的,五花八门,不易穷举。针对这样的情况,做了个小型的促销模型。

下面就直接开始撸模型吧。

1、策略

我们需要一个基础的策略对象,比如买3送1,买5送3等这样的一个具体行为;这个策略对象有一些基本属性,包括策略的名字如买3送1,还要有个策略的计算方法,这个是核心,【坑】,稍后再说。再加上其他主键什么的大致样子如下

策略

2、策略组

我们知道,在一次促销活动中,常见的一种现象是买3送1,买5送2;或者买100送10,买200送25这样的情况;那么我们如果购买5件,是不是就同时这两个优惠都起作用呢?显示不是,这样的活动其实是一种排他性的,同时也有优先级,比如满足买5送3的优先级就应该高于买2送1,否则买3送1就没有意义了。一旦满足高级别的促销,优先处理,否则继续寻找低级别的促销,直到结束。
这里把策略组和策略组的细节分为两个部分,分别表示策略组的基本熟悉和策略组组成部分


策略组

有了策略组基本定义,可以继续完善对应的商品和策略之间的关联了

3、商品与策略组

商品不再与具体策略关联,而是和策略组进行,这样方便商品展示的时候显示该商品的促销描述,比如买5送3,买2送1,而这两个具体促销在促销表是两个行记录,需要处理才可以方便展现;当然,商品假设可能有多个促销策略,那么策略组之间也包括优先级,但某种程度上是并集效果,如买5送3同时又买200减10,假设买200减10优先级高,那么先处理,之后再计算买5送3,但一般商家不会这么干滴。


商品与策略组

4、全局与策略

全局促销是针对某个会员对某次购买行为这样的整体促销,如订单满多少钱免邮什么的,会员打几折等,这些内容一般最后处理,在商品与策略组计算完毕之后总订单进行,如果有需要,也可以提前处理,看具体业务情况;这样的全局比较复杂,内容是包罗万象,比如配送距离3km免邮啦,各种会员等级折扣不同,订单满X元减Y元等等。为了方便处理,这里所有的情况统一为后面的策略处理对象。


全局策略

5、策略处理

回到一开始的一个坑,这里填下
策略公式可以是一段JSON对象,也可以是一个脚本,这里先是一个JSON对象来做个演示,比如买3送1这个具体的促销行为,转换为

{'buyCount':'3','giftCount':'1'}

这里的buyCount和giftCount都是预先准备好的,需要约束;算法以此为蓝本,传入一堆入参,进行处理,比如某个商品作为例子,该商品入参形式

{'goodsID':'1000000000','goodsPrice':'12.5','count':'3','allPrice':'37.5'}

该算法出来结果是

{'new':'T','goodsID':'1000000000','goodsPrice':'12.5','giftCount':'1','lastPrice':'0'}

其中new的属性表示在商品列表新增一个条目,作为赠品出现
如果是优惠价格,比如优惠促销行为是:

{'buyMoney':'200','reduceCost':'10'}

入参修改为

{'goodsID':'1000000000','goodsPrice':'125','count':'3','allPrice':'375'}

最终计算出来的结果是

{'new':'F','goodsID':'1000000000','goodsPrice':'125','reduCost':'10','lastPrice':'365'}

6、策略对象封装

策略处理更加灵活的方式采用动态脚本进行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在前面: 最近工作压力不小,不想输得很惨就必须自己push自己。继续钻研促销系统设计 不定期摘读一些对自己有用的...
    Heenor阅读 4,837评论 2 11
  • 我约了我的好朋友去泰国旅游,偶遇了一位神秘的老婆婆,她和一个女孩在一起,其实这个女孩是我的妹妹,但是我不知情,我只...
    度娘和坑爹阅读 217评论 0 0
  • 上周看了北京电视台《老师请回答》这个节目,真切地感受到了,每一个孩子的问题背后其实都反映了一个家庭的问题,都可以一...
    fly_whale阅读 832评论 2 0
  • 《暖爱》/丁立梅著/金城出版社 “暖”是个极好的字。舌头轻轻翘起,从唇齿间,呵气样的,轻轻凸出,它便落地生花,朵朵...
    木曰曲直阅读 3,510评论 0 1
  • 1、什么是tensorboard? Tensorboard是Tensorflow的一个可视化工具,目的是为了更好地...
    Jesse_jia阅读 387评论 0 0