推荐最优优惠券组合

你离开我真会死。 提交于 2020-03-09 11:55:21

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

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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!