业务梳理-电商-B2C优惠券设计方案

Java工程师知识树


基于B2C自营电商的底层架构,一套通用性的优惠券设计方案,至少支持以下使用场景:满减券、打折券、包邮券、商品券、满赠券、全场通用券等等

优惠券本质

优惠券的本质是经济学中的价格歧视。形式上给予消费者心理一定的折扣,然后促成订单。本质上商家向不同的接受者提供相同的商品或相同质量的服务,但是在接受者之间实行不同的销售价格。

优惠券的表象

对于顾客来说,优惠券就是买东西的时候用它来省钱。

对于初级PM来说,优惠券可能就是满减券、打折券、满赠券这3种类型。那从技术层面来说,RD至少需要构建3个类,并且无法兼顾优惠码。并且后续很难去兼顾运营提出的新优惠券类型。

其次淘宝、京东、苏宁等平台是给店铺提供了3种优惠券:订单券、商品券、包邮券,这是平台的通用策略。

优惠券的类

从面向对象的技术角度来说,优惠券可以抽象成类,本质上是类的实例化。

优惠券的价值

是优惠,不是现金。

请注意电商领域通俗意义上的优惠券是指下单可以优惠金额的券,使用即作废。不是那种可以充值到账户的现金券,也不是可以使用多张的折扣券。

为什么做优惠券?

简单来说,就是拉新促活。

怎么做优惠券?

先说大概步骤:

新建

即你想要什么样的优惠券,包含优惠券的面值,有效期,类型,门槛,使用限制,标签……

新建是指新建了一批优惠券,可能限定了总张数,也可能不限定。本质上就是构建优惠券这个类的属性,具体如下:

  • 优惠券名称:方便运营标记,可以显示给用户看。
  • 有效期:即可以使用该券的起始时间。一般有两种:①运营人员设定,比如2021-01-05~2021-02-05 ②从领券之日起x天,比如注册送券一般有效期7天。延展来讲饿了么滴滴还限定了时段,比如仅早上8:00~10:00可用。
  • 应用范围:指什么范围可以使用券,一般是全场、某店铺、某店铺某品类。甚至还有限定某店铺某商品,注意这个更应该归于应用范围属性,而不是使用条件,比较容易混淆。
  • 使用条件:即该订单需要满足的条件,比如满x元、满x件、无条件。延展来讲可能是该订单需满足、该订单中商品需满足、该订单的发货地需满足……请注意最终落在该订单层面优惠,减免金额。
  • 优惠结果:即该订单用券后享受的优惠。比如减x元、打x折、免运费、赠礼物、免税费、返优惠券……
  • 优惠叠加:比如原本是满100元减20元,叠加后就是满100元减20元,满200减40元,上不封顶。
  • 承担部门:该批次优惠券的费用由哪个部门承担。
  • 是否显示到前端:设置了之后,商品详情&领券中心&购物车都会显示。一般是第一种券类。本质上应该置于发放层面,不过考虑到总不能运营每设置一批优惠券就得新建一次,发放一次。就把它归属于优惠券的属性。
  • 是否限定级别:比如普通用户无法领取,高级用户才可以领取。
  • 排除某类商品:在应用范围的基础上排除某些特殊商品、某个商品。

需要单独说明的是:

  • 为了兼顾优惠码,所以尽量不要去限制该批次优惠券的数量。这一点和淘宝店铺优惠券的区别很大。为此其实新增了2种优惠券类。最终有3个优惠券类(class):
    ①限制总张数,限制每人领取张数
    ②不限制总张数,限制每人领取张数
    ③不限制总张数,不限制每人领取张数。
  • 第一种类最终生成的实体是X张,第二和第三类是1张,但是可以使用多次。后者比较适合和第三方平台合作推广,比如和什么值得买。像当年uber发放出去的兑换码应该采用的是第三种券的定义。
  • 每张优惠券,只能关联一条使用条件和一条优惠结果,技术实现层面上来说可以关联多条,但是这样会导致业务太复杂。

审核

优惠券其实是让利提升销量,所以需要业务部门申请预算并提交财务审核。

