电商系列之售后退货

   > 插:AI时代,程序员或多或少要了解些人工智能,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

坚持不懈,越努力越幸运,大家一起学习鸭~~~

在我们平时网购过程中接触比较多的一般都是正向流程,逆向流程一般关注的不是很多,只有发现要取消订单、退货的时候才会与之打交道。但是逆向流程往往比正向流程更加的复杂。上一篇文章《电商技术解密之取消订单》中介绍了取消订单这个流程的背后原理,今天来跟大家聊下更加复杂的退货流程。

区分概念:售前取消,售后退货

售前取消

我们一般指的是订单在没有发出仓库的时候,如果只是订单生产了,还没有支付,那么比较简单,可以直接取消,不涉及退款。

如果已经支付了,但是订单还没有出库,那么这个时候不想买了,也可以申请订单的取消,会按照你取消的商品金额进行退款。

上面两种情况我们一般称之为售前取消。

还有一种情况是已经支付了,并且订单已经出库了,那么大多数的电商平台是不支持这种场景的取消订单。关键是看仓储物流是不是自建的,如果是自建的,那么是有能力取消这种订单的。如果不是自建仓储就比较难了,所以大多数情况下是不支持这种场景的取消订单,需要货到了用户手中之后再走售后退货流程。

售后退货

指的是商品已经收到了,这个时候由于种种原因要发起的退货,今天我们主要聊的就是这个场景。我们以京东为例,先来看下整个售后的前端流程,再来讲下背后的业务流程。

前端发起售后退货流程

发起售后退货的入口一般在我的订单,支持退货的粒度一般有两种,一种是包裹单维度,一种是商品维度。

包裹单维度

指的是一次下单的时候买了多个商品,可能由于发货仓不同导致被拆成了多个包裹分别寄出。退货的时候最小粒度只能是包裹,要么整个包裹里的商品都退要么都不退。这种方式的好处是技术实现相对比较简单,但是用户体验较差,所以主流电商平台一般都没有采用此方式。

商品维度

指的是不管买的商品被拆成了几个包裹,都可以选择某个包裹的某个商品来退货,这样比较灵活,体验比较好,代价是后台逻辑相对复杂,目前主流的电商平台均支持按照商品维度来进行退货。

选择需要退货的商品之后需要填写下售后退货的原因,是质量有问题?还是用户自己不想要了?用于做事后的分析,如果某个品牌的商品经常被退货那么就要深入的看下这个品牌的商详描述是否有误导用户或者确实质量不行。

然后需要选择退货的方式,由于京东有自己的物流,所以提供了上门取件和送货至自提点,没有自建物流的电商平台一般只能提供快递至商家的退货流程。相比京东的选择更丰富些,体验也更好些。

我们这里以快递至京东为例,选择好商品退回方式后,整个退货申请流程就结束了,剩下的就是等待客服审单通过后通知要寄送回京东的地址,这个地址一般是仓库或者配送站的地址。等把要退货的商品快递寄到京东仓库,仓库收到货后,正常情况下就会自动进行退款。

后台售后退货业务流程

上面我们看到都是用户端的流程,总体感觉流程还是比较简单的,一共做了4-5个操作就完成了退货流程。但整个复杂的流程都隐藏在背后,对用户是屏蔽的。

下面我们看下整个退货流程的后台业务序列图:

大家感受下,可以看到整个后台做了大量复杂的逻辑,我们简单介绍下后台默默的做了哪些逻辑才支撑起整个退货流程。

1.检查订单状态

上面提到了,售后退货的前提是订单必须是已经收货的状态,如果订单刚出库但是还没签收,这个时候大部分非自建物流的电商平台是不允许发起退货的,所以当用户发起退货流程后首先要检查订单的当前状态是什么,是否符合退货的条件。

2.客服审核

当用户符合发起退货条件后,后台会生成一个退货单并且同时给客服一个事件,客服需要对这个退货单进行人工审核,主要是人工的看下发起退货的商品是否符合退货的条件,比如有些生鲜食品是不可以退货的;比如要确认下退货的原因,是商品质量问题还是无理由退货。如果涉及到退货的运费承担不明确问题,还需要跟用户先沟通运费的问题。当这些问题都跟用户确认后才可以继续下面的流程,其中有一项问题双方达不成一致都没办法进行下一步操作。

