首页 > 其他分享 >优惠券流程

优惠券流程

时间:2023-02-14 18:00:38浏览次数:33  
标签:优惠券 流程 金额 用户 购物车 支付 id

小程序优惠券流程

优惠券流程大致如下:
在这里插入图片描述


优惠券发放形式

优惠券一般通过领取的形式发放,也可以通过用户的状态来自动发放优惠券。

自动发放的优惠券适用于一些活动,比如:回归活动用户登录自动发放优惠券。

手动领取的优惠券,用户通过点击领取的形式获得。

优惠券通常有多种形式,而且优惠券的数量不限,例如:满减优惠券,同类型的满减优惠券可以获取多张,满505、满10010,除了满减优惠券外还有折扣优惠券,这些优惠券都可以重复领取,一个类型的优惠券可以获得多张。


优惠券使用

用户使用优惠券的时候会有限制,例如:同类型的优惠券只能使用一张,如果用户现在有满减优惠券x2折扣优惠券x3,那么用户的在使用的时候一个类型只能使用一张

一般情况下,用户使用优惠券的时候会有一个初始的最优优惠券选择,不需要用户手动选择使用哪一张,在获取或者使用的时候,后台会自动分配好当前条件下的最优优惠券搭配。其次是用户可以手动选择自己想要使用的那一张。用户在选择优惠券的时候,只要优惠券的选择发生更改,那么当前的计算金额也要随之发生更改,这样优惠券和金额就是动态且实时的计算,用户才知道当前优惠券到底优惠了多少,最后实际需要支付的金额是多少。


优惠券的使用场景

1、商品选择

2、商品详情

3、订单支付页

4、购物车页

5、......

优惠券在这么多场景下都会重复出现,那么,该优惠券实际上可以封装成一个组件,在对应的页面引入组件即可,所有选择的逻辑、搭配的逻辑以及弹窗展示的信息,都在该组件内操作,组件内操作完,返还给页面的就是最终选择的数据,页面通过返回的数据进行展示即可。


优惠券使用以及支付

优惠券选择后会自动计算金额,那么计算金额的接口参数应该有商品id商品数量优惠券id,通过这些参数请求计算金额接口。参数的结构如下:

let params = {
    goodsArr = [
    { goodsId:100 , quantity : 1 },  // 商品id 数量
    { goodsId:101 , quantity : 1 }
    ],
    discount =  [ 32001,32001 ]  // 优惠券的id集合,不同类型的券id都放在这里
}

请求计算金额接口后,后台返回的数据如下:

{
    code: 200
    data: {
            disMoney: 1.5,  // 优惠金额
            totalPrice: 20,  // 总金额
            actualPrice: 18.5, // 实际金额
            isDis : 1  // 是否使用优惠券
    }
    message: "SUCCESS"
}

该金额就是实际需要支付的金额,如果要支付,支付接口的金额数据就根据计算金额返回的数据请求。

支付
在支付的时候,其实涉及到一个支付归滚的问题,如果用户选择了优惠券,在付款的时候取消了,那么该优惠券会去哪里呢?如果用户取消支付,那么该订单会去待付款页,券还是跟商品绑定了,处于已选择的状态,如果支付成功,该优惠券 -1,如果取消支付,优惠券会重新加回来。

支付失败
如果从购物车走支付流程,用户如果支付成功,购物车需要删除对应商品;
如果用户在支付的时候取消支付,购物车也应该删除对应商品,因为该商品会走待付款流程;
总结下来就是:用户走购物车发起的支付,只要发起支付了,购物车对应的商品都应该删除。

优惠券选择
不同类型的优惠券其实是有个分类id的,同类型的优惠券只能有一张,其实就是通过分类id来做判断,如果折扣优惠券有3张,用户选择了其中一张,另外两张就得取消选中状态,其它的优惠券也是同样的逻辑。

标签:优惠券,流程,金额,用户,购物车,支付,id
From: https://www.cnblogs.com/wang-fan-w/p/17120461.html

相关文章

  • 最好用的画流程图的软件
    来分享一下画流程图的软件ProcessOn,它是一款在线的软件,只需要打开浏览器就可以作图,无需下载,超级方便操作,而且免费使用。https://www.processon.com/i/5f5a11821e085317......
  • Web开发的那点事--开发流程
    第0步:可行性分析拿到项目,项目是否可行。产品技术可行性/法律/第1步:需求分析收集和整理需求,知道项目要做什么。可能的产物:需求分析文档、功能点文档、性能分析第2步:制作......
  • ERP流程一 总体说明
    一、工作流说明:总共分四大模块1)任务中心2)单据类型3)工作流4)工作流角色二、任务中心最要用来显示未审核、未提交、未确认的信息,双击之后即可进到相关的模块三、单据......
  • 开学初软件工程第一次课进行课前测试,要求实现一个完整MIs系统的开发流程
    本次测试经历了三个小时,这次测试使沉醉在假期的我惊醒,我意识到我仍是一名学生,我还有许多的东西要去学习。我先去复习上学期的增删改查,连接数据库之类的知识,之后开始写代码,......
  • 二进制 k8s 集群下线 master 组件流程分析和实践
    目录事出因果环境介绍个人思路准备实践当前master节点信息切换apiserver访问流量查看nginx配置文件停止下线节点的apiserver服务将master节点的pod驱逐到其他......
  • 注册chatGPT账号流程
    一、ChatGPT简介chatgpt是OpenAI开发的一个大型预训练语言模型,通俗一点说就是一个聊天机器人。它是GPT-3模型的变体,ChatGPT经过了训练,可以根据接收到的输入生成类......
  • 纽扣电池上架亚马逊UL4200A检测项目流程
    纽扣电池(buttoncell)也称扣式电池,是指外形尺寸象一颗小纽扣的电池,一般来说直径较大,厚度较薄。纽扣电池因体形较小,故在各种微型电子产品中得到了广泛的应用,直径从4.8mm至30m......
  • 生成式AI对业务流程有哪些影响?企业如何应用生成式AI?一文看懂
     集成与融合类ChatGPT工具与技术,以生成式AI变革业务流程ChatGPT背后的生成式AI,聊聊生成式AI如何改变业务流程ChatGPT月活用户过亿,生成式AI对组织的业务流程有哪些影......
  • 浏览器输入域名访问全流程解析
    当你在浏览器中输入了一个网址URL,按下回车到页面展示内容的这个过程,发生了什么?可以从浏览器、服务器、计算机网络相关尝试分析。输入URL之后,浏览器做的第一件事情就是D......
  • 0源码基础学习Spring源码系列(一)——Bean注入流程
    作者:京东科技韩国凯通过本文,读者可以0源码基础的初步学习spring源码,并能够举一反三从此进入源码世界的大米!由于是第一次阅读源码,文章之中难免存在一些问题,还望包涵指正!......