订单管理¶
概述¶
R Commerce 中的订单管理系统处理客户购买的完整生命周期,从购物车到配送完成。
订单生命周期¶
┌─────────┐ ┌──────────┐ ┌───────────┐ ┌──────────┐ ┌───────────┐
│ Pending │───▶│Confirmed │───▶│Processing │───▶│ Shipped │───▶│Completed │
└─────────┘ └──────────┘ └───────────┘ └──────────┘ └───────────┘
│ │
│ ┌──────────┐ │
└─────────────▶│ Cancelled│◀─────────────────────────┘
└──────────┘
状态定义¶
| 状态 | 描述 |
|---|---|
| Pending | 订单已创建,等待支付确认 |
| Confirmed | 已收到付款,准备处理 |
| Processing | 订单正在准备发货 |
| On Hold | 需要人工审核 |
| Shipped | 订单已发货,运输中 |
| Completed | 订单已送达,已完成 |
| Cancelled | 订单已取消(发货前) |
| Refunded | 订单已退款(取消或退货后) |
订单结构¶
订单头¶
包含摘要信息: - 客户详情 - 账单/配送地址 - 财务总计 - 状态跟踪
行项目¶
订单中的单个产品: - 产品引用 - 变体(尺寸、颜色等) - 数量 - 定价(单价、折扣、税费)
支付¶
支付交易: - 使用的网关 - 金额和货币 - 状态(pending、authorized、paid、failed、refunded) - 交易 ID
配送¶
配送记录: - 承运商和服务 - 跟踪号 - 已发货商品 - 状态更新
订单处理流程¶
1. 订单创建¶
2. 支付处理¶
// 处理支付
let payment = payment_service
.process(order.id, payment_method)
.await?;
// 更新订单状态
order_service.update_status(order.id, OrderStatus::Confirmed).await?;
3. 库存预留¶
- 订单确认时预留库存
- 订单取消时释放预留
- 配送完成时调整库存
4. 配送¶
// 创建配送
let fulfillment = fulfillment_service
.create(order.id, items_to_ship)
.await?;
// 生成运单
let label = shipping_service
.create_label(fulfillment.id, carrier)
.await?;
订单备注¶
员工可以向订单添加备注: - 内部备注(仅员工可见) - 客户可见备注 - 系统生成备注(状态变更等)
订单编辑¶
订单在发货前可以编辑: - 添加/删除商品 - 更改数量 - 更新地址 - 应用折扣
欺诈检测¶
基础欺诈评分: - 订单价值阈值 - 速度检查 - 地址验证 - 风险评分集成
Webhook 事件¶
订单事件触发 Webhooks:
- order.created
- order.paid
- order.shipped
- order.completed
- order.cancelled