交易系统:线上交易系统流程详解

大家好,我是汤师爷~

今天聊聊线上交易系统流程详解。

线上交易系统为新零售连锁商家提供一站式线上交易解决方案。其核心目标是,通过数字化手段扩大商家的服务范围,突破传统门店的地理限制。系统支持电商、O2O等多种业务形态,为商家提供全方位的线上运营能力。

线上交易系统包含两个核心流程:正向交易流程、逆向交易流程。

正向交易流程负责处理从订单创建到完成的标准交易过程,而逆向交易流程则处理订单取消、退款、退货、换货等异常交易场景。这两个流程相互配合,共同确保交易系统的完整性。

正向交易系统流程

正向交易系统流程是指从用户下单到订单完成的标准交易过程,如图所示,主要包含订单创建、订单支付、订单履约、订单完成这些环节。

交易系统:线上交易系统流程详解

11.2.2 订单创建

订单创建是电商系统的核心环节,需要多个模块的紧密协作。以下是订单创建过程中涉及的主要步骤:

1、校验商品信息

系统首先校验商品的状态和价格,确保商品已上架,库存充足,价格准确。如果发现异常,系统会提示用户无法购买。

2、处理会员等级、积分和优惠券等客户权益

根据用户的会员等级,计算相应的折扣和积分奖励。同时,验证用户的优惠券是否有效,是否符合使用条件,这一步确保能够正确使用客户权益。

3、计算各类优惠

系统获取促销活动、满减和折扣等优惠,按照预设叠加互斥规则,计算优惠的叠加效果,为用户提供最优价格方案。

4、验证收货地址、计算运费并预估配送时效

核实用户提供的收货地址是否合法、完整。根据地址计算运费,并预估配送时间,供用户参考。

5、选择合适的配送门店或仓库

系统根据收货地址和库存情况,选择最合适的配送门店或仓库,这有助于提高配送效率,缩短送达时间。

6、检查并预占库存

如果库存足够,系统会预先占用对应的库存,防止超卖。

库存扣减方式会影响商品供应和用户购买体验。目前主流采用两种方式:下单减库存和付款减库存。

1)下单减库存

下单减库存可立即锁定商品,有效防止超卖,特别适用于秒杀、抢购等高并发场景,能提高用户购买成功率。

但这种方式的缺点是:未付款订单会占用库存,导致有真实购买需求的用户无法下单,容易造成库存积压和销售受阻。

为解决这些问题,可以设置订单有效期,超时未付款则自动取消并释放库存。同时可限制单个用户的购买数量,并通过风控策略识别和拦截异常下单行为。

2)付款减库存

付款减库存仅在用户完成支付后才扣减库存,能避免无效订单占用库存,提升库存利用效率。

但在高并发情况下,可能出现用户付款成功而库存不足的问题,导致无法发货,引起投诉并影响商家信誉。

对此,可在用户付款前进行实时库存校验,并及时提示库存紧张状况。

7、计算订单总价、订单明细价格

计算订单各项明细的商品价格、优惠分摊金额和运费,并汇总计算订单总金额。

8、最终生成订单

完成上述步骤后,系统生成订单记录,包含所有相关信息。订单生成后,进入支付环节。

订单支付

订单生成后,系统将引导用户进入支付环节。在这个阶段,交易系统首先会向支付系统发起支付请求,生成相应的支付订单。

系统随后会自动跳转到统一支付收银台界面,提供多种支付选项。用户可以选择微信支付、支付宝或银行卡等方式完成支付。

当用户完成支付操作后,支付系统会返回详细的支付结果,包括支付流水号和支付时间等。

交易系统随后根据这些信息更新订单状态,将订单标记为待发货,为后续的订单履约做好准备。

订单履约

订单履约是指从订单支付完成到商品最终送达用户手中的全过程,这是确保良好购物体验的关键环节。

整个履约流程需要多个系统协同工作,主要依靠订单履约系统、WMS仓储系统和物流系统等核心系统的紧密配合。

在电商购物流程中,系统会将订单智能拆分为发货单,并按照就近发货原则分配至合适的仓库。仓库接收发货指令后,按标准流程进行打单、拣货、质检和包装,最后交由快递公司配送。

