交易订单与售后 API

本文归纳购物车、个人订单、商户订单、平台订单、支付动作、确认收货、退货和售后处理接口。

使用场景

场景 主要接口 说明
购物车管理 /api/v1/personal/shopping/cart 加购、查询当前用户购物车、删除
直接购买 /api/v1/personal/order/demo/api/v1/personal/order/create 从商品详情直接下单
购物车下单 /api/v1/personal/order/cart/demo/api/v1/personal/order/cart/create 从已勾选购物车生成订单
支付 /api/v1/personal/order/{orderId}/payment 支付订单并推进状态
订单查询 /api/v1/personal/order/page/api/v1/personal/order/{orderId} 消费者订单列表和详情
商户处理 /api/v1/merchant/order/api/v1/merchant/return/order 商户查看订单、确认或拒绝退货
平台监管 /api/v1/order/api/v1/order/return-request 平台查询订单和处理售后

标准下单流程

  1. 消费者进入商品详情或购物车。
  2. 选择 SKU、数量和收货地址。
  3. 调用预创建接口,后端返回商品价格、运费、优惠和可下单结果。
  4. 前端展示订单确认页。
  5. 用户确认后调用正式创建接口。
  6. 支付成功后调用支付接口,订单进入待发货。
  7. 商户通过发货单或订单侧能力处理发货。
  8. 消费者查看订单物流,签收后确认完成或申请退货。

后端订单逻辑

订单域以“试算 -> 创建 -> 支付 -> 履约 -> 完成或售后”为主线。试算和正式创建会复用价格、库存、地址和营销校验,但只有正式创建会持久化订单和锁定优惠券。

阶段 后端处理
购物车试算 校验购物车归属、SKU、货架、库存、地址、当前价格和优惠券结构
SKU 直购试算 校验 SKU、SPU、店铺、库存、地址、当前价格和优惠券适用范围
创建订单 保存主订单、子订单、订单项、状态日志,锁定所选优惠券,移除已下单购物车项
支付订单 校验待支付状态,校验锁券有效性,支付成功后标记用券、创建补贴、记录钱包入账
取消订单 待支付订单取消,释放锁定优惠券和预算预占
确认收货 推进订单项完成,触发后续评价和结算条件
申请退货 校验订单项状态、数量、售后窗口和是否已有未完成申请

订单金额计算来源:

金额 来源
商品原价 店铺货架价乘以数量
商品优惠 价格策略或活动价
优惠券优惠 平台券和商户券
运费 国内和国际运费规则
实付金额 商品金额减优惠加运费
商户结算基数 订单项快照,由价格和营销规则决定

关键状态

状态 业务含义 主要操作
待支付 订单已创建但未支付 支付、取消
待发货 支付完成,等待商户履约 商户发货、平台查询
待收货 已进入物流履约 查看物流、确认收货
待评价 订单完成但未评价 创建评价
售后中 用户发起退货或退款 商户确认、平台审核
已完成 交易闭环完成 结算、评价、售后限制

优惠券订单流程

优惠券已经接入订单预览、创建和支付。

步骤 接口 结果
不带券试算 POST /personal/order/cart/demoPOST /personal/order/demo 返回基础金额和按店铺拆单结果
查询可用券 POST /personal/order/cart/available-couponPOST /personal/order/available-coupon 返回当前订单可用平台券和商户券
带券试算 预览接口传 platformCouponWalletItemIdmerchantCouponWalletItems 返回优惠后金额
创建订单 创建接口传同一组卡券字段 保存订单并锁定优惠券
支付订单 POST /personal/order/{orderId}/payment 用券、生成分摊记录和补贴确认
取消或超时 取消接口或定时任务 释放卡券和预算预占

跨店订单中,平台券最多一张,商户券按店铺维度传入,每个店铺最多一张商户券。

