电商系列之售后退货

news2024/11/26 21:19:30

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

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

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

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

售前取消

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

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

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

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

售后退货

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

前端发起售后退货流程

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

包裹单维度

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

商品维度

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

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

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

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

后台售后退货业务流程

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

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

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

1.检查订单状态

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

2.客服审核

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

3.仓库验收

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

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

4.财务退款

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

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

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

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

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

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

小结

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

InternLM 全链路开源体系

书生 浦语全链路开发体系:从数据到最后的应用,都有相应开源工具,其中模型,和数据集都有很好的开源支持。 一. 书生 万卷 书生万卷开发数据集包括,1.0和CC,拥有较为丰富的高质量的数据集,可用于…

Spring依赖注入思想分析

Spring 依赖注入思想分析 文章目录 Spring 依赖注入思想分析一、前言二、控制反转(Inversion of Control)1. 代码依赖初始化问题2. 匿名内部类解决方案3. 创建接口实现类方案4. 问题深入5. 定义父类解决问题1方案6. 控制反转解决问题2方案 三、依赖注入&…

Swift:“逻辑运算子“与“比较运算符“

1. 逻辑非 ! 逻辑非运算符 ! 是用于对布尔值取反的。当操作数为 true 时,! 将返回 false,而当操作数为 false 时,! 将返回 true。 let isTrue true let isFalse !isTrue // isFalse 现在是 false 2. 逻辑与 && 逻辑与运算符 &a…

CPU 密集型 和 IO密集型 的区别,如何确定线程池大小?

CPU密集型任务 是指需要大量的CPU资源进行计算的任务 CPU密集型任务通常涉及到复杂的计算,如算法逻辑、数学计算等,其特点是CPU使用率高,多在这种类型的任务中,线程数量一般与CPU的核心数相匹配就足够了。 一个简单的估算方法是…

线性CCD

线性CCD 综述:本文讲述了线性CCD是什么、由什么组成、工作原理、芯片TSL401的引脚和时序、线性CCD的时序。 1. 定义 线性CCD,只能采集一行像素,分辨率为128,也即是线性CCD≈128个光电传感器。经过光照时,光电二极管…

微信小程序开发【从入门到精通】——页面事件

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

三个表的联合查询的场景分析-场景4:c表维护a和b表的id关联关系(一对多)

基础SQL演练,带详细分析,笔记和备忘。 目录 背景介绍 表数据 需求1:查询g表所有记录,以及关联的h的id 需求2:在需求1基础上,查出关联的h的其它字段(name) 需求3:在需…

ssm009毕业生就业信息统计系统+vue

毕业生就业信息统计系统 摘 要 随着移动应用技术的发展,越来越多的学生借助于移动手机、电脑完成生活中的事务,许多的行业也更加重视与互联网的结合,以提高快捷、高效、安全,可以帮助更多有需求的人。针对传统毕业生就业信息统计…

瑞吉外卖实战学习--6、通过try和catch进行异常处理

try和catch进行异常处理 效果图前言1、公共拦截器进行异常处理1.1、创建公共报错处理的方法1.2、@ControllerAdvice中设置要拦截的类1.3、@ExceptionHandler中写处理的异常类2、完善错误拦截器2.1、效果效果图 前言 当用户名重复数据库会报错,此时就需要捕获异常操作 1、公共…

【文末 附 gpt4.0升级秘笈】超越Sora极限,120秒超长AI视频模型诞生

120秒超长AI视频模型发布:开启视频生成新纪元 随着人工智能技术的迅猛发展,AI视频生成领域也取得了令人瞩目的突破。近日,一项名为“StreamingT2V”的120秒超长AI视频模型正式发布,标志着文生视频技术正式进入长视频时代。这一技…

Spring官方真的不建议使用属性进行依赖注入吗?

使用Spring进行依赖注入时,很多大佬都推荐使用构造方法注入,而非使用在属性上添加 Autowired 注入,而且还说这是Spring官方说的,真的是这样吗? 使用Spring进行依赖主要的方式有很多,主流的使用方式有两种&a…

kaggle竞赛(房价预测)(Pytorch 06)

一 下载数据集 此数据集由Bart de Cock于2011年收集,涵盖了2006‐2010年期间 亚利桑那州 埃姆斯市的房价。 下载地址: import hashlib import os import tarfile import zipfile import requests#save DATA_HUB dict() DATA_URL http://d2l-data.s3…

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)--问题分析

linux在使用重定向写入文件时(使用标准C库函数时)使处理信号异常(延时)–问题分析 在使用alarm函数进行序号处理测试的时候发现如果把输出重定向到文件里面会导致信号的处理出现严重的延迟(ubuntu18) #include <stdio.h> #include <stdlib.h> #include <unist…

Java23种常见设计模式汇总

七大原则网站地址&#xff1a;设计模式7大原则&#xff0b;类图关系-CSDN博客 创建型设计模式&#xff1a;创建型设计模式合集-CSDN博客 七大结构型设计模式&#xff1a;7大结构型设计模式-CSDN博客 11种行为型设计模式&#xff1a; 11种行为型模式&#xff08;上&#xff0…

LeetCode---390周赛

题目列表 3090. 每个字符最多出现两次的最长子字符串 3091. 执行操作使数据元素之和大于等于 K 3092. 最高频率的 ID 3093. 最长公共后缀查询 一、每个字符最多出现两次的最长子字符串 非常经典的滑动窗口问题&#xff0c;即动态维护一段区间&#xff0c;使得这段区间满足…

数据结构:Trie(前缀树/字典树)

文章目录 一、介绍Trie1.1、Trie的结点结构1.2、Trie的整体结构 二、Trie的操作2.1、Trie插入操作2.2、Trie查找操作2.3、Trie前缀匹配操作2.4、Trie删除操作 三、实战3.1、实现Trie&#xff08;前缀树&#xff09; 一、介绍Trie Trie 又称字典树、前缀树和单词查找树&#xff…

短视频素材那里来?五大平台让你的视频大放异彩!

哈喽&#xff01;短视频创作者们&#xff0c;是不是在寻找那些能让你的剪辑视频更加闪耀的素材&#xff1f;别着急&#xff0c;今天我要为你们带来五个超棒的视频素材网站&#xff0c;让你的作品在抖音、快手上大放异彩&#xff0c;成为众人羡慕的焦点&#xff01; 蛙学网&…

python电商结合双轨制

最近又重新整合翻看以前的数据&#xff0c;图片&#xff0c;绘画&#xff0c;还有各种编程代码&#xff0c;python,leetcode,还有关于商业方面的一些见解,想起了大学时候和同学们并肩作战&#xff0c;熬夜编码的时光。还有大数据&#xff0c;八爪鱼爬虫。 下面是我的手稿电商打…

输出单链表倒数第K个结点值

方法一&#xff1a; 两次遍历链表。第一次遍历&#xff0c;计算链表长度&#xff0c;然后计算链表倒数第m个结点的正数位置k&#xff0c;判断位置是否合法&#xff0c;如果不合法&#xff0c;输出NOT FOUND&#xff0c;否则&#xff0c;进行第二次遍历链表&#xff0c;查找链表…

【初阶数据结构】——牛客:CM11 链表分割

文章目录 1. 题目介绍2. 思路分析3. 代码实现 1. 题目介绍 链接: link 这道题是给我们一个链表和一个值X &#xff0c;要求我们以给定值x为基准将链表分割成两部分&#xff0c;所有小于x的结点排在大于或等于x的结点之前。 最终返回重新排列之后的链表的头指针。 2. 思路分析…