推荐最优优惠券组合

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

先假设一个场景:
        当前有三个商品,分别是商品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再去使用优惠券。

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值