推荐最优优惠券组合

最近在开发商城项目,其中有一个需求是用户下单时如何选择优惠券的问题。现在有时间总结下三种优惠券组合方式。

先假设一个场景:
当前有三个商品,分别是商品A\B\C,三个优惠券(假设优惠力度相同),分别是优惠券1\2\3,其中优惠券1可用于商品A\B,优惠券2可用于商品C,优惠券3可用于商品B\C,现在购物车中有A\B\C三个商品,并且三个优惠券也都满足使用门槛。

  1. 组合方式1(有利于商城用户)
    首先我们先根据商品进行分层去构造一个优惠券树,因为存在三个商品,所以加上根节点,这棵优惠券树最多可分4层。
    优惠券树
    优惠券树的每一层代表一种商品使用优惠券的情况,第一层代表商品A,第二次代表商品B,第三次代表商品C,通过遍历优惠券树我们可以发现,最优的组合应该是商品A使用优惠券1,商品B使用优惠券2,商品C使用优惠券3。
  2. 组合方式2(有利于商城店主)
    一个订单只能使用一张优惠券,则默认给出满足条件的最大面值优惠券即可。
  3. 组合方式3(兼顾商城店主、用户)
    我们还是去构造一个树,不过这次构造的是一棵商品数,根据优惠券进行分层,同理这棵树最多也是4层。
    在这里插入图片描述
    商品树的每一层代表一种优惠券可用在哪些商品的情况,第一层代表优惠券1,可用于商品A/B,第二次代表优惠券2,可用于商品C,第三层代表优惠券3,可用于商品B/C。通过遍历商品树去找到最优组合。

第二种组合方式是最简单粗暴的方式,直接不允许优惠券叠加使用。
第一种方式和第三种方式的区别在于:如果一个优惠券可供多个商品使用,是否允许这个优惠券再做拆分。
第一种方式中,最优的组合就同时使用了三张优惠券,其中优惠券1可以同时作用于商品A/B,优惠券3可以同时作用于商品B/C,这种方式就把优惠券1/2进行了拆分,从而使用优惠券1只作用于商品A,优惠券3只作用于商品B。
第三种方式中,最优的组合只能同时使用两张优惠券,因为这种方式不允许对优惠券进行拆分。如果优惠券1在商品A中使用,则不允许商品B再去使用优惠券。

原文链接:https://blog.csdn.net/xiaoming120915/article/details/104738461?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165277499316782184681137%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165277499316782184681137&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-19-104738461-null-null.nonecase&utm_term=%E4%BC%98%E6%83%A0

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
文明发言,共建和谐米科社区
提交
头像

昵称

取消
昵称表情图片