在O2O购物流程中,系统根据用户收货地址将订单分配给就近门店。门店接单后立即进行商品备货、打包。对于自提订单,系统生成取货码,并通知用户到店提货;对于外送订单,系统会调度附近骑手配送,并全程追踪配送状态,直至商品顺利送达。

订单完成

订单完成是订单生命周期的最终状态,表示正向交易流程已经结束。具体来说,当满足以下条件时,订单将被标记为完成:

  • 用户已确认收货,或系统自动确认收货(一般在快递签收后的7-15天)
  • 订单已超过售后服务期限(通常是收货后7-15天)
  • 所有的售后问题(如退换货)已经处理完毕
  • 订单相关的货款已完全结算给商家

一旦订单完成,意味着买卖双方的交易责任和义务都已履行完毕,订单进入终态。此时除特殊情况外,用户将无法再对该订单发起售后申请。

逆向交易系统流程

在订单生成后的状态流转过程中,可能出现三种逆向流程:取消订单、仅退款和退货退款。

交易系统:线上交易系统流程详解

用户取消订单

当用户在提交订单后还未进行支付时,可以选择取消订单。系统在处理取消订单请求时,会执行一系列操作:

  • 将订单提交时预占的库存全部释放,确保这些库存能重新补充到销售库存;
  • 系统会自动返还用户下单时使用的所有优惠券、会员积分等权益,这些权益能在后续订单中重新使用
  • 系统将订单状态标记为"已关闭",完成整个取消流程。

由于这类订单未涉及实际支付,处理逻辑相对简单,无需与支付系统进行交互,也不存在退款等资金处理问题。

用户仅退款

用户完成支付后,可能因商品缺货、发货延迟或商品描述不符等原因申请退款。退款处理主要包含以下步骤:

1、用户申请退款

用户需要在系统中选择要退款的商品,并填写详细的退款申请信息,包括退款金额、退款原因和相关证明凭证。提交申请后,系统会自动将这些商品的状态更新为"售后中",防止后续操作发生冲突。

2、商家审核

商家审核通过后,可在系统中确认退款。系统将通过原支付渠道发起退款,并详细记录所有退款相关的资金流水信息。同时,系统会将商品状态更新为"已退款",更新退款单据状态,确保整个退款过程可追溯。

若商家审核不通过,则可驳回退款申请,系统将自动将商品状态恢复至"待发货"状态。

3、库存处理

因为仅退款场景下并未发生实物商品的退回,因此无需进行库存数量的变更操作。

4、权益处理

当订单中所有商品完成退款后,系统会自动返还用户的全部权益,包括优惠券和积分等。对于有活动资格限制的订单,系统也会返还相应的活动资格。

用户退货退款

在商家发货后,用户可能因商品质量问题、实物与描述不符或尺寸不合适等原因,向商家申请退货退款。退货退款主要包含以下步骤:

1、用户申请退货退款

用户需在系统中选择"退货退款"类型,并指定要退回的具体商品。然后,用户需填写完整的退款申请信息,包括预期退款金额、退货具体原因,以及相关的商品问题证明(如照片或视频)。申请提交后,系统将自动把相关商品状态更新为"售后中",防止出现操作冲突。

2、商家审核

商家收到退货退款申请后,将根据用户提供的信息进行详细审核。审核通过后,系统会立即通知用户开始退货流程,将申请单状态更新为"待用户退货",并发送退货地址等信息。

如果商家发现申请不符合退货条件,可驳回申请。系统随即将商品状态恢复至原始状态,并向用户说明驳回原因。

3、用户退货

审核通过后,用户需在系统中填写退货物流信息,包括快递公司和运单号。用户确认退货后,系统自动将申请单状态更新为"买家已退货,待商家收货",履约系统会生成退货单,并开始跟踪物流状态。

3、商家收货并退款

商家收到退回的商品后,会检查商品的完整性和状态。

如果商品没有问题,确认收货后,系统立即通过原支付渠道启动退款流程。系统会生成详细的退款资金流水记录,同时将商品状态更新为"已退款",并相应更新订单状态。

