订单管理
订单状态:
NOT_PAY(1, "待付款"), // WAIT PAY 待付款
PAID(2, "已付款"), // PAID/WAIT RECEIVE 待收货
DELIVERED(3, "已发货"), // PAID/WAIT RECEIVE 待收货
SUCCESS(6, "交易成功"), // FINISH COMMENT
NOT_PAY_CLOSE(8, "未付款关闭"), // CANCEL
WAIT_BUSINESS_CONFIRM(9, "待商户确认"), //暂时无用
//中间值留作扩展
ORDERED(16, "已下单"), // PAID/WAIT RECEIVE 待收货
审核状态:
NO_NEED_APPROVE(0, "无需审核"),
WAITING_TO_APPROVE(1, "待审核"),
APPROVE_PASS(2, "审核通过"),
APPROVE_FAIL(3, "审核不通过");
Approved(5,"审核通过"); // PAID/WAIT RECEIVE 待收货
REFUNDED(4, "退款关闭"), // REFUND 售后
上方的状态更多的是业务表示的状态, 而不是技术实现上的逻辑状态机.
比如 退款关闭
和 未退款关闭
逻辑状态机上都属于 交易关闭
, 只是不同的 action 导致了业务上的不同.
- 正向订单状态: 待付款, 待发货, 待收货, 交易成功, 取消
- 逆向(售后)订单状态: 待审核, 待退货(待换货), 待退款(换货出库), 售后成功
订单下单
订单信息中,主要包含以下内容:用户信息、订单基础信息、收货信息、商品信息、优惠信息、支付信息、物流信息、其他信息等。
订单的内容复杂精细,在存储时除了表结构的设置,还应该注意信息冗余。特别是商品信息,由于商品的内容不断编辑变化,要保存下单时的商品快照,避免过长时间后,商品信息丢失。
订单拆单
一般在下单时会考虑商家分类与仓库因素进行拆单,其他的因素会在支付后发货前再考虑进去,用于拆分发货单.
在用户提交订单之后、支付之前的拆分订单,需要即时显示给用户,若用户中断支付,再回到支付环节,就需要分开支付.
在支付之后,系统根据一些影响因素进行拆单,同一个子订单可能会对应多个物流单,在订单显示页面查看物流信息时,需要展示多个物流信息
订单售后
订单逆向流程分为:
- 用户主动发起
- 客服发起等
关键节点有: (要考虑部分退货退款)
- 待付款取消订单
- 待发货取消订单
- 待收获/交易成功退货
- 待收获/交易成功退款
订单统计
- 常规统计(财务统计):
销售额、毛利、成本、纯利润、客单价等
- 流量统计:
指导电商平台运营工作,分析用户行为、订单流量等,如访客数、浏览量、支付转化率等
订单流量分析中又分为三个维度: 订单交易纬度、商品纬度、订单来源等
交易分析
- 统计周期内的订单销售额
- 订单量
- 客单量: 统计周期内,已支付的订单平均金额。
- 下单用户数与支付用户数
- 支付新用户数与支付老用户数
- 订单金额分布: 订单金额在各价位之间的占比
- 地域分布:分析各区域的购买转化率及订单量、客单价
商品分析
- 被下单的商品数
- 被支付的商品数
- 被访问的商品数
- 商品收藏次数
- 商品销量统计
- 加购件数
订单来源分析
- 统计出每个订单的来源
- 记录订单产生的流程
- 追踪订单来源
提供服务
交易查询 TradeQueryService
统计订单数量(userId, payStatus)
统计已/未评论订单数量(userId, flag)
// 过滤隐藏/删除订单, 评价状态
分页查询订单列表(userId, payStatus, pageNo, pageSize, filterHidden, reviewStatus)
交易退款查询 TradeRefundQueryService
统计退款单数量(userId)
交易 TradeService
用户主动确认收货(userId, tradId)
商品查询
sku查询(skuId)
交易信息保存
现金抵扣券 可以抵扣邮费,订单
,由于一笔订单只会有一个邮费(不记录skuId),而抵扣商品必然会保存skuId(以此区分抵扣类型)