电商促销业务逻辑盘根错节?试试脱离场景,从系统计算逻辑上思考

24 评论 26806 浏览 212 收藏 11 分钟

本文将营销活动区分为三种类型:改商品价格、改商品小计价格、改订单价格,因为无论什么营销归根结底都是可以描述成改价格。

如果你整体设计过电商网站的促销功能,整理过相关的促销逻辑(例如,针对商品或订单的满减、满赠、折扣、优惠券等等),那么你一定清楚:如果对这些促销类型进行任意组合,将会有非常多样化的场景,这对于系统来说极易发生重叠甚至冲突的情况,那时你是如何处理这些逻辑关系的,又是如何做到在满足业务/运营需求的同时,最大化的降低系统判断逻辑的?如果你所设计的只是促销系统中的某个功能模块,会很容易陷入逻辑死循环,因为只有从整体上设计促销逻辑才能保证各子系统流程顺畅流转。笔者尝试脱离实际促销场景,抽象出一条行之有效的促销整体原则。

用一句话概括这条原则:同类型通过实体进行互斥、不同类型可以相互叠加。这里说明实体是商品或者订单。

为什么会有这么一句话?我们来看下下图:

电商系统订单金额计算流程

促销计算逻辑

上图展示了电商系统中,一笔订单导入系统后,它的价格是如何计算出来的。为什么要说这个呢?

电商所谓营销,归根结底都是订单金额的变化;如果我们清楚的知道订单金额的计算流程是怎样的,那么我们只需要顺着系统的计算流程做促销,就不用担心各种促销类型之间产生重叠或者冲突的情况了。

当我们知道这个关系后,就可以将营销活动区分为三种类型:改商品价格、改商品小计价格、改订单价格,因为无论什么营销归根结底都是可以描述成改价格。

第一种类型:修改商品价格

一笔订单被提交时,系统必然首先查找出订单中的所有商品,并判断此商品是否具备特殊价格(促销价格)。如果没有,则取正常的商品零售价;如果有,则取当前商品所处促销活动价格。

商品价格计算流程

那么好了,我们便可以把所有涉及更改商品价格的促销活动全部归到此类,例如现价段非常流行的促销活动玩法:秒杀。

秒杀是一种限时类的商品低价促销活动类型。用较低的价格和较短的活动时间,以营造抢购氛围的一种营销玩法。这种活动,在一个用户看来是一个非常新颖好玩的活动,但是对于一个PM来讲,它无非就是一个修改商品价格的促销类型而已,注意我对秒杀活动的定义:限时类的商品低价促销活动类型,核心是商品低价,这直接决定了它是一种修改商品价格的促销活动,也就是第一种类型

其他关于修改价格的营销类型,如:限时折扣,降价拍、团购、拼团等 都可以归类到这一方式

这类型的促销活动,遵循促销核心原则:同类型通过实体进行互斥、不同类型可以相互叠加。此处的实体就是商品。所以这条原则也可以表述为:不同商品可以参与相同的(秒杀、拼团、限时折扣等修改价格)活动;但是相同商品进行互斥,就是说,同一个商品不可以同时参与同一类型的活动,例如:同一个SKU不可以同时参与(秒杀、拼团、限时折扣等修改价格)活动。

第二种类型:修改商品小计

当系统完成了对商品价格的查找之后,就需要将查找出的商品价格分别乘以订单中的每个商品数量,从而计算出每个商品的小计金额。当系统计算出所有商品的小计金额之后,这时候,就可以介入一些营销活动,例如指定商品的:满减、满赠、折扣等。

商品小计金额计算流程

那么好了,我们又可以将指定商品的:满减、满赠、折扣 归类为修改商品小计的营销活动

例如:全场母婴用品,满100减10,满200减30;就是典型的第二种类型营销活动,因为它是针对某种/某类 商品的小计金额来匹配满足那种类型的活动,并在满足活动的商品小计金额基础上进行减、赠、折。

那么我们再次用促销核心规则来捋一捋它的处理逻辑:同类型通过实体进行互斥、不同类型可以相互叠加。此处的实体是商品,所以这对第二种类型的促销活动,我们就可以得出以下结论:

同一个商品,不能同时参与指定商品的(满减、满赠、折扣 等)活动,不同的商品没有限制。

例如:SKUA 不能同时参加满减、满赠、折扣;但是SKUA 参与满减,SKUB参与满赠 这种是被允许的。

我们注意到第二条原则:不同类型可以相互叠加,也就是说,同一个商品虽然不能同时参与同种类型的活动,但是却可以同时参与不同类型的促销活动,例如:SKUA 可以同时参与限时折扣和指定SKUA的满减活动!!!,也就是我们常说的折上折。我们需要做的仅仅是区分促销是属于哪种类型而已

第三种类型:修改订单金额

当系统完成了对商品小计金额的计算之后,就会将所有优惠后的商品小计金额进行叠加,生成一个初步的订单总金额,当系统得到初步的订单总金额之后,又可以介入一些营销活动,例如指定订单的:满减、满赠、折扣和优惠券等。

订单金额计算

那么好了,我们又可以将指定订单类的:满减、满赠、折扣归类为第三种:修改订单金额的营销活动。例如:京东招牌活动全场满88包邮;就是典型的第三种类型营销活动,因为它是针对订单的总金额来匹配满足那种类型的活动,并在满足活动的订单金额基础上进行减、赠、折、优惠券和包邮等。

那么我们再次用促销核心规则来捋一捋它的处理逻辑:同类型通过实体进行互斥、不同类型可以相互叠加,此处的实体就是订单。

所以,针对第三种类型的促销活动,我们就可以得出以下结论:同一笔订单不能同时参与针对订单的:满减、满赠、折扣的活动。

总的来说

之所以会有:同类型通过实体进行互斥、不同类型可以相互叠加,这条原则,是因为它高度遵循了系统计算订单金额的流程—在计算同一类型的促销活动时,如果存在多个相同的活动,除非你人为的告诉系统(对于平台电商,例如京东、天猫,存在多商家活动,每个运营负责的店铺/类目/品牌不同,仍然可能存在不同商品参与多个促销活动的情况,这时候就需要告诉系统应该选择哪个促销规则?

  1. 让用户自己选;
  2. 系统自动定义优先级 或者其他,最终都必须只有一个促销活动),优先计算哪条规则,否则,系统就无法进行下去,当你帮助系统排除了这些冲突,问题自然迎刃而解。

所以,当你脑洞大开希望实现一个促销功能时,首先应该判断是哪种类型(改商品价格、改商品小计价格还是改订单价格),再根据类型通过实体(商品或者订单)去与其他促销活动区别开,这样就可以玩转各种促销活动了。

说明:这里仅讨论系统层面的电商营销逻辑,保证系统流程上不发生冲突,没有考虑实际的业务场景,但是无论什么业务场景都应该在上述原则范围内行事,不能逾越。比如:针对商品的活动,你可以限制拼团的商品(第一类促销)不能参加指定商品满减(第二类促销),即:在逻辑上允许叠加,但是业务场景上可以限制;但是绝不可能同时使某个商品即参与拼团活动,又参与秒杀活动。这在业务逻辑上就是不被允许的,也就是:可以在上述原则范围内行事,但是不能逾越这个原则。

 

