Skip to content

交易管理 PRD

文档信息

项目内容
产品名称PMForge - 交易管理
文档版本v2.0
创建日期2026-09-21
最后更新2026-09-24
文档状态评审中
优先级P0

一、功能概述

1.1 功能定位

如果把商品管理比作"超市货架",那交易管理就是"收银台 + 售后柜台"——用户从挑选商品到付款离开、甚至回来退换的完整过程,都在这里发生。

交易管理是 PMForge 商城模块的核心业务引擎,承载平台从"用户加购"到"订单完结"的完整交易链路。它连接了商品管理(提供可售商品)、支付模块(完成资金流转)、营销模块(计算优惠折扣)、会员模块(积分抵扣)、物流配送(完成商品交付)五大上下游模块,是商城全链路闭环的枢纽。

一句话概括:购物车 → 下单 → 支付 → 发货 → 收货 → 评价 → 售后,这七个环节构成了交易管理的全部。

1.2 目标用户

用户类型使用场景核心诉求
平台运营人员日常订单处理、批量发货、异常订单管理高效处理订单、批量操作、快速定位异常
客服人员售后申请处理、用户投诉、退款跟进快速审核售后、跟踪退款进度、降低客诉率
财务人员订单对账、退款审核、财务报表金额准确、对账便捷、退款可控
仓库/物流人员发货打单、物流跟踪、异常件处理批量发货高效、物流可追踪
C 端消费者加购、下单、支付、查物流、售后购物体验流畅、售后便捷、退款快速

1.3 业务价值

  • 构建完整交易闭环,覆盖购物车→下单→支付→发货→收货→评价→售后全链路
  • 提供多维度订单筛选与导出能力,支撑运营决策与财务对账
  • 建立规范的售后处理流程,降低客诉率、提升用户满意度与复购率
  • 集成物流公司管理,实现物流轨迹实时追踪,提升用户信任感
  • 灵活的运费模板配置,满足不同商品/地区的差异化运费策略
  • 为商城统计分析模块提供可靠的交易数据基础

1.4 功能范围

功能分类后台管理端前台用户端
购物车管理(查看/清空)
购物车(加购/修改/结算)
交易订单列表
订单详情
订单操作(发货/备注/调价/关闭)
下单流程(确认/提交/支付)
取消订单
确认收货
评价订单
订单导出
多维度订单筛选✅(按状态分 Tab)
售后列表
售后审核/处理
退款申请
退货退款申请
填写退货物流
售后进度查看
售后统计
物流公司管理
物流单号录入
物流跟踪查询
发货单管理
运费模板管理
交易配置

二、用户场景

2.1 用户角色

角色描述核心诉求
平台运营(小刘)负责日常订单运营管理高效处理订单、批量操作、快速筛选异常订单
客服人员(小陈)负责售后与客诉处理快速审核售后申请、跟踪退款进度、处理纠纷
财务人员(小赵)负责交易对账与退款审核准确对账、退款可控、财务报表
仓库/物流人员(老周)负责商品发货与物流管理批量打单发货、物流跟踪、异常件处理
C 端消费者(小李)平台购物用户流畅加购下单、便捷支付、方便售后

2.2 使用场景

场景1:运营小刘日常订单处理

  • 用户:平台运营人员小刘
  • 场景:每天早上 9 点 → 小刘登录后台 → 进入订单管理 → 点击"待发货"Tab → 看到 47 笔待发货订单 → 勾选前 20 笔 → 点击"批量发货" → 导入 Excel(含物流单号) → 系统自动匹配物流公司并录入 → 发货成功 → 切换到"异常订单"筛选 → 处理 2 笔地址不明确的订单(添加商家备注)→ 关闭 1 笔用户要求取消的待发货订单
  • 期望:批量操作提升效率、订单状态一目了然、异常订单有醒目标识

验收标准(AC):

  1. AC-1:待发货 Tab 角标实时展示待发货订单数量,点击后列表仅展示待发货状态订单
  2. AC-2:批量发货支持 Excel 导入(模板含订单号、物流公司、物流单号三列),导入后自动匹配物流公司编码
  3. AC-3:批量发货单次上限 200 笔,超过时提示"请分批操作"
  4. AC-4:商家备注保存后在订单详情中展示,且备注操作记录在操作日志中
  5. AC-5:关闭订单需填写关闭原因,关闭后订单状态变为"已关闭",前台用户端同步更新

场景2:消费者小李购物下单

  • 用户:C 端消费者小李
  • 场景:午休刷手机 → 在商城搜索"项目管理书籍" → 找到一本 ¥68 的书 → 选规格"精装版" → 点击"加入购物车" → 继续逛 → 又加了 2 件商品 → 进入购物车 → 勾选 3 件商品 → 底部显示合计 ¥196 → 点击"去结算" → 确认订单页 → 选择收货地址 → 系统自动推荐一张"满 100 减 10"优惠券 → 勾选使用 → 实付 ¥186 + 运费 ¥8 = ¥194 → 提交订单 → 微信支付 → 支付成功 → 等待收货
  • 期望:加购流畅、价格计算清晰、支付安全可靠

验收标准(AC):

  1. AC-1:加入购物车后购物车角标数量 +1,动画提示
  2. AC-2:确认订单页实时计算价格,切换地址/优惠券/积分时金额即时刷新,延迟 < 500ms
  3. AC-3:系统自动推荐最优优惠券(优惠金额最大的一张),用户可手动切换
  4. AC-4:提交订单后库存立即锁定(下单减库存模式),30 分钟未支付自动取消并释放库存
  5. AC-5:支付成功后订单状态变为"待发货",页面跳转到订单详情页展示支付结果

场景3:客服小陈处理售后申请

  • 用户:客服人员小陈
  • 场景:收到系统通知"新售后申请" → 点击进入售后管理 → 看到一笔"退货退款"申请 → 查看商品(一件 ¥299 的外套)、退货原因(尺码偏小)、凭证图片(3 张实物照片)→ 判断符合售后政策 → 点击"同意退货" → 系统自动通知用户退货地址 → 3 天后用户填写了退货物流 → 小陈跟踪物流显示已签收 → 确认收到退货 → 系统自动发起退款 ¥299 → 退款原路返回用户微信
  • 期望:售后信息完整展示、审核流程清晰、退款进度可追踪

验收标准(AC):

  1. AC-1:售后详情页完整展示商品信息(图片、名称、规格、单价)、用户申请原因、凭证图片、订单信息
  2. AC-2:同意退货后系统自动将退货地址通过短信/站内信通知用户
  3. AC-3:退款执行后展示退款进度(退款中 → 退款成功/失败),退款原路返回
  4. AC-4:售后操作日志完整记录每一步操作(操作人、操作时间、操作类型、备注)
  5. AC-5:商家超过 48 小时未处理售后申请时,系统自动发送提醒通知

场景4:消费者小李申请退货退款

  • 用户:C 端消费者小李
  • 场景:收到一件衣服 → 发现颜色与图片差异较大 → 进入"我的订单" → 找到该订单 → 点击"申请售后" → 选择"退货退款" → 选择原因"商品与描述不符" → 上传 3 张实物对比照片 → 确认退款金额 ¥159 → 提交 → 2 天后商家同意 → 页面展示退货地址 → 小李寄出快递 → 填写退货物流单号 → 2 天后商家确认收货 → 退款 ¥159 到账
  • 期望:售后申请简单便捷、进度实时可查、退款快速到账

验收标准(AC):

  1. AC-1:售后申请页展示退款金额上限(不超过该订单项实付金额),用户可修改但不超过上限
  2. AC-2:凭证图片支持 JPG/PNG 格式,最多 9 张,单张不超过 5MB,上传时预览
  3. AC-3:售后进度页以时间线形式展示每一步状态变化与操作记录
  4. AC-4:审核通过后退货地址清晰展示,支持一键复制
  5. AC-5:退款到账后推送通知"退款 ¥159 已原路返回"

场景5:仓库老周批量发货

  • 用户:仓库/物流人员老周
  • 场景:打开后台 → 进入待发货列表 → 看到 85 笔待发货订单 → 点击"导出待发货订单" → 打印快递面单 → 逐单扫码录入物流单号(或批量导入 Excel)→ 确认发货 → 系统自动给用户发送"已发货"通知(含物流公司和单号)
  • 期望:支持批量操作、物流单号录入高效、发货后自动通知用户