3.仓库验收

当客服审核通过后,需要用户自行将商品快递至仓库,仓库人员需要接收这些退回的商品,并且确认商品是否有破损或者质量问题。

如果是非商品质量问题用户需要退货,但是退回到仓库的时候有破损,这时候仓库会通知客服商品破损,客服会跟顾客进行沟通。

4.财务退款

仓库收货后会将商品的状态告诉售后系统,售后系统会通知财务进行退款,这里退款的金额计算逻辑比较复杂。有几种场景需要考虑,一个是关于促销,当下单金额可以满足促销条件,但是退货后不满足促销条件了,退款金额应该怎么计算?

比如,下单的时候参加了满199减100的活动,买了2个商品,每个商品原价分别是100元,两个刚好200元,满足这个促销条件,实际支付100元。

但是现在要退了一个原价100的商品,如果按照原价退款的话,那么用户相当于没花钱还是拿到了一件商品,按照这个逻辑算平台一定会破产的。

另一种方案是按照分摊的价格计算,2个商品减掉促销后每个商品50,当退货其中一个商品的时候只需要退给用户50块而不是原价的100块。但是这样计算退款金额仍然有漏洞,相当于用户花了50买了一件促销的商品,但实际上他并没有满足促销条件。

跟这个问题类似的还有运费,这里不详细说了。跟上一篇订单取消遇到的问题类似,有兴趣的可以看下这篇《电商技术解密之取消订单》。

整个售后退货过程的状态机如上图,每个状态都有一定的前置约束,满足一定条件才会流转到下一个状态,退货流程的状态还是比较多的,整个状态机也是比较复杂,要考虑每个节点的正向与逆向应该如何流转。

小结

上面就简单介绍了下售后退货的一些原理,整个流程还是比较复杂的,这里只以B2C的模式进行了介绍,POP的退货流程也基本类似,在仓库收货和财务退款这块稍微有些区别。可能有些遗漏或者错误,欢迎大家拍砖、讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/502998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现

基于JavaWEB SSM SpringBoot婚纱影楼摄影预约网站设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言…

Redis命令-SortedSet类型

4.8 Redis命令-SortedSet类型 Redis的SortedSet是一个可排序的set集合,与Java中的TreeSet有些类似,但底层数据结构却差别很大。SortedSet中的每一个元素都带有一个score属性,可以基于score属性对元素排序,底层的实现是一个跳表&a…

乡村数字化转型:科技赋能打造智慧农村新生态

随着信息技术的迅猛发展,数字化转型已成为推动社会进步的重要引擎。在乡村振兴的大背景下,乡村数字化转型不仅是提升乡村治理能力和治理水平现代化的关键,更是推动农业现代化、农村繁荣和农民增收的重要途径。本文旨在探讨乡村数字化转型的内…

09_Web组件

文章目录 Web组件Listener监听器ServletContextListener执行过程 Filter过滤器Filter与Servlet的执行 案例(登录案例) 小结Web组件 Web组件 JavaEE的Web组件(三大Web组件): Servlet → 处理请求对应的业务Listener →…

权限提升-Linux系统权限提升篇Vulnhub辅助项目SUID权限SUDO指令版本漏洞

知识点 1、Web权限或普通用户到Linux-配置不当-判断&利用 2、Web权限或普通用户到Linux-配置不当-SUID&GUID 3、普通用户到Linux-配置不当-SUDO&CVE漏洞 章节点: 1、Web权限提升及转移 2、系统权限提升及转移 3、宿主权限提升及转移 4、域控权限提升及…

CVE-2023-38408漏洞修复 - 升级openssl和openssh

CVE-2023-38408 OpenSSH 代码问题漏洞修复 - 升级openssl和openssh ※ 重要说明: 1、升级后会导致无法用ssh远程登录,提示“Permission denied, please try again.” 2、解决方案请查看本章节【三、解决升级后无法用ssh远程登录】 目录 CVE-2023-38408 O…