本文由 @菜哥 原创发布于人人都是产品经理。未经许可,禁止转载。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 所以 店铺的满减券 可以和 平台的满减券叠加

    来自湖南 回复
  2. 受教了,文章很不错。
    不过有个小疑问:文中的【同一个商品,不能同时参与指定商品的(满减、满赠、折扣 等)活动,不同的商品没有限制。】这句话里的【折扣】应该指的是【满折】吧。【折扣】看起来像是商品价格的促销。

    来自湖南 回复
  3. 来自北京 回复
  4. 有自己深度思考,点赞

    回复
  5. 正在做这块,茫茫人海中看到了曙光

    来自北京 回复
  6. 你好,最近也在做订单费用结算这里,在没看到你的文章前我的整体思路和你大体是一致的,但是我现在遇到几个问题想请教一下:
    1、现在很多平台有付费会员卡,那这个会员卡应该是第三层级的吧?而且优惠券也应该算第三层级的吧?
    2、如果把所有费用结算分为三层,那么下一层营销活动的门槛和优惠均摊比例,是上一活动优惠后的价格么?如果这样,同一层会有活动之间若有共存(满减、满赠),他俩之间是不互相影响的,都是看第一层了?会员卡和优惠券的使用没有先后之分,优惠费用的分摊基础都是第二层优惠后的价格?
    3、单品优惠券和全品优惠券是否应该分别算为第二层和第三层?
    盼答复和交流,谢谢~

    来自浙江 回复
  7. 分类的确实不错

    来自湖北 回复
  8. 那运费的计算在哪里?

    来自广东 回复
  9. 第二和第三种类型里面都有满减、满赠、折扣,请教下这个是如何区分的呢?另外加价购、套餐属于哪种类型呢?

    来自北京 回复
  10. 全场类型的优惠,如全场满减,但是有不计入消费额的商品。再如全场打折,但是有不打折的商品,属于哪一类呢

    来自浙江 回复
    1. 第一类,改商品价格,因为查询商品价格的时候就要去判断有没有改价活动,全场类满减、打折的优惠就是改价活动

      来自广东 回复
  11. 我觉得即便是同一类型的促销活动,统一商品也可以同时参与,例如:商品A参与了满100减50,也参与了满100赠商品B,当客户下了100元商品A时,可以给用户优惠50,同时也给赠品B。

    来自北京 回复
    1. 表示认同
      此外,合适的优惠券是否能叠加使用呢。例如:商品A参与了满100减50;也在之前的活动中领取到了该商品适用的优惠券,满80减5块。应该也能叠加使用吧?

      来自广东 回复
    2. 说明下:这个规则并不适用所有场景,但是在大多数情况下具备一定的通用性。
      因为按照这个规则来处理促销业务逻辑,可以让后端代码逻辑清晰明了,而不是每遇到新一种促销类型就要推翻之前的逻辑,这会给后端增加很重的工作量甚至是无效工作。
      回到您提到的这个问题,您可能并没有完全理解或者看完整篇文章,文章的意思是:同一促销类型,不可叠加,而您提到的是,满减和满赠,这个在文章中是归为不同类型的促销的,请仔细看完文章

      PS: 再回答您提到的满减和满赠的问题,您可以思考一下,加入A参与了满100减50,那么这个用户还能叠加100赠商品B吗?
      因为,A参与满减活动以后,订单金额实际只有50了(假设订单只有A商品),那么它还满足满100赠商品B吗?

      来自广东 回复
    3. 第一句话:同一个商品,不能同时参与指定商品的(满减、满赠、折扣 等)活动,不同的商品没有限制。第二句话:例如:SKUA 可以同时参与限时折扣和指定SKUA的满减活动!!!,也就是我们常说的折上折。我们需要做的仅仅是区分促销是属于哪种类型而已。。。。。。感觉矛盾

      来自北京 回复
    4. 过了两年评论不知道还能否得到回复,想问一下,如果一个商品 100 元,那么满 100 减 50 和满 100 赠 B,是否可以设定如果权重满减高于满赠,那么必须二选一,如果满赠高于或等于满减,那么可同时享受?满减高于满赠时等于先计算满减后的价格,满赠高于满减时则以原价计算。

      来自广东 回复
    5. 感觉脱离业务场景了,作者的原则就是为了不能这个情况出现:【1个商品不能同时满100减50,又满100赠B】。一般来说,如果在配置的时候不能做校验,导致了活动配置时出现了【同类型优惠实体有多个活动】,此时一般是按照优惠最大的方式选择一个营促销工具

      来自湖南 回复
  12. 求大神微信

    回复
  13. 赠品促销也可以采用一样的逻辑吧?

    来自湖北 回复
  14. 从另外一个角度剖析促销活动的玩法,剖析的很详细,学习了

    来自北京 回复
  15. 流程图画的不错

    回复
  16. 高屋建瓴,醍醐灌顶,感谢分享~

    来自湖北 回复
  17. 将复杂场景抽象化,厉害

    来自广东 回复