验收标准(AC):

  1. AC-1:导出的待发货订单 Excel 包含订单号、商品名称、规格、数量、收货人、手机号、地址
  2. AC-2:支持逐单录入和 Excel 批量导入两种发货方式
  3. AC-3:物流单号录入后自动校验格式(如顺丰单号为 SF 开头 + 12 位数字)
  4. AC-4:发货成功后系统自动推送通知给用户,内容含物流公司和物流单号
  5. AC-5:发货后订单状态从"待发货"变为"待收货",列表自动刷新

场景6:财务小赵月度对账

  • 用户:财务人员小赵
  • 场景:月底 → 选择时间范围"2026-09-01 至 2026-09-30" → 按"已支付"状态筛选 → 导出订单报表 → 得到 2,347 笔订单数据 → 与微信支付渠道账单逐笔核对 → 发现 3 笔退款记录 → 在售后管理中核实退款详情 → 确认无误 → 完成月度对账
  • 期望:导出数据完整准确、金额计算精确、支持多维度筛选

验收标准(AC):

  1. AC-1:导出 Excel 包含订单号、支付方式、实付金额、退款金额、订单状态等关键字段
  2. AC-2:金额以"元"为单位展示,精确到小数点后 2 位
  3. AC-3:收货人手机号在导出文件中脱敏处理(中间 4 位用 * 替代)
  4. AC-4:单次导出上限 10,000 条,超过时异步导出并通知下载
  5. AC-5:导出数据与页面筛选条件一致,不遗漏不多余

三、功能需求

3.1 后台管理端

3.1.1 功能清单

功能优先级说明
购物车管理P2查看/清空用户购物车数据
交易订单列表P0分页展示订单,多维度筛选
订单详情P0查看订单完整信息
订单操作P0发货、备注、调价、关闭
订单导出P1导出订单数据 Excel
售后列表P0查看售后申请列表
售后审核P0同意/拒绝/协商售后申请
退款处理P0执行退款操作
售后统计P1售后数据概览
物流公司管理P1维护物流公司信息
物流跟踪查询P1查询物流轨迹
发货单管理P1管理发货记录
运费模板管理P1配置运费计算规则
交易配置P2配置交易相关参数

3.1.2 购物车管理(管理视角)

页面描述:

购物车管理

业务规则:

规则编号规则描述设计原因
R-01仅查看用户购物车数据,不可修改商品/数量管理端只读,避免误操作影响用户购物体验
R-02支持按用户 ID/昵称搜索购物车客服场景需快速定位用户购物车协助排查
R-03清空购物车后不可恢复,需二次确认防止误操作导致用户购物车数据丢失
R-04已下架商品在购物车列表中标识"已下架"便于运营了解失效商品占用购物车情况

接口设计:

接口名称请求方式接口路径说明
获取购物车分页GET/admin-api/trade/cart/page分页查询购物车列表
清空用户购物车DELETE/admin-api/trade/cart/clean清空指定用户购物车

请求参数(分页查询):

参数名类型必填说明
userIdLong用户ID
pageNoInteger页码
pageSizeInteger每页条数

返回结果:

字段名类型说明
idLong购物车项ID
userIdLong用户ID
userNicknameString用户昵称
spuIdLongSPU ID
skuIdLongSKU ID
spuNameString商品名称
skuPropertiesString规格属性描述
picUrlString商品图片
countInteger数量
selectedBoolean是否选中
priceBigDecimal单价
stockInteger库存
productStatusInteger商品状态(上架/下架)
createTimeDateTime加入时间

3.1.3 交易订单列表

页面描述:

交易订单列表

筛选条件:

筛选项类型说明
订单号输入框精确/模糊搜索
用户信息输入框用户昵称/手机号
订单状态下拉选择待支付/待发货/待收货/已完成/已评价/已取消
支付方式下拉选择微信支付/支付宝/钱包余额
创建时间日期范围起止时间
金额范围数值范围最小金额-最大金额
收货人输入框收货人姓名
配送方式下拉选择快递配送/自提

业务规则:

规则编号规则描述设计原因
R-01默认按创建时间倒序排列最新订单优先处理,符合运营习惯
R-02订单号全局唯一,格式:年月日 HHmmss + 6 位随机数保证唯一性且便于人工识别日期
R-03支持按状态 Tab 快速切换筛选运营日常按状态处理订单,Tab 切换效率最高
R-04金额范围筛选包含边界值避免边界金额订单被遗漏
R-05已取消和已关闭的订单仅支持查看详情,无其他操作终态订单不可再操作,防止数据异常
R-06售后中的订单标识当前有进行中的售后单运营一眼识别哪些订单有售后纠纷
R-07待支付订单超过配置时间自动取消(默认 30 分钟,可配置)释放库存和优惠券资源,避免长时间占压
R-08待收货订单超过配置时间自动确认收货(默认 14 天,可配置)模拟主流电商平台规则,避免订单长期挂起
R-09已完成订单超过配置时间自动完成(默认 7 天,可配置)确认收货后留评价缓冲期
R-10金额单位为分,展示时转换为元后端用分避免浮点精度问题,前端展示转元

数据字段:

字段名类型说明
idLong订单ID
noString订单编号
userIdLong用户ID
userNicknameString用户昵称
statusInteger订单状态
productCountInteger商品数量
allPayPriceBigDecimal商品总金额(元)
deliveryPriceBigDecimal运费(元)
discountPriceBigDecimal优惠金额(元)
pointPayPriceBigDecimal积分抵扣金额(元)
payPriceBigDecimal实付金额(元)
payOrderIdLong支付单ID
deliveryTypeInteger配送方式(1-快递 2-自提)
receiverNameString收货人姓名
receiverMobileString收货人手机号
receiverDetailAddressString收货详细地址
deliveryExpressNameString物流公司名称
deliveryExpressNoString物流单号
remarkString买家备注
adminRemarkString商家备注
payTimeDateTime支付时间
deliveryTimeDateTime发货时间
receiveTimeDateTime收货时间
createTimeDateTime下单时间

接口设计:

接口名称请求方式接口路径说明
获取订单分页GET/admin-api/trade/order/page获取订单分页列表
获取订单详情GET/admin-api/trade/order/get-detail获取订单完整详情
订单发货PUT/admin-api/trade/order/delivery订单发货操作
订单备注PUT/admin-api/trade/order/update-remark更新商家备注
订单调价PUT/admin-api/trade/order/update-price调整订单金额
订单关闭PUT/admin-api/trade/order/close关闭订单
导出订单GET/admin-api/trade/order/export导出订单 Excel
获取订单统计GET/admin-api/trade/order/get-statistics获取各状态订单数量

请求参数(分页查询):

参数名类型必填说明
noString订单编号(模糊匹配)
userIdLong用户ID
userNicknameString用户昵称(模糊匹配)
statusInteger订单状态
payTypeInteger支付方式
deliveryTypeInteger配送方式
receiverNameString收货人姓名
createTimeDateTime[]创建时间范围
payTimeDateTime[]支付时间范围
minPayPriceBigDecimal最小实付金额
maxPayPriceBigDecimal最大实付金额
pageNoInteger页码
pageSizeInteger每页条数

3.1.4 订单详情

页面描述:

订单详情

订单状态流转规则:

当前状态可流转到触发条件
待支付待发货用户支付成功
待支付已取消用户主动取消 / 超时自动取消
待发货待收货商家发货
待收货已完成用户确认收货 / 超时自动确认
已完成已评价用户完成评价
任意未完成状态售后中用户申请售后

金额计算公式:

商品总金额(allPayPrice)= SUM(商品单价 × 数量)
运费(deliveryPrice)= 运费模板计算结果
优惠金额(discountPrice)= 优惠券面额 + 满减优惠
积分抵扣(pointPayPrice)= 使用积分 × 积分兑换比例
实付金额(payPrice)= allPayPrice + deliveryPrice - discountPrice - pointPayPrice

给开发同学的说明:金额计算全部在服务端完成,前端传入的金额仅作为参考,服务端必须重新校验计算。这是防止金额篡改的核心安全措施。