端别 接口名称 方法 路径 权限标识 主要用途 主要调用端 后端 Controller
shared 购物车 GET /listGET /pageGET /{cartId}GET /personalPOSTDELETE /api/v1/personal/shopping/cart *:personal:shopping:cart:* 购物车查询、加购和删除 adminclient ShoppingCartController
client 个人订单交易 POST /cart/demoPOST /cart/createPOST /demoPOST /createPOST /{orderId}/paymentPUT /cancelPUT /sub-order/{orderSubItemId}/completedPUT /sub-order/{orderSubItemId}/return /api/v1/personal/order client:personal:order:* 预下单、下单、支付、取消、确认和申请退货 client PersonalOrderTransactionController
client 个人订单查询 GET /countGET /pageGET /page/pending-paymentGET /sub-order/pageGET /sub-order/page/waiting-shipGET /sub-order-item/page/waiting-receiveGET /sub-order-item/page/waiting-commentGET /sub-order-item/page/completedGET /sub-order-item/{orderSubItemId}/shipping-detailGET /{orderId} /api/v1/personal/order client:personal:order:query 订单列表、详情、状态计数和物流详情 client PersonalOrderQueryController
client 个人退货申请 GET /pageGET /{requestId}POSTPUT /{requestId}/cancel /api/v1/personal/return/order client:personal:return:order:* 消费者退货申请和取消 client PersonalReturnOrderController
client 商户订单 GET /pageGET /{orderSubItemId}PUT /sub-order/confirm /api/v1/merchant/order client:merchant:order:* 商户侧订单查询和确认 ops MerchantOrderController
client 商户退货处理 GET /pageGET /{requestId}PUT /{requestId}/confirmPUT /{requestId}/reject /api/v1/merchant/return/order client:merchant:return:order:* 商户确认或拒绝退货 ops MerchantReturnOrderController
admin 平台订单查询 GET /listGET /pageGET /{orderId} /api/v1/order admin:order:* 平台订单列表和详情 admin OrderQueryController
admin 平台订单交易 POST /cart/demoPOST /cart/createPOST /demoPOST /createPOST /{orderId}/paymentPUT /{orderId}/cancelPUT /{orderId}/closePUT /sub-order/{orderSubItemId}/confirmPUT /sub-order/{orderSubItemId}/payment-cancelPUT /sub-order/{orderSubItemId}/confirm-cancelPUT /sub-order/{orderSubItemId}/arrivedPUT /sub-order/{orderSubItemId}/completedPUT /sub-order/{orderSubItemId}/return-completed /api/v1/order admin:order:* 平台代操作订单状态 admin OrderTransactionController
admin 平台退货申请 GET /pageGET /{requestId}PUT /{requestId}/approvePUT /{requestId}/rejectPUT /{requestId}/complete /api/v1/order/return-request admin:order:return-request:* 平台售后审核和完成 admin OrderReturnRequestController
admin 账户异常工单 GET /pageGET /{caseId}POSTPUTDELETE /api/v1/account/abnormal-case admin:account:abnormal-case:* 账户异常与业务问题处理 admin AccountAbnormalCaseController
admin 商户退款异常 GET /pageGET /{recordId} /api/v1/merchant/refund-exception admin:merchant:refund-exception:* 商户退款异常查询 admin MerchantRefundExceptionController
client 商户退款异常 GET /pageGET /{recordId} /api/v1/merchant/refund-exception client:merchant:refund-exception:* 商户侧退款异常查询 ops MerchantRefundExceptionController

前端封装

  • admin/src/api/orderApi.ts
  • client/api/index.jsshoppingCartpersonalOrdercartOrderorderDemo 分组。
  • ops/api/logistics.js 中商户发货页面会消费发货单和发货明细接口,详见 物流履约.md

维护注意事项

  • 预创建接口只用于展示和校验,不应产生不可回滚的业务副作用。
  • 正式创建、支付、取消、确认收货等动作需要幂等,避免用户重复点击造成重复扣款或重复状态推进。
  • 订单金额字段需要明确原价、优惠、运费、实付和币种。
  • 退货申请需要校验订单状态、商品数量、售后期限和是否已有未完成售后。
  • 商户订单和平台订单的查询范围不同,不能只靠前端隐藏数据,后端必须做数据权限控制。
  • 支付前会重新校验锁定优惠券,失败时订单优惠可能需要重新试算。
  • 退款完成后需要联动优惠券、预算、补贴和商户结算反冲,不能只改变退货申请状态。

联调验收

场景 验收口径
购物车下单 购物车归属、数量调整、库存、价格和地址都按后端校验
SKU 直购 单商品试算和正式订单金额一致
带券下单 创建订单后卡券锁定,重复下单不能重复使用同一张券
支付成功 订单状态、支付流水、用券记录、预算流水和补贴记录完整
取消订单 待支付订单取消后卡券释放,订单状态不可继续支付
退货申请 已完成或符合售后条件的订单项才能申请退货
商户处理 商户只能查看和处理自己店铺的订单和退货
平台代操作 平台操作需要状态日志和明确业务原因