发放

审核通过的优惠券需要向目标用户进行发放。发放是个泛概念,分为用户主动领取&系统自动发放。

新建优惠券的时候,已经提供了一个显示到前端的属性,称之为领券。

比如给每一个批次的优惠券生成链接,发给用户让他们去领。

另外:注册自动返券,下单自动返券,邀请成功自动返券,属于系统自动发放的类型。

领取

当用户领取成功之后,我的优惠券列表新增一条记录。此时这张券的状态是未使用,下单的时候如果使用了它,则为已使用状态。

使用

优惠券的使用和订单流程强关联,一种是先用券后生成订单,还有一种是先生成订单再用券。

选择优惠券之后生成订单,此时该张优惠券和该订单进行绑定,同时状态变成”已使用”。

注意每个订单最多使用一张优惠券,一张优惠券只能使用一次。理论上来说一个订单可以使用多张券,一张优惠券可以使用多次比如uber有那种使用x次的晚高峰券,只是这样会让业务变得很复杂,产品设计和技术实现都会变得很复杂。除非业务必须,否则不推荐这样做。

注:目前(2021-4)
淘宝平台针对优惠券使用做的优化为:选中商品规格后会自动领取并将相关优惠券叠加,给出一个折后价
京东平台针对优惠券使用做的优化为:选中商品规格与去结算操作都会自动领取并将相关优惠券叠加,给出一个最优的已选推荐优惠
苏宁平台针对优惠券使用做的优化为:去结算操作会自动领取可用优惠券,并将相关优惠券叠加,给出一个最优的已用最大优惠

回收

过期未使用的优惠券需要进行回收和作废。

统计

无论是生成优惠券的记录、还是每一张被领取的记录,以及每张使用的记录,都需要记录日志供查询。

优惠券是否退还

理论上来说优惠券一般不退,若支持退还,需要多一个使用中或者锁定的中间状态。

退款的时候优惠的金额怎么处理

如果不处理,那用户下单100+50-20优惠,如果全部退款则是退款150,很明显对商家造成营收上面的损失。

如果处理则按照”哪里优惠回哪里”的规则来处理:

  • 如果是指定某件商品/某类商品的优惠券,那优惠金额肯定由该商品承担的。当退该商品,需减去优惠券金额。
  • 如果是指定某些(分类、商户、活动等),那优惠金额分摊到符合资格的商品上。
  • 如果是全店铺通用,那优惠金额分摊到每一个购买商品上。

分摊金额的算法有两种:

  • 按照符合优惠券的商品金额进行均摊
  • 按照订单剩余部分是否符合优惠券

举例:顾客购买了A商品1件90元,B商品1件30元,使用了一张优惠券满100元减20元。如果顾客想退款A商品:

  • 按照算法1,提交退款的最多金额为90*(90+30-20)/(90+30)=75元。
  • 按照算法2,因为商品B<100元,则提交退款的最多金额为90-20=70元。

实际情况中方案A和B的金额,有高有低。如果由于特殊原因需要给用户多退,客服可在后台修改。

推荐采用的是第一种,对用户比较公平,体验比较好。

和其他营销功能的兼容性

营销功能一般分为3大类:对商品的打折、对订单的优惠券、对全场的活动。

  1. 打折,针对于商品,可以设置某一商品、可以是某一品类、也可以是全店……
  2. 优惠券,针对于订单,可以设置减x元订单金额、减运费、减税费……
  3. 活动,针对于全店&订单,一般设置为全场满x元减x元,满x元打x折,满x元包邮,满x元赠礼物……

当确认订单的时候,满足打折、优惠券、活动规则。谁先谁后,最终导致的付款金额是完全不一样的。

推荐整套营销功能的计算规则如下:

优惠券和活动的本质

当然说到底,优惠券和活动本质是一样的。只是促销的外部表现,但是内部规则是通用的。对于初级PM来说,可能不太能够理解这句话,但是一定要尝试从产品层面理解,也可从技术层面理解。

你可能感兴趣的:(业务梳理-电商-B2C优惠券设计方案)