业务规则:

规则编号规则描述设计原因
R-01订单详情展示完整的信息快照,即使商品后续修改也不影响历史订单展示订单是交易凭证,必须保留下单时的商品信息
R-02物流轨迹需调用第三方物流查询接口实时获取物流信息实时变化,缓存会导致信息滞后
R-03操作记录按时间倒序展示,包含操作人、操作类型、操作时间方便快速看到最新操作,符合查看习惯
R-04调价操作仅限待支付/待发货状态,且只能调整商品总金额已发货后调价涉及物流费用变动,复杂度过高
R-05调价后需重新计算实付金额,若已支付则产生差额退款/补款保证金额一致性,避免财务对账异常
R-06关闭订单仅限待支付/待发货状态,需填写关闭原因已发货订单关闭涉及退货物流,需走售后流程

接口设计:

接口名称请求方式接口路径说明
获取订单详情GET/admin-api/trade/order/get-detail获取订单完整详情
获取物流轨迹GET/admin-api/trade/order/get-express-track获取物流跟踪信息
获取订单操作记录GET/admin-api/trade/order/get-log获取订单操作日志

订单发货请求参数:

参数名类型必填说明
idLong订单ID
deliveryExpressIdLong物流公司ID
deliveryExpressNoString物流单号

订单备注请求参数:

参数名类型必填说明
idLong订单ID
adminRemarkString商家备注内容

订单调价请求参数:

参数名类型必填说明
idLong订单ID
adjustPriceBigDecimal调整金额(正数加价,负数减价)

订单关闭请求参数:

参数名类型必填说明
idLong订单ID
closeReasonString关闭原因

3.1.5 订单导出

页面描述:

  • 点击"导出"按钮
  • 弹窗选择导出范围与字段
  • 大数据量异步导出,完成后通知下载

业务规则:

规则编号规则描述设计原因
R-01支持 xlsx 格式主流办公格式,兼容性最好
R-02单次最多导出 10,000 条防止大数据量导出导致系统性能下降
R-03超过 10,000 条采用异步导出大文件生成耗时,异步避免用户等待
R-04导出当前筛选条件下的订单数据保证导出内容与页面展示一致
R-05手机号脱敏处理(中间 4 位用 * 替代)保护用户隐私,符合数据安全规范
R-06包含订单基本信息、商品信息、收货信息、支付信息满足财务对账和运营分析的完整数据需求

导出字段:

字段说明
订单编号订单唯一编号
用户昵称下单用户
商品信息商品名称×数量
商品总金额商品金额合计
运费运费金额
优惠金额优惠抵扣
积分抵扣积分抵扣金额
实付金额实际支付金额
订单状态当前状态
支付方式支付渠道
收货人收货人姓名
收货手机号收货人电话(脱敏)
收货地址详细收货地址
物流公司物流公司名称
物流单号快递单号
买家备注用户下单备注
商家备注运营备注
下单时间创建时间
支付时间支付完成时间
发货时间发货操作时间

3.1.6 售后管理

页面描述:

售后管理

售后类型:

类型说明适用条件
仅退款不退货,仅退还支付金额商品未发货 / 商品有质量问题但不需退货
退货退款退货并退还支付金额已收到商品,需退回商品

售后状态流转:

状态说明后续流转
待审核用户提交售后申请→ 已同意(商家同意) / 已拒绝(商家拒绝) / 待协商
商家已同意(仅退款)商家同意仅退款→ 退款中 → 已完成
商家已同意(退货退款)商家同意退货→ 待用户发货 → 待商家收货 → 退款中 → 已完成
待用户发货用户需填写退货物流→ 待商家收货
待商家收货退货在途/已收到待确认→ 退款中
退款中正在执行退款→ 已完成 / 退款失败
已完成售后流程结束终态
已拒绝商家拒绝售后用户可重新申请
待协商商家与用户协商中→ 商家已同意 / 已拒绝

业务规则:

规则编号规则描述设计原因
R-01售后申请需在订单完成后 15 天内提出(可配置)平衡用户权益与商家管理成本,15 天是行业通行标准
R-02仅退款:待发货状态可直接退款,已发货需商家审核未发货无需退货,流程简化;已发货需确认商品情况
R-03退货退款:商家确认收货后才执行退款确保商家收到退货后再退款,避免钱货两空
R-04退款金额不得超过实付金额防止超额退款导致资金损失
R-05售后原路退回,即使用原支付方式退款符合支付渠道规范,避免资金流向异常
R-06退款失败需人工介入处理自动退款可能因渠道原因失败,需人工兜底
R-07售后审核需记录操作人与操作时间售后涉及资金操作,必须有完整审计轨迹
R-08商家超过 48 小时未处理售后,系统自动提醒避免售后长时间无人处理导致用户投诉升级
R-09凭证图片最多上传 9 张,支持 JPG/PNG 格式,单张不超过 5MB保证举证充分的同时控制存储成本
R-10用户可撤销售后申请,撤销后可重新申请(在时效内)给用户修改申请的机会,提升售后体验

接口设计:

接口名称请求方式接口路径说明
获取售后分页GET/admin-api/trade/after-sale/page获取售后列表
获取售后详情GET/admin-api/trade/after-sale/get-detail获取售后申请详情
同意售后PUT/admin-api/trade/after-sale/agree同意售后申请
拒绝售后PUT/admin-api/trade/after-sale/disagree拒绝售后申请
确认收货(退货)PUT/admin-api/trade/after-sale/confirm-receive确认收到退货
执行退款PUT/admin-api/trade/after-sale/refund执行退款操作
获取售后统计GET/admin-api/trade/after-sale/get-statistics获取售后数据统计

请求参数(售后分页查询):

参数名类型必填说明
noString售后单号(模糊匹配)
orderIdLong关联订单ID
orderNoString关联订单号
userIdLong用户ID
typeInteger售后类型(10-仅退款 20-退货退款)
statusInteger售后状态
wayInteger售后方式
applyTimeDateTime[]申请时间范围
pageNoInteger页码
pageSizeInteger每页条数

售后详情返回结果:

字段名类型说明
idLong售后单ID
noString售后单号
typeInteger售后类型
wayInteger售后方式
statusInteger售后状态
userIdLong用户ID
userNicknameString用户昵称
orderIdLong订单ID
orderNoString订单编号
orderItemIdLong订单项ID
spuNameString商品名称
skuPropertiesString规格描述
picUrlString商品图片
countInteger退货数量
orderPriceBigDecimal订单原价
applyRefundPriceBigDecimal申请退款金额
refundPriceBigDecimal实际退款金额
applyReasonString申请原因
applyDescriptionString申请描述
applyPicUrlsString[]凭证图片列表
logisticsIdLong退货物流公司ID
logisticsNoString退货物流单号
logisticsTrackListObject[]物流轨迹
refundTimeDateTime退款时间
reasonString拒绝原因(如拒绝)
operateHistoryObject[]操作记录
createTimeDateTime申请时间

3.1.7 售后统计

页面描述:

  • 数据看板形式展示
  • 支持时间范围选择
  • 展示核心售后指标

统计指标:

指标说明
售后单总数选定时间范围内的售后申请总数
待处理数量当前待审核的售后单数量
退款总金额选定时间范围内的退款总金额
仅退款数量/金额仅退款的售后单数与金额
退货退款数量/金额退货退款的售后单数与金额
售后率售后单数 / 订单总数 × 100%
退款原因分布各退款原因的占比
平均处理时长从申请到完成的平均耗时

接口设计:

接口名称请求方式接口路径说明
获取售后统计GET/admin-api/trade/after-sale/get-statistics获取售后统计数据
获取退款原因分布GET/admin-api/trade/after-sale/get-reason-statistics获取退款原因分布

3.1.8 物流配送管理

页面描述:

  • 分为三个子页面:物流公司管理、运费模板管理、发货单管理
  • 物流公司管理:列表展示、增删改查
  • 运费模板管理:列表展示、创建/编辑模板
  • 发货单管理:待发货订单列表、发货操作
3.1.8.1 物流公司管理

业务规则:

规则编号规则描述设计原因
R-01物流公司信息包括:公司名称、编码、联系电话、官网完整的公司信息便于运营选择和用户查询
R-02物流公司编码全局唯一编码用于对接物流查询 API,必须唯一
R-03支持启用/禁用物流公司不合作的物流公司可禁用而非删除,保留历史数据
R-04已关联订单的物流公司不可删除,仅可禁用历史订单仍需展示物流信息,删除会导致数据断裂
R-05支持自定义排序常用物流公司排在前面,提升操作效率

接口设计:

接口名称请求方式接口路径说明
获取物流公司分页GET/admin-api/trade/delivery/express/page获取物流公司列表
获取物流公司详情GET/admin-api/trade/delivery/express/get获取物流公司详情
创建物流公司POST/admin-api/trade/delivery/express/create创建物流公司
更新物流公司PUT/admin-api/trade/delivery/express/update更新物流公司
删除物流公司DELETE/admin-api/trade/delivery/express/delete删除物流公司
获取物流公司精简列表GET/admin-api/trade/delivery/express/simple-list获取启用状态的物流公司列表(用于下拉选择)

请求参数(创建/更新物流公司):

参数名类型必填说明
idLong更新时必填物流公司ID
nameString公司名称
codeString公司编码
logoString公司Logo URL
contactPhoneString联系电话
websiteString公司官网
sortInteger排序值
statusInteger状态(0-启用 1-禁用)
3.1.8.2 运费模板管理

页面描述:

  • 列表展示所有运费模板
  • 支持创建/编辑/删除模板
  • 模板配置:计费方式、首重/续重费用、指定地区运费

业务规则:

规则编号规则描述设计原因
R-01计费方式支持:按件数、按重量覆盖绝大多数电商商品的运费计算场景
R-02按件数:首件费用 + 续件费用适合标准化商品(如书籍、电子产品)
R-03按重量:首重费用 + 续重费用适合重量差异大的商品(如食品、日用品)
R-04支持按地区设置差异化运费(默认全国 + 指定地区)偏远地区运费更高,需要差异化定价
R-05可设置满额包邮条件提升客单价的有效营销手段
R-06已关联商品的模板不可删除,仅可禁用避免商品运费计算断裂
R-07订单运费取商品所绑模板的运费,多商品取最高运费合并配送场景下,避免运费重复计算

接口设计:

接口名称请求方式接口路径说明
获取运费模板分页GET/admin-api/trade/delivery/express-template/page获取运费模板列表
获取运费模板详情GET/admin-api/trade/delivery/express-template/get获取模板详情
创建运费模板POST/admin-api/trade/delivery/express-template/create创建运费模板
更新运费模板PUT/admin-api/trade/delivery/express-template/update更新运费模板
删除运费模板DELETE/admin-api/trade/delivery/express-template/delete删除运费模板
计算运费POST/admin-api/trade/delivery/express-template/calculate根据模板计算运费

请求参数(创建/更新运费模板):

参数名类型必填说明
idLong更新时必填模板ID
nameString模板名称
chargeModeInteger计费方式(1-按件 2-按重量)
sortInteger排序值
areaTemplatesObject[]地区运费配置列表

地区运费配置(areaTemplates 子对象):

参数名类型必填说明
areaIdsLong[]地区ID列表
startCountBigDecimal首件/首重数量
startPriceBigDecimal首件/首重费用
extraCountBigDecimal续件/续重数量
extraPriceBigDecimal续件/续重费用
freeDeliveryPriceBigDecimal满额包邮金额
3.1.8.3 物流跟踪查询

页面描述:

  • 输入物流单号或选择订单查询物流轨迹
  • 时间线形式展示物流节点

接口设计:

接口名称请求方式接口路径说明
查询物流轨迹GET/admin-api/trade/delivery/express/track根据物流公司+单号查询物流轨迹

请求参数:

参数名类型必填说明
expressIdLong物流公司ID
expressNoString物流单号

返回结果:

字段名类型说明
expressNameString物流公司名称
expressNoString物流单号
trackListObject[]物流轨迹列表
trackList[].timeDateTime时间节点
trackList[].contentString物流描述
trackList[].statusString物流状态

3.1.9 交易配置

页面描述:

  • 配置交易模块的全局参数
  • 包含:订单超时配置、售后配置等

配置项:

配置项类型默认值说明
订单超时自动取消时间分钟30待支付订单超时自动取消
订单超时自动确认收货时间14待收货订单超时自动确认
订单自动完成时间7确认收货后自动完成时间
售后申请时效15订单完成后多少天内可申请售后
售后自动同意时间小时48商家超时未处理自动同意
售后凭证是否必填布尔false申请售后是否必须上传凭证

接口设计:

接口名称请求方式接口路径说明
获取交易配置GET/admin-api/trade/config/get获取交易配置
更新交易配置PUT/admin-api/trade/config/save保存交易配置

3.2 前台用户端

3.2.1 功能清单

功能优先级说明
购物车P0商品加购、管理、结算
确认订单P0选择地址、优惠券、积分抵扣
提交订单P0生成订单
订单支付P0完成支付
订单列表P0按状态分 Tab 展示订单
订单详情P0查看订单完整信息
取消订单P0取消待支付订单
确认收货P0确认收到商品
评价订单P1对已完成订单评价
申请售后P0退款/退货退款申请
填写退货物流P0售后审核通过后填写物流
售后进度查看P0查看售后处理进度

3.2.2 购物车

页面描述:

用户购物车

操作流程:

  1. 商品详情页选择规格 → 点击"加入购物车"
  2. 进入购物车 → 勾选需要结算的商品
  3. 可修改商品数量(+/-)或删除不需要的商品
  4. 底部展示已选商品合计金额
  5. 点击"去结算" → 跳转确认订单页

业务规则:

规则编号规则描述设计原因
R-01同一用户同一 SKU 只能有一条购物车记录,重复加购合并数量避免购物车出现重复商品,简化结算流程
R-02购物车商品数量上限 200 种(可配置)防止购物车过大影响性能和用户体验
R-03单个 SKU 数量上限为该 SKU 库存数量防止用户加购超过可售数量
R-04商品下架/删除后在购物车中标识"失效",不可勾选让用户知道商品已不可购买,引导清理
R-05失效商品支持"找相似"推荐将失效流量转化为新商品浏览,提升转化
R-06全选时仅勾选有效商品失效商品不可购买,不应被选中
R-07结算时校验商品库存与价格,若发生变化需提示用户购物车中的商品可能已调价或库存不足
R-08购物车数据支持多端同步用户可能在手机和电脑间切换购物
R-09未登录用户加购数据存储在本地,登录后合并到服务端未登录也能加购,降低使用门槛
R-10商品价格实时取最新价格,展示原价与促销价让用户看到最新优惠信息

接口设计:

接口名称请求方式接口路径说明
获取购物车列表GET/app-api/trade/cart/list获取当前用户购物车
加入购物车POST/app-api/trade/cart/add添加商品到购物车
修改购物车数量PUT/app-api/trade/cart/update-count修改商品数量
删除购物车商品DELETE/app-api/trade/cart/delete删除购物车中商品
清空购物车DELETE/app-api/trade/cart/clean清空购物车
勾选/取消勾选PUT/app-api/trade/cart/select设置商品选中状态
全选/取消全选PUT/app-api/trade/cart/select-all全选或取消全选
合并购物车POST/app-api/trade/cart/merge登录后合并本地购物车

加入购物车请求参数:

参数名类型必填说明
spuIdLong商品 SPU ID
skuIdLong商品 SKU ID
countInteger数量

修改数量请求参数:

参数名类型必填说明
idLong购物车项ID
countInteger新数量

购物车列表返回结果:

字段名类型说明
idLong购物车项ID
spuIdLongSPU ID
skuIdLongSKU ID
spuNameString商品名称
skuPropertiesString规格描述(如"红色/XL")
picUrlString商品图片
countInteger数量
selectedBoolean是否选中
priceBigDecimal当前单价
originalPriceBigDecimal原价
stockInteger库存
productStatusInteger商品状态
totalPriceBigDecimal小计金额

3.2.3 下单流程

页面描述:

确认订单页面