如果商品有问题,商家会拒绝收货并记录问题原因。此时,系统会将退货申请状态更新为"商家拒收",并通知用户重新发起退货,或与商家沟通解决方案。

4、库存处理

退货完成并入库后,系统会自动将退回的商品数量,添加至可用库存,确保库存数据准确。

5、权益处理

当所有商品完成退款后,系统返还权益到用户账户,例如,用户购买时使用的优惠券、积分等权益资产。对于有活动资格限制的订单,系统也会返还相应的活动资格。

系统核心功能

在前面的章节中,我们已经深入探讨了线上交易系统的正向和逆向流程。

通过对正向和逆向流程的系统分析,我们可以明确线上交易系统必需的核心功能:

  • 下单环节:购物车、订单结算、价格计算、订单创建、订单取消。
  • 支付环节:预支付、支付处理、支付回调、支付类型。
  • 履约环节:快递、自提、核销等场景的订单状态更新。
  • 订单完成:确认收货、订单评价。
  • 订单管理:订单操作、订单查询、订单详情、订单导出。
  • 逆向流程:买家退款/退货退款、商家主动退款。

本文已收录于,我的技术网站:tangshiye.cn 里面有,算法Leetcode详解,面试八股文、BAT面试真题、简历模版、架构设计,等经验分享。

文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/5047.html

(0)
LomuLomu
上一篇 2024 年 12 月 31 日
下一篇 2024 年 12 月 31 日

相关推荐

  • 数据结构(Java版)第二期:包装类和泛型

    目录 一、包装类 1.1. 基本类型和对应的包装类 1.2. 装箱和拆箱 1.3. 自动装箱和自动拆箱 二、泛型的概念 三、引出泛型 3.1. 语法规则 3.2. 泛型的优点 四、类型擦除 4.1. 擦除的机制 五、泛型的上界 5.1. 泛型的上界的定义 5.2. 语法规则 六、泛型方法 6.1. 定义语法 6.2. 交换方法的实例 七、通配符 包装类和泛型…

    2025 年 1 月 1 日
    27900
  • Python 潮流周刊#80:Django 项目性能调优(摘要)

    由 Python猫 精心策划,本周刊汇集了全球精选的 250+ 资讯,为你呈现最有价值的文章、教程、开源项目、软件工具、音视频内容以及热门话题。我们的目标是助力每一位读者提升 Python 技能,并在职业和副业中实现收入增长。 本期精选了 12 篇精选文章,12 个开源项目,以及 3 个音视频资源,总字数约 2100 字。 以下是本期内容概览: **[🦄 文…

    未分类 2024 年 12 月 24 日
    27700
  • 【GreatSQL优化器-10】find_best_ref

    【GreatSQL优化器-10】find_best_ref 一、find_best_ref介绍 GreatSQL的优化器对于join的表需要根据行数和cost来确定最后哪张表先执行哪张表后执行,这里面就涉及到预估满足条件的表数据,在keyuse_array数组有值的情况下,会用find_best_ref函数来通过索引进行cost和rows的估计,并且会找出最…

    2025 年 1 月 13 日
    33700
  • 10个案例告诉你mysql不使用子查询的原因

    大家好,我是V哥。上周末与一位技术同行共进晚餐,我们很快便将话题转向了技术讨论,特别是关于数据库子查询的优化问题。回家后,我整理了以下10个案例,展示了如何在不使用子查询的情况下解决问题,现在与大家分享。 首先,让我们探讨一下在MySQL中避免使用子查询和JOIN的原因,主要基于以下几点: 性能考量:子查询在执行过程中,MySQL需要创建临时表来存储内部查询…

    未分类 2024 年 12 月 26 日
    30800
  • 华为OD机试E卷 –关联子串–24年OD统一考试(Java & JS & Python & C & C++)

    文章目录 题目描述 输入描述 输出描述 用例 题目解析 JS算法源码 Java算法源码 python算法源码 c算法源码 c++算法源码 题目描述 给定两个 字符串 str1和str2,如果字符串str1中的字符,经过排列组合后的字符串中,只要有一个字符串是str2的子串,则认为str1是str2的关联子串。若str1是str2的关联子串,请返回子串在str…

    未分类 2025 年 1 月 10 日
    30600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信