c语言例题,逐个打印数字

今天来分享个比较简单的程序例题,也是比较经典的一个新手例题,逐个打印输入的数字。我们直接从主函数看起,先定义一个num变量,同时变量的类型是unsigned int,这个类型的意思是无符号的整型变量,unsigned&am…

手把手在K210上部署自己在线训练的YOLO模型

小白花了两天时间学习了一下K210,将在线训练的模型部署在K210(代码后面给出)上,能够识别卡皮巴拉水杯(没错,卡皮巴拉,情绪稳定,真的可爱!)。数据集是用K210拍…

C++:一次性搞定vector模拟实现中必须关注的细节

vector模拟实现的细节 1. vector的模拟实现源码2. 重要接口注意事项2.1 const修饰2.2 begin()和end()2.3 构造函数(1)迭代器区间初始化(2)构造函数冲突问题发现​问题分析问题​解决问题 (3)特殊的构造函数…

LDR6023,大功率OTG快充芯片,引领充电新时代!

在科技日新月异的当下,数据交互方式已经深入我们生活的每一个角落,对日常生活和工作产生着无可替代的影响。然而,在OTG技术诞生之前,数据交互的过程常常显得繁琐且耗时。想象一下,需要将数码相机中的照片导入笔记本电脑…

《科技创新与应用》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答: 问:《科技创新与应用》是什么级别期刊? 答:省级;主管单位:黑龙江省科学技术协会;主办单位:黑龙江省创联文化传媒有限公司 问:《科技创新与应用》是核心期刊…

查找链表中的中间结点

略。。。。。 提升题的难度,不知道输入数据节点的个数。 方法一:对链表进行两次遍历。第一次遍历时,我们统计链表中的元素个数 N;第二次遍历时,我们遍历到第 N/2 个元素时,将该元素返回即可。 方法二&am…

粉丝免费福利第一期-海浪型手机支架

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云专家博主 📌 擅长领域:全栈工程师,大模型,爬虫、ACM算法 💒 公众号&#xff…

不小心将某个分支的本地代码推到另外一个远程分支上

不小心将某个分支的本地代码推到另外一个远程分支上,是不会产生效果的,若提示了“Everything up-to-date ”,说明没有内容被提交到了远程,某个分支的本地代码仍然在本地仓库。 若想将改动的代码提交到另外一个远程分支上&#xf…

不懂技术的老板,如何避免过度依赖核心技术人员

在这个日新月异、技术驱动的时代,即使作为非技术背景的老板,也深知核心技术人员的价值。然而,过度依赖某几位核心技术人员,不仅可能带来经营风险,还可能限制企业的创新与发展。那么,不懂技术的老板&#xf…

【python基础教程】2. 算法的基本要素与特性

🎈个人主页:豌豆射手^ 🎉欢迎 👍点赞✍评论⭐收藏 🤗收录专栏:python基础教程 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、…

创建第一个51文件

1.找一个文件目录创建一个main.c 比如我的 F:\my_project\project_of_51\0.first_of_51 什么你不会? 先把这里的文件扩展名打开; 再创建一个文本文件,重新命名为main.c // 修改.c 后弹出一个确认修改的框,选确认即可 2.kei操作: 1&#xf…

学生成绩管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 1. 管理员功…

Taskflow:条件任务(Conditional Tasking)

基本使用 条件任务评估一组指令&#xff0c;并返回要执行的下一个后续任务的整数索引。 该索引是根据其继任者结构的顺序定义的&#xff0c;首先&#xff0c;创建一个最简单的if else条件模块: #include <taskflow/taskflow.hpp>int main() {tf::Taskflow taskflow;tf:…

暴力破解pdf文档密码

首先安装pdfcrack工具包 apt install pdfcrack 默认密码字典存储在/usr/share/wordlists里&#xff0c;是gz文件&#xff0c;将它解压并copy到pdf目录 然后使用pdfcrack破解 密码在最后一行user-password的单引号里