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

大家好,我是汤师爷~

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

线上交易系统为新零售连锁商家提供一站式线上交易解决方案。其核心目标是,通过数字化手段扩大商家的服务范围,突破传统门店的地理限制。系统支持电商、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面试真题、简历模版、架构设计,等经验分享。

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

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

相关文章

Postman接口测试详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 pre-request script 介绍 在过往的工作中,遇到很多测试小伙伴使用 postman 的时候都是直接通过 api 文档的描述请求,检查返回的数据是否正…

【单链表】(更新中...)

一、 题单 206.反转链表203.移除链表元素 876.链表的中间结点BM8 链表中倒数最后k个结点21.合并两个有序链表 二、题目简介及思路 206.反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路简单,但是除了要两个指针进…

深入理解 SQL 注入:原理、攻击流程与防御措施

深入理解 SQL 注入:原理、攻击流程与防御措施 在当今数字化的时代,数据安全已成为每个企业和开发者必须面对的重要课题。SQL 注入(SQL Injection)作为一种常见的网络攻击方式,给无数企业带来了巨大的损失。本文将深入…

市场上显卡型号需求分析

两个平台统计:(关键词统计,仅做参考) GPU型号|平台 github(提交量/万) huggingface(模型量/个) H100 6.6 210 A100 17.2 483 V100 14.4 484 4090 27.3 31 3090 11.1 92 在git…

C# WPF抽奖程序

C# WPF抽奖程序 using Microsoft.Win32; using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.…

Master EDI 项目需求分析

Master Electronics 通过其全球分销网络,支持多种采购需求,确保能够为客户提供可靠的元件供应链解决方案,同时为快速高效的与全球伙伴建立合作,Master 选择通过EDI来实现与交易伙伴间的数据传输。 EDI为交易伙伴之间建立了一个安…

基于单片机的输液速度监控系统设计

本设计是以STM32F103C8T6单片机为控制核心,用户可通过按键模块来设置液体高度与点滴速度的阈值,采用液位传感器实时监测瓶内液体位置,若液位低于所设阈值,蜂鸣器进行声音报警提醒患者或医生。采用步进电机通过控制输液管直径大小从…

河工oj新生周赛第八周2024

A.小七的作业 小柒的作业 - 问题 - 软件学院OJ 代码 #include<bits/stdc.h> using namespace std;int main() {string s;cin >> s;int l, r;cin >> l >> r;string str s.substr(l,r-l1);cout << str;return 0; } B.小七的签到题 小柒的签到…

FPGA工作原理、架构及底层资源

FPGA工作原理、架构及底层资源 文章目录 FPGA工作原理、架构及底层资源前言一、FPGA工作原理二、FPGA架构及底层资源 1.FPGA架构2.FPGA底层资源 2.1可编程输入/输出单元简称&#xff08;IOB&#xff09;2.2可配置逻辑块2.3丰富的布线资源2.4数字时钟管理模块(DCM)2.5嵌入式块 …

低功耗蓝牙模块在高尔夫测距仪上的应用

在绿意盎然的高尔夫球场上&#xff0c;每一次挥杆都承载着球员对精准与完美的追求。随着科技的飞速发展&#xff0c;高尔夫运动也迎来了智能化的革新。一款集成了先进蓝牙模组的高尔夫测距仪&#xff0c;它不仅重新定义了高尔夫运动的测距精度&#xff0c;更以无线互联的便捷性…

如何在 cPanel 中创建子域名:分步指南

cPanel 是一个用于管理网站的工具&#xff0c;操作界面简单直观&#xff0c;常用于管理网站的各种功能&#xff0c;包括创建子域名。很多知名的网络服务提供商&#xff0c;如 Hostease&#xff0c;都提供了 cPanel 管理工具。 本文将详细介绍如何在 cPanel 中创建子域名&#x…

减少30%人工处理时间,AI OCR与表格识别助力医疗化验单快速处理

在医疗行业&#xff0c;化验单作为重要的诊断依据和数据来源&#xff0c;涉及大量的文字和表格信息&#xff0c;传统的手工输入和数据处理方式不仅繁琐&#xff0c;而且容易出错&#xff0c;给医院的运营效率和数据准确性带来较大挑战。随着人工智能技术的快速发展&#xff0c;…

Linux安装BellSoft JDK 17 LTS

原来使用的OpenJdk&#xff0c;看到SpringBoot官网推荐&#xff08;如下图&#xff09;贝尔实验室的JDK&#xff0c;打算换一下 官方下载链接 JKD下载 可以看到Win、Mac、Linux都提供了&#xff0c;并且还有x86架构和arm架构的 在Linux中我们可以使用 uname -a 查看当前操作系…

C++(九)

前言&#xff1a; 本文主要讲述运算符的优先顺序。 一&#xff0c;运算符的优先级。 请看以下表达式&#xff1a; a32*5 运算结果为&#xff1a;13. 可以看到&#xff0c;在此代码中&#xff0c;先运行了2*5的结果&#xff0c;在此基础上在进行3操作&#xff0c;因此结果…

学生公寓智能限电系统的功能和作用

学生公寓智能限电系统‌是一种用于管理和限制学生公寓用电的设备和技术&#xff0c;旨在确保用电安全、防止火灾事故&#xff0c;并促进节能减排。以下是关于学生公寓智能限电系统的详细介绍&#xff1a; 1、功能和作用 智能限电系统通过以下功能来管理和限制用电&#xff1a…

嵌入式入门Day25

数据结构Day 6,IO Day1 查找算法顺序查找折半查找&#xff08;二分查找&#xff09;哈希查找 IO概念标准IO创建递归索引&#xff08;用于查询结构体定义&#xff09; 文件IO标准IO缓冲区指针相关函数 查找算法 顺序查找 关键字&#xff1a;分为主关键字和次关键字主关键字&am…

内网代理转发工具

概念区分 端口转发 端口转发就是将一个端口&#xff0c;这个端口可以本机的端口也可以是本机可以访问到的任意主机的端口&#xff0c;转发到任意一台可以访问到的IP上&#xff0c;通常这个IP是公网IP。 适用端口转发的网络环境有以下几种&#xff1a; 服务器处于内网&#x…

MNIST_FC

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

掌握时间,从`datetime`开始

文章目录 掌握时间&#xff0c;从datetime开始第一部分&#xff1a;背景介绍第二部分&#xff1a;datetime库是什么&#xff1f;第三部分&#xff1a;如何安装这个库&#xff1f;第四部分&#xff1a;简单库函数使用方法1. 获取当前日期和时间2. 创建特定的日期3. 计算两个日期…

算法之括号匹配中最长有效字符串

目录 1. 题目2. 解释3. 思路4. 代码5. 总结 1. 题目 任何一个左括号都能找到和其正确配对的右括号任何一个右括号都能找到和其正确配对的左括号 求最长的有效的括号长度 2. 解释 例如&#xff0c;这里的括号 ((((()()()()()()()))()最长有效是&#xff1a;((()()()()()()(…