操作流程:

  1. 从购物车结算 / 立即购买 → 进入确认订单页
  2. 选择/填写收货地址
  3. 确认商品信息与配送方式
  4. 选择可用优惠券(系统推荐最优)
  5. 选择是否使用积分抵扣
  6. 填写备注(可选)
  7. 确认价格明细
  8. 点击"提交订单" → 生成待支付订单
  9. 跳转支付页面 → 完成支付

价格计算规则:

项目计算方式说明
商品金额SUM(商品单价 × 数量)按勾选商品计算
运费运费模板计算根据收货地址与商品模板
优惠券抵扣优惠券面额不超过商品金额
积分抵扣使用积分 × 兑换比例不超过配置的最大抵扣比例
实付金额商品金额 + 运费 - 优惠 - 积分抵扣最低为 0.01 元

业务规则:

规则编号规则描述设计原因
R-01提交订单时校验商品库存,库存不足则提示防止超卖,保证订单可履约
R-02提交订单时校验商品价格,若价格变化则提示购物车中价格可能已过期,需确认
R-03提交订单时校验优惠券有效性(过期/已使用)防止无效优惠券被使用
R-04提交订单后锁定库存(下单减库存模式,可配置为支付减库存)下单减库存体验好但可能被恶意占库存;支付减库存安全但可能超卖
R-05订单创建后 30 分钟未支付自动取消,释放库存与优惠券释放被占用的资源
R-06同一订单不可重复使用同一优惠券防止优惠券重复使用
R-07积分抵扣上限为实付金额的一定比例(可配置,默认 50%)避免全额积分抵扣导致无实际支付(无法触发支付回调)
R-08提交订单采用防重提交,避免并发创建多个订单防止网络延迟导致用户重复点击创建多笔订单
R-09确认订单页需实时计算价格,地址/优惠券/积分变化时重新计算保证价格准确性
R-10支付成功后扣减用户积分(若使用积分抵扣)积分已消费,需同步扣减

接口设计:

接口名称请求方式接口路径说明
确认订单(预计算)POST/app-api/trade/order/pre-create确认订单页数据与价格预计算
提交订单POST/app-api/trade/order/create创建交易订单
获取可用优惠券GET/app-api/trade/order/available-coupons获取当前订单可用优惠券
积分抵扣计算POST/app-api/trade/order/point-calculate计算积分可抵扣金额

确认订单请求参数:

参数名类型必填说明
cartIdsLong[]购物车结算时必填购物车项ID列表
buyNowSpuIdLong立即购买时必填商品 SPU ID
buyNowSkuIdLong立即购买时必填商品 SKU ID
buyNowCountInteger立即购买时必填购买数量
deliveryAddressIdLong收货地址ID
couponIdLong优惠券ID
usePointBoolean是否使用积分抵扣
pointCountInteger使用的积分数量
deliveryTypeInteger配送方式(1-快递 2-自提)
remarkString买家备注

提交订单返回结果:

字段名类型说明
idLong订单ID
noString订单编号
payPriceBigDecimal实付金额
payOrderIdLong支付单ID

3.2.4 订单支付

页面描述:

  • 展示订单信息与应付金额
  • 选择支付方式(微信支付/支付宝/钱包余额)
  • 拉起支付 → 支付成功 → 跳转订单详情

业务规则:

规则编号规则描述设计原因
R-01支持多种支付方式(微信支付、支付宝、钱包余额)覆盖主流支付习惯,提升支付成功率
R-02支付超时后订单自动取消与交易配置中的超时时间一致
R-03支付成功后更新订单状态为"待发货"触发后续发货流程
R-04支付成功后扣减商品库存(支付减库存模式时)与库存扣减模式配置一致
R-05支付失败可重新发起支付给用户重试机会,提升支付成功率
R-06同一订单同时只能有一笔进行中的支付防止重复支付
R-07支付回调需做幂等处理支付渠道可能重复回调,必须幂等

接口设计:

接口名称请求方式接口路径说明
发起支付POST/app-api/trade/order/pay发起订单支付
获取支付结果GET/app-api/trade/order/pay-result查询支付结果

发起支付请求参数:

参数名类型必填说明
idLong订单ID
payChannelInteger支付渠道(1-微信 2-支付宝 3-钱包余额)
returnUrlString支付完成回调地址

3.2.5 订单列表(用户端)

页面描述:

  • 顶部 Tab 栏:全部 / 待支付 / 待发货 / 待收货 / 待评价
  • 订单列表:卡片式展示(商品缩略图+名称+规格+金额+状态+操作按钮)
  • 下拉加载更多(分页)
  • 空状态引导用户去购物

各 Tab 操作按钮:

Tab可用操作
待支付取消订单、去支付
待发货提醒发货、申请售后
待收货查看物流、确认收货、申请售后
待评价去评价
已完成再次购买、查看详情

业务规则:

规则编号规则描述设计原因
R-01默认按创建时间倒序排列最新订单优先展示
R-02每个订单卡片展示第一个商品的缩略信息,多商品展示"等 N 件"卡片简洁,一屏展示更多订单
R-03下拉分页,每页 10 条移动端适合小分页加载
R-04Tab 角标展示各状态订单数量用户一眼看到有多少订单待处理

接口设计:

接口名称请求方式接口路径说明
获取订单分页GET/app-api/trade/order/page获取用户订单列表
获取各状态订单数量GET/app-api/trade/order/count获取各状态订单数量(用于 Tab 角标)

请求参数:

参数名类型必填说明
statusInteger订单状态(不传则查全部)
pageNoInteger页码
pageSizeInteger每页条数

3.2.6 订单详情(用户端)

页面描述:

  • 订单状态栏:当前状态 + 状态说明(如"请在 30 分钟内完成支付")
  • 收货地址区:收货人、手机号、详细地址
  • 商品信息区:商品列表
  • 价格明细区:商品金额、运费、优惠、积分抵扣、实付
  • 订单信息区:订单编号、下单时间、支付时间、支付方式
  • 物流信息区:物流公司、物流单号、物流轨迹(待收货/已完成展示)
  • 操作按钮区:根据状态展示不同操作

接口设计:

接口名称请求方式接口路径说明
获取订单详情GET/app-api/trade/order/get-detail获取订单完整详情
取消订单PUT/app-api/trade/order/cancel取消待支付订单
确认收货PUT/app-api/trade/order/receive确认收货
删除订单DELETE/app-api/trade/order/delete删除已完成/已取消订单
获取物流轨迹GET/app-api/trade/order/get-express-track获取物流跟踪

取消订单请求参数:

参数名类型必填说明
idLong订单ID
reasonString取消原因

确认收货请求参数:

参数名类型必填说明
idLong订单ID

3.2.7 评价订单

页面描述:

  • 订单商品列表,每个商品独立评价
  • 每项包含:星级评分(1-5 星)、评价内容(文字)、上传图片(最多 9 张)
  • 可勾选"匿名评价"
  • 支持追加评价

业务规则:

规则编号规则描述设计原因
R-01仅已完成状态的订单可评价确保用户已收到商品后再评价
R-02每个商品可独立评价,也可一次性全部评价灵活评价方式,提升评价率
R-03评价内容 200 字以内控制内容长度,保证评价质量
R-04图片最多 9 张,支持 JPG/PNG,单张不超过 5MB与主流平台一致,控制存储成本
R-05评价提交后不可修改,但可追加评价(30 天内)防止篡改评价,同时允许补充信息
R-06匿名评价不展示用户头像和昵称保护用户隐私
R-07订单超过评价时效(默认 15 天)未评价,系统默认五星好评避免订单长期停留在"待评价"状态
R-08评价完成后订单状态流转为"已评价"标记订单全链路完成

接口设计:

接口名称请求方式接口路径说明
提交评价POST/app-api/trade/order/comment/create提交订单评价
追加评价POST/app-api/trade/order/comment/append追加评价
获取待评价商品GET/app-api/trade/order/comment/pending获取待评价的商品列表

提交评价请求参数:

参数名类型必填说明
orderIdLong订单ID
itemsObject[]评价商品列表
items[].orderItemIdLong订单项ID
items[].descriptionScoresInteger描述评分(1-5)
items[].benefitScoresInteger性价比评分(1-5)
items[].contentString评价文字
items[].picUrlsString[]评价图片
items[].anonymousBoolean是否匿名

3.2.8 售后管理(用户端)

