English
订单状态机
e-commerce order flow
#12345
0
🎉 完整购买流程
❌ 取消订单
💸 支付后退款
↩️ 收货后退货
重置订单
当前订单状态
#12345 · ¥299
🛒
购物车
用户正在选择商品
购物车
支付
发货
送达
完成
可执行操作
💳
去结算
操作队列
0
执行操作
操作历史
完整状态流程图
🛒
购物车
用户正在选择商品
1 个操作
💳
待支付
订单已创建,等待支付
2 个操作
✅
已支付
支付成功,准备发货
2 个操作
🚚
已发货
商品正在配送中
2 个操作
📦
已送达
商品已送达用户
2 个操作
🎉
已完成
订单交易完成
1 个操作
❌
已取消
订单已被取消
1 个操作
💰
已退款
订单已退款
1 个操作
⭐
已评价
用户已完成评价
1 个操作
电商状态机应用
real world usage
订单管理:
确保订单状态转换的一致性和可追踪性
业务规则:
防止无效操作,如已发货订单不能直接取消
用户体验:
根据当前状态显示合适的操作按钮
数据一致性:
保证数据库中订单状态的准确性和完整性
实现示例
// 订单状态转换
const transitions = {
pending: { PAY: 'paid', CANCEL: 'cancelled' },
paid: { SHIP: 'shipped', REFUND: 'refunded' },
shipped: { DELIVER: 'delivered' },
delivered: { CONFIRM: 'completed' }
};
// 业务逻辑清晰,状态可控