当前位置: 首页 > news >正文

电商技术解密之售后退货

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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

售前取消

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

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

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

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

售后退货

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

前端发起售后退货流程

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

包裹单维度

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

商品维度

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

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

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

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

后台售后退货业务流程

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

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

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

1.检查订单状态

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

2.客服审核

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

3.仓库验收

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

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

4.财务退款

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

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

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

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

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

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

小结

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

转载于:https://my.oschina.net/hycx227/blog/882446

相关文章:

  • CURL,PHP请求k780接口
  • 你知道吗?私有云发展速度可能比你想象的更快!
  • android 自定义控件之NetWorkImageView 处理listview等控件中的图片加载乱序问题
  • Linux下搭建SVN服务器--基于LAMP
  • PHP中文件操作(1)--打开/读取文件
  • firewalld防火墙的配置及应用
  • Angular 4.x 动态创建组件
  • WEB架构想法考虑
  • gaojingsong----大数据博客
  • RDD原文翻译[转]
  • Scrum角色划分——绿唤
  • Codeforces Round #410 (Div. 2) 题解 【ABCD】
  • 《Java程序员面试秘笈》—— 面试题3 Linux操作系统下如何安装Java SE开发环境
  • 《好学的C++程序设计》——2.3 循址访问是怎样的
  • 《Adobe Fireworks CS5中文版经典教程》——1.5 使用多个文档
  • 收藏网友的 源程序下载网
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • JavaScript-Array类型
  • JSDuck 与 AngularJS 融合技巧
  • js如何打印object对象
  • MYSQL 的 IF 函数
  • python大佬养成计划----difflib模块
  • Ruby 2.x 源代码分析:扩展 概述
  • Selenium实战教程系列(二)---元素定位
  • Sublime text 3 3103 注册码
  • uva 10370 Above Average
  • vue-cli3搭建项目
  • 从重复到重用
  • 简单实现一个textarea自适应高度
  • 如何在 Tornado 中实现 Middleware
  • 新手搭建网站的主要流程
  • 正则学习笔记
  • 智能网联汽车信息安全
  • NLPIR智能语义技术让大数据挖掘更简单
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (java)关于Thread的挂起和恢复
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)socket Aio demo
  • (转)甲方乙方——赵民谈找工作
  • (转载)从 Java 代码到 Java 堆
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET MVC 验证码
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .NET 读取 JSON格式的数据
  • .NET关于 跳过SSL中遇到的问题
  • .NET实现之(自动更新)
  • .net下的富文本编辑器FCKeditor的配置方法