页面描述:

  • 售后列表:按状态分 Tab(全部/待审核/待退货/退款中/已完成/已拒绝)
  • 售后详情:售后单信息、商品信息、退款进度、操作记录
  • 申请售后页:选择售后类型、填写原因、上传凭证

售后类型说明:

类型说明条件
仅退款不退货,退还支付金额未发货 / 商品质量问题无需退货
退货退款退货并退还支付金额已收到商品

售后原因列表:

原因分类具体原因
商品问题质量问题、描述不符、假货、破损、少件/漏发
物流问题物流损坏、物流超时
买家原因不想要了、拍多/拍错、其他
卖家原因卖家发错货、卖家缺货

操作流程(仅退款):

  1. 进入订单详情 → 点击"申请售后"
  2. 选择"仅退款"
  3. 选择退款原因
  4. 填写详细描述(可选)
  5. 上传凭证图片(可选)
  6. 确认退款金额
  7. 提交申请 → 等待商家审核
  8. 审核通过 → 退款到账

操作流程(退货退款):

  1. 进入订单详情 → 点击"申请售后"
  2. 选择"退货退款"
  3. 选择退款原因
  4. 填写详细描述(可选)
  5. 上传凭证图片(可选)
  6. 确认退款金额
  7. 提交申请 → 等待商家审核
  8. 审核通过 → 填写退货物流单号
  9. 商家确认收货 → 退款到账

业务规则:

规则编号规则描述设计原因
R-01待发货状态只能申请"仅退款"未收到商品无法退货
R-02已发货/已收货状态可申请"仅退款"或"退货退款"用户已收到商品,两种售后方式均可
R-03退款金额不得超过该订单项的实付金额防止超额退款
R-04每个订单项同一时间只能有一个进行中的售后单避免多个售后单冲突
R-05售后被拒绝后可重新申请(需在售后时效内)给用户修改申请再提交的机会
R-06售后申请提交后可撤销(待审核状态)用户可能改变主意
R-07退货退款审核通过后 7 天内需填写物流信息,否则售后单自动关闭避免售后单长期挂起
R-08凭证图片最多 9 张与评价图片规则一致
R-09撤销售后后优惠券和积分不退回防止利用售后套取优惠券/积分
R-10退款原路返回(微信支付退回微信、支付宝退回支付宝、钱包退回钱包)符合支付渠道规范

接口设计:

接口名称请求方式接口路径说明
创建售后申请POST/app-api/trade/after-sale/create提交售后申请
获取售后列表GET/app-api/trade/after-sale/page获取用户售后列表
获取售后详情GET/app-api/trade/after-sale/get-detail获取售后详情
取消售后申请PUT/app-api/trade/after-sale/cancel撤销售后申请
填写退货物流PUT/app-api/trade/after-sale/delivery填写退货物流信息
获取售后操作记录GET/app-api/trade/after-sale/get-log获取售后处理进度

创建售后申请请求参数:

参数名类型必填说明
orderIdLong订单ID
orderItemIdLong订单项ID
typeInteger售后类型(10-仅退款 20-退货退款)
applyRefundPriceBigDecimal申请退款金额
logisticsIdLong退货退款时必填退货物流公司ID
logisticsNoString退货退款时必填退货物流单号
applyReasonString申请原因
applyDescriptionString详细描述
applyPicUrlsString[]凭证图片URL列表

填写退货物流请求参数:

参数名类型必填说明
idLong售后单ID
logisticsIdLong退货物流公司ID
logisticsNoString退货物流单号

四、非功能需求

4.1 性能要求

指标要求说明
购物车列表查询< 200ms含商品信息实时查询
订单列表查询< 500ms含多维度筛选
订单详情查询< 300ms含物流轨迹
下单接口< 1000ms含库存校验、价格计算、订单创建
支付接口< 2000ms含调用第三方支付渠道
售后列表查询< 500ms响应时间
物流轨迹查询< 3000ms含第三方物流 API 调用
订单导出< 60s10,000 条数据异步导出
购物车并发加购> 5000 QPS高峰期并发能力
下单并发> 1000 QPS秒杀/促销场景并发下单

4.2 安全要求

要求说明
接口鉴权所有交易接口需登录认证,后台接口需权限校验
数据隔离用户只能操作自己的订单/购物车/售后
租户隔离不同租户的订单数据完全隔离
防重提交下单、支付接口需防重提交(幂等性)
金额校验服务端必须重新计算金额,不信任前端传入的金额
操作日志所有后台操作记录操作日志(含操作人、操作类型、变更内容)
敏感信息收货人手机号、地址在列表接口中脱敏展示
退款安全退款金额不得超过实付金额,退款操作需二次确认
接口限流下单/支付接口限流保护,防止恶意请求
数据签名支付回调接口需验签

4.3 兼容性要求

要求
后台管理端(PC)Chrome 80+、Firefox 75+、Safari 13+、Edge 80+
前台用户端(H5)iOS Safari 12+、Android Chrome 80+、微信内置浏览器
前台用户端(小程序)微信小程序基础库 2.10.0+
前台用户端(App)iOS 12.0+、Android 6.0+
分辨率适配后台支持 1366×768 及以上;前台适配 320px - 750px 宽度

五、数据设计

5.1 核心表结构

5.1.1 购物车表(trade_cart)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
user_idBIGINTNOT NULL用户ID
spu_idBIGINTNOT NULL商品 SPU ID
sku_idBIGINTNOT NULL商品 SKU ID
countINTNOT NULL, DEFAULT 1商品数量
selectedTINYINTNOT NULL, DEFAULT 1是否选中(0-否 1-是)
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

索引:

  • idx_user_id:user_id
  • uk_user_sku:user_id + sku_id(唯一索引,保证同一用户同一 SKU 只有一条记录)

5.1.2 交易订单表(trade_order)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
user_idBIGINTNOT NULL用户ID
cart_idVARCHAR(2048)购物车项ID列表(逗号分隔)
noVARCHAR(32)NOT NULL, UNIQUE订单编号
statusTINYINTNOT NULL订单状态(0-待支付 10-待发货 20-待收货 30-已完成 40-已评价 50-已取消)
product_countINTNOT NULL商品数量
all_pay_priceINTNOT NULL商品总金额(分)
delivery_priceINTNOT NULL, DEFAULT 0运费(分)
discount_priceINTNOT NULL, DEFAULT 0优惠金额(分)
point_pay_priceINTNOT NULL, DEFAULT 0积分抵扣金额(分)
pay_priceINTNOT NULL实付金额(分)
pay_order_idBIGINT支付单ID
pay_typeTINYINT支付方式(1-微信 2-支付宝 3-钱包余额)
pay_timeDATETIME支付时间
delivery_typeTINYINTNOT NULL配送方式(1-快递 2-自提)
delivery_idBIGINT发货记录ID
receiver_nameVARCHAR(64)NOT NULL收货人姓名
receiver_mobileVARCHAR(20)NOT NULL收货人手机号
receiver_area_idBIGINT收货地区ID
receiver_post_codeVARCHAR(10)收货邮编
receiver_detail_addressVARCHAR(256)NOT NULL收货详细地址
delivery_express_idBIGINT物流公司ID
delivery_express_noVARCHAR(64)物流单号
delivery_timeDATETIME发货时间
receive_timeDATETIME收货时间
remarkVARCHAR(512)买家备注
admin_remarkVARCHAR(512)商家备注
close_reasonVARCHAR(256)关闭原因
coupon_idBIGINT使用的优惠券ID
use_pointINTDEFAULT 0使用的积分数量
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

订单状态枚举:

状态说明
0待支付等待用户支付
10待发货支付成功,等待商家发货
20待收货已发货,等待用户确认收货
30已完成确认收货后完成
40已评价用户完成评价
50已取消用户取消或超时取消

索引:

  • uk_no:no(唯一索引)
  • idx_user_id:user_id
  • idx_status:status
  • idx_create_time:create_time
  • idx_pay_time:pay_time

5.1.3 订单商品表(trade_order_item)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
order_idBIGINTNOT NULL订单ID
order_item_idBIGINT父订单项ID(用于拆单场景)
user_idBIGINTNOT NULL用户ID
spu_idBIGINTNOT NULL商品 SPU ID
spu_nameVARCHAR(256)NOT NULL商品名称(快照)
sku_idBIGINTNOT NULL商品 SKU ID
propertiesVARCHAR(512)规格属性(JSON 快照)
pic_urlVARCHAR(512)商品图片(快照)
countINTNOT NULL购买数量
priceINTNOT NULL商品单价(分)
pay_priceINTNOT NULL实付金额(分)
discount_priceINTNOT NULL, DEFAULT 0优惠金额(分)
point_pay_priceINTNOT NULL, DEFAULT 0积分抵扣金额(分)
delivery_priceINTNOT NULL, DEFAULT 0运费分摊(分)
after_sale_statusTINYINTNOT NULL, DEFAULT 0售后状态(0-无售后 1-售后中 2-售后完成)
after_sale_idBIGINT关联售后单ID
comment_statusTINYINTNOT NULL, DEFAULT 0评价状态(0-未评价 1-已评价)
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

索引:

  • idx_order_id:order_id
  • idx_user_id:user_id
  • idx_spu_id:spu_id

5.1.4 售后表(trade_after_sale)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
user_idBIGINTNOT NULL用户ID
order_idBIGINTNOT NULL订单ID
order_item_idBIGINTNOT NULL订单项ID
noVARCHAR(32)NOT NULL, UNIQUE售后单号
statusTINYINTNOT NULL售后状态
wayTINYINTNOT NULL售后方式(10-仅退款 20-退货退款)
typeTINYINTNOT NULL售后类型
order_priceINTNOT NULL订单原价(分)
apply_refund_priceINTNOT NULL申请退款金额(分)
refund_priceINT实际退款金额(分)
logistics_idBIGINT退货物流公司ID
logistics_noVARCHAR(64)退货物流单号
apply_reasonVARCHAR(128)NOT NULL申请原因
apply_descriptionVARCHAR(512)申请描述
apply_pic_urlsVARCHAR(2048)凭证图片URL列表
refund_reasonVARCHAR(256)拒绝原因
refund_timeDATETIME退款时间
receive_timeDATETIME商家确认收货时间
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

售后状态枚举:

状态说明
10待审核用户已提交,等待商家审核
20商家已同意(仅退款)商家同意仅退款
21商家已同意(退货退款)商家同意退货退款
30待用户发货等待用户填写退货物流
40待商家收货退货在途或已收到待确认
50退款中正在执行退款
60已完成售后流程完结
70已拒绝商家拒绝售后
80待协商商家与用户协商中

索引:

  • uk_no:no(唯一索引)
  • idx_user_id:user_id
  • idx_order_id:order_id
  • idx_order_item_id:order_item_id
  • idx_status:status

5.1.5 交易配置表(trade_config)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
config_keyVARCHAR(128)NOT NULL, UNIQUE配置键
config_valueVARCHAR(512)NOT NULL配置值
config_descVARCHAR(256)配置说明
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

默认配置项:

config_keyconfig_valueconfig_desc
order_close_time30待支付订单超时取消时间(分钟)
order_auto_receive_time14待收货超时自动确认时间(天)
order_auto_complete_time7确认收货后自动完成时间(天)
after_sale_apply_limit15售后申请时效(天)
after_sale_auto_agree_time48商家超时自动同意时间(小时)
after_sale_pic_requiredfalse售后凭证是否必填
cart_max_count200购物车商品种类上限
point_deduction_ratio50积分最大抵扣比例(%)
stock_reduce_modeorder库存扣减模式(order-下单扣 pay-支付扣)

5.1.6 物流公司表(trade_delivery_express)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
nameVARCHAR(128)NOT NULL物流公司名称
codeVARCHAR(64)NOT NULL, UNIQUE物流公司编码
logoVARCHAR(512)公司Logo URL
contact_phoneVARCHAR(32)联系电话
websiteVARCHAR(256)公司官网
sortINTNOT NULL, DEFAULT 0排序值
statusTINYINTNOT NULL, DEFAULT 0状态(0-启用 1-禁用)
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

索引:

  • uk_code:code(唯一索引)
  • idx_status:status

5.1.7 运费模板表(trade_delivery_express_template)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
nameVARCHAR(128)NOT NULL模板名称
charge_modeTINYINTNOT NULL计费方式(1-按件 2-按重量)
sortINTNOT NULL, DEFAULT 0排序值
statusTINYINTNOT NULL, DEFAULT 0状态(0-启用 1-禁用)
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

5.1.8 运费模板地区配置表(trade_delivery_express_template_area)

字段名类型约束说明
idBIGINTPK, AUTO_INCREMENT主键
template_idBIGINTNOT NULL模板ID
area_idsVARCHAR(2048)NOT NULL地区ID列表(逗号分隔)
start_countDECIMAL(10,2)NOT NULL首件/首重数量
start_priceINTNOT NULL首件/首重费用(分)
extra_countDECIMAL(10,2)NOT NULL续件/续重数量
extra_priceINTNOT NULL续件/续重费用(分)
free_delivery_priceINT满额包邮金额(分)
creatorVARCHAR(64)创建者
create_timeDATETIMENOT NULL创建时间
updaterVARCHAR(64)更新者
update_timeDATETIMENOT NULL更新时间
deletedBITNOT NULL, DEFAULT 0删除标记
tenant_idBIGINTNOT NULL租户ID

索引:

  • idx_template_id:template_id

六、跨模块联动

6.1 交易 → 商品管理

联动点触发时机联动方式说明
商品快照下单时数据拷贝订单订单项保存商品名称、规格、图片、单价的快照,后续商品修改不影响历史订单
库存扣减下单/支付时接口调用根据配置模式(下单扣/支付扣)调用商品模块扣减 SKU 库存
库存释放订单取消/超时接口调用订单取消时回滚已锁定的库存
商品状态校验加购/结算时接口调用校验商品是否上架、SKU 是否有库存
销量更新订单完成后异步消息订单完成后异步更新商品销量数据

6.2 交易 → 支付模块

联动点触发时机联动方式说明
创建支付单提交订单后接口调用调用支付模块创建支付单,获取支付参数
支付回调支付成功回调通知支付模块回调交易模块更新订单状态
退款售后审核通过接口调用调用支付模块发起原路退款
钱包余额扣减使用钱包支付时接口调用调用会员模块扣减钱包余额

6.3 交易 → 营销模块

联动点触发时机联动方式说明
优惠券核销下单时接口调用调用营销模块核销优惠券
优惠券释放订单取消时接口调用订单取消时退回已核销的优惠券
满减计算确认订单页接口调用调用营销模块计算满减优惠金额
积分抵扣下单时接口调用调用会员模块计算积分可抵扣金额并扣减

6.4 交易 → 会员模块

联动点触发时机联动方式说明
积分扣减支付成功后接口调用扣减用户使用的积分
积分释放订单取消时接口调用退回已扣减的积分
积分赠送订单完成后异步消息根据消费金额赠送用户积分
用户等级订单完成后异步消息累计消费金额影响用户等级

6.5 交易 → 统计分析

联动点触发时机联动方式说明
交易数据订单状态变更时异步消息推送订单数据到统计模块用于交易分析
售后数据售后状态变更时异步消息推送售后数据用于售后分析
商品销量订单完成后异步消息推送商品维度销量数据

七、附录

7.1 名词解释

术语通俗解释类比
SPU标准产品单元,一个"商品"的标识就像"可口可乐"是一个 SPU
SKU库存单位,具体到某个规格"330ml 罐装可口可乐"就是一个 SKU
订单编号系统自动生成的订单身份证号类似快递单号,每单唯一
售后单号售后申请的唯一编号类似维修工单号
实付金额用户真正掏了多少钱= 商品价 + 运费 - 优惠 - 积分抵扣
运费模板定义"运费怎么算"的规则表类似快递公司的计费标准
支付单支付系统生成的支付凭证类似超市的付款小票
幂等性同一个操作执行多次和执行一次效果一样类似电梯按钮——按多次和按一次效果相同
下单减库存下单就扣库存,不付就释放类似餐厅预留座位——先占着,超时取消
支付减库存付了钱才扣库存类似演唱会——付款确认才算数
物流轨迹快递运输过程中的节点记录类似外卖配送地图上的骑手位置
仅退款不退商品,只退钱类似外卖洒了——不用退餐,直接退钱
退货退款退回商品,同时退钱类似网购衣服不合身——寄回去,钱退给你
满额包邮买够一定金额就免运费类似超市"满 99 元免配送费"
防重提交防止同一操作被重复执行类似地铁闸机——刷一次过一个人,连刷不会过两个

7.2 权限标识

权限标识说明所属模块
trade:cart:query查看购物车购物车管理
trade:cart:clean清空购物车购物车管理
trade:order:query查看订单订单管理
trade:order:detail订单详情订单管理
trade:order:delivery订单发货订单管理
trade:order:remark订单备注订单管理
trade:order:adjust-price订单调价订单管理
trade:order:close订单关闭订单管理
trade:order:export订单导出订单管理
trade:after-sale:query查看售后售后管理
trade:after-sale:detail售后详情售后管理
trade:after-sale:agree同意售后售后管理
trade:after-sale:disagree拒绝售后售后管理
trade:after-sale:refund执行退款售后管理
trade:after-sale:confirm-receive确认退货收货售后管理
trade:after-sale:statistics售后统计售后管理
trade:delivery:express:query查看物流公司物流管理
trade:delivery:express:create新增物流公司物流管理
trade:delivery:express:update编辑物流公司物流管理
trade:delivery:express:delete删除物流公司物流管理
trade:delivery:express-template:query查看运费模板物流管理
trade:delivery:express-template:create新增运费模板物流管理
trade:delivery:express-template:update编辑运费模板物流管理
trade:delivery:express-template:delete删除运费模板物流管理
trade:delivery:track物流跟踪查询物流管理
trade:config:query查看交易配置交易配置
trade:config:save保存交易配置交易配置

7.3 接口汇总(后台管理端)

序号接口名称请求方式接口路径说明
1获取购物车分页GET/admin-api/trade/cart/page购物车列表
2清空用户购物车DELETE/admin-api/trade/cart/clean清空购物车
3获取订单分页GET/admin-api/trade/order/page订单列表
4获取订单详情GET/admin-api/trade/order/get-detail订单详情
5订单发货PUT/admin-api/trade/order/delivery发货操作
6订单备注PUT/admin-api/trade/order/update-remark更新备注
7订单调价PUT/admin-api/trade/order/update-price调整金额
8订单关闭PUT/admin-api/trade/order/close关闭订单
9导出订单GET/admin-api/trade/order/export导出 Excel
10获取订单统计GET/admin-api/trade/order/get-statistics各状态数量
11获取物流轨迹GET/admin-api/trade/order/get-express-track物流查询
12获取订单操作记录GET/admin-api/trade/order/get-log操作日志
13获取售后分页GET/admin-api/trade/after-sale/page售后列表
14获取售后详情GET/admin-api/trade/after-sale/get-detail售后详情
15同意售后PUT/admin-api/trade/after-sale/agree审核通过
16拒绝售后PUT/admin-api/trade/after-sale/disagree审核拒绝
17确认收货PUT/admin-api/trade/after-sale/confirm-receive确认退货
18执行退款PUT/admin-api/trade/after-sale/refund退款操作
19获取售后统计GET/admin-api/trade/after-sale/get-statistics售后统计
20获取退款原因分布GET/admin-api/trade/after-sale/get-reason-statistics原因分布
21获取物流公司分页GET/admin-api/trade/delivery/express/page物流公司列表
22获取物流公司详情GET/admin-api/trade/delivery/express/get物流公司详情
23创建物流公司POST/admin-api/trade/delivery/express/create新增物流公司
24更新物流公司PUT/admin-api/trade/delivery/express/update编辑物流公司
25删除物流公司DELETE/admin-api/trade/delivery/express/delete删除物流公司
26获取物流公司精简列表GET/admin-api/trade/delivery/express/simple-list下拉选择
27获取运费模板分页GET/admin-api/trade/delivery/express-template/page模板列表
28获取运费模板详情GET/admin-api/trade/delivery/express-template/get模板详情
29创建运费模板POST/admin-api/trade/delivery/express-template/create新增模板
30更新运费模板PUT/admin-api/trade/delivery/express-template/update编辑模板
31删除运费模板DELETE/admin-api/trade/delivery/express-template/delete删除模板
32计算运费POST/admin-api/trade/delivery/express-template/calculate运费计算
33查询物流轨迹GET/admin-api/trade/delivery/express/track物流轨迹
34获取交易配置GET/admin-api/trade/config/get配置查询
35更新交易配置PUT/admin-api/trade/config/save配置保存

7.4 接口汇总(前台用户端)

序号接口名称请求方式接口路径说明
1获取购物车列表GET/app-api/trade/cart/list购物车
2加入购物车POST/app-api/trade/cart/add加购
3修改购物车数量PUT/app-api/trade/cart/update-count改数量
4删除购物车商品DELETE/app-api/trade/cart/delete删除商品
5清空购物车DELETE/app-api/trade/cart/clean清空
6勾选/取消勾选PUT/app-api/trade/cart/select勾选
7全选/取消全选PUT/app-api/trade/cart/select-all全选
8合并购物车POST/app-api/trade/cart/merge登录后合并
9确认订单POST/app-api/trade/order/pre-create预计算
10提交订单POST/app-api/trade/order/create创建订单
11获取可用优惠券GET/app-api/trade/order/available-coupons可用券
12积分抵扣计算POST/app-api/trade/order/point-calculate积分计算
13发起支付POST/app-api/trade/order/pay支付
14获取支付结果GET/app-api/trade/order/pay-result支付结果
15获取订单分页GET/app-api/trade/order/page订单列表
16获取各状态数量GET/app-api/trade/order/countTab 角标
17获取订单详情GET/app-api/trade/order/get-detail订单详情
18取消订单PUT/app-api/trade/order/cancel取消
19确认收货PUT/app-api/trade/order/receive确认收货
20删除订单DELETE/app-api/trade/order/delete删除订单
21获取物流轨迹GET/app-api/trade/order/get-express-track物流查询
22提交评价POST/app-api/trade/order/comment/create评价
23追加评价POST/app-api/trade/order/comment/append追评
24获取待评价商品GET/app-api/trade/order/comment/pending待评价
25创建售后申请POST/app-api/trade/after-sale/create申请售后
26获取售后列表GET/app-api/trade/after-sale/page售后列表
27获取售后详情GET/app-api/trade/after-sale/get-detail售后详情
28取消售后申请PUT/app-api/trade/after-sale/cancel撤销售后
29填写退货物流PUT/app-api/trade/after-sale/delivery退货物流
30获取售后操作记录GET/app-api/trade/after-sale/get-log售后进度

7.5 错误码定义

错误码说明处理建议
TRADE_ORDER_NOT_FOUND订单不存在检查订单 ID 是否正确
TRADE_ORDER_STATUS_ERROR订单状态不允许当前操作检查订单当前状态是否支持该操作
TRADE_ORDER_PAY_PRICE_ERROR订单金额计算异常刷新页面重试,联系管理员
TRADE_STOCK_NOT_ENOUGH商品库存不足减少购买数量或选择其他规格
TRADE_COUPON_INVALID优惠券不可用检查优惠券是否过期或已使用
TRADE_COUPON_NOT_MATCH优惠券不满足使用条件检查优惠券使用门槛
TRADE_AFTER_SALE_EXIST该商品已有进行中的售后等待当前售后完成后再申请
TRADE_AFTER_SALE_TIMEOUT已超过售后申请时效无法申请售后,联系客服
TRADE_REFUND_PRICE_EXCEED退款金额超过实付金额调整退款金额
TRADE_DELIVERY_TEMPLATE_USED运费模板已被商品使用,无法删除先解除商品关联再删除
TRADE_CART_FULL购物车已满清理购物车后重试
TRADE_ORDER_DUPLICATE重复提交订单请稍后重试

7.6 变更记录

版本日期修改内容修改人
v1.02026-09-24初始版本,完成交易管理全部功能设计PM Team
v2.02026-09-19增强版:补充业务场景与验收标准、ASCII 原型图、业务规则设计原因、跨模块联动、名词解释类比PM Team

本文档为交易管理模块 PRD v2.0,如有问题请联系产品负责人。