某一子订单的退货状态机

某一子订单的退款状态机

订单状态一般有以下6

待付款、待发货、已发货、已完成、已关闭、退款中


订单的最终状态如何判断

订单的最终状态只有2种:已完成、已关闭。

实付金额>0,最终状态是已完成。

实付金额=0,最终状态是已关闭。


订单支付金额不为0

0元订单从交易流程上讲是没问题,但是没有交易流水产生。

和订单的主流程是有一定差异的,需要考虑异常情况。比如退换货的时候如何处理,查询流水的时候查不到。

请使用0.01元代替。


tradeorder的关系和区别

trade称为父订单,order称为子订单,或者说trade是一笔交易单,子订单是每笔交易中的商品明细单,tradeorder可以是一对多的关系,trade是由使用购物车生成。

当一笔交易只有一个子订单,那么tid=oid,这个时候主要看trade结构体里面的内容,当一笔交易有多笔子订单(类似于购物车购买方式),那么tid=n*oid,这个时候主要看order结构体里面的内容。


订单交易号、订单号、支付宝&微信交易号的关系

交易号为tid,子订单号为oid,支付宝交易号为alipay_no,一笔交易可能包含多笔子订单,这就是一个购物车中的多个商品,一笔交易对应一个交易号,一种商品对应一笔子订单。


其他

如果订单需要退款,必须原路返回(央行规定)

订单状态变成已发货之后,不能再取消订单。

每笔订单至少包含1件商品。

u1141_seg0 u1141_seg1

发送到网仓

发送到手工单

u1142_seg0 u1142_seg1

买家下单

u1143_seg0 u1143_seg1

网仓出库

u1144_seg0 u1144_seg1

买家确认收货

u1145_seg0 u1145_seg1

u1146_seg0 u1146_seg1

u1147_seg0 u1147_seg1 u1147_seg2

u1148_seg0 u1148_seg1 u1148_seg2

退货是否成功

u1150_seg0 u1150_seg1 u1150_seg2

系统超过72小时

u1151_seg0 u1151_seg1 u1151_seg2 u1151_seg3

系统超过15

u1152_seg0 u1152_seg1

买家申请退款

退款是否成功

u1154_seg0 u1154_seg1
u1155_seg0 u1155_seg1 u1155_seg2 u1155_seg3 u1155_seg4 u1155_seg5

从网仓撤回

从手工单撤回

待付款

待发货

已确认

已发货

已完成

已关闭

退货失败

退货成功

=

父订单

子订单1

子订单2

子订单N

+

+

订单的逻辑拆分

+

子订单N+1

商品sku1

商品sku2

赠品sku1

补运费

按照sku将订单拆分成多笔子订单,只是补差价sku、补运费sku,发货的时候选择无需物流。

赠品sku的价格一般是0元,可以查看商品详情。

u1179_seg0 u1179_seg1 u1179_seg2

买家付款

退款中

u1181_seg0 u1181_seg1 u1181_seg2

退货中

+

商品sku…

订单状态机

u1187_seg0 u1187_seg1 u1187_seg2

买家申请退货

订单的金额构成

sku1金额

sku2金额

运费

活动

优惠券

+

+

+

u1197_seg0 u1197_seg1 u1197_seg2
u1198_seg0 u1198_seg1 u1198_seg2
u1199_seg0 u1199_seg1 u1199_seg2
u1200_seg0 u1200_seg1 u1200_seg2
u1201_seg0 u1201_seg1 u1201_seg2
u1202_seg0 u1202_seg1 u1202_seg2

打折

u1204_seg0 u1204_seg1 u1204_seg2
u1205_seg0 u1205_seg1 u1205_seg2

积分

-

sku…金额

+

订单金额

=

赠品

u1213_seg0 u1213_seg1 u1213_seg2
u1214_seg0 u1214_seg1 u1214_seg2

-

u1217_seg0 u1217_seg1 u1217_seg2
u1218_seg0 u1218_seg1 u1218_seg2
u1219_seg0 u1219_seg1 u1219_seg2

订单的物理拆分

临时订单

仓库1订单

仓库2订单

仓库…订单

=

+

+

当服务端检测到提交过来的订单含有多个仓库的商品,按照仓库拆分成多个订单。

拆分的时机有2种:

• 生成临时订单就立即拆分,这样的开发工作量最小。

• 付款成功之后再拆分,极大的减少了付款流失可能性。(京东是这种)

u1231_seg0 u1231_seg1
u1232_seg0 u1232_seg1 u1232_seg2 u1232_seg3

款项是否全退

u1234_seg0 u1234_seg1 u1234_seg2

sku是否全退

u1236_seg0 u1236_seg1

u1237_seg0 u1237_seg1 u1237_seg2

u1238_seg0 u1238_seg1 u1238_seg2

退款失败

退款成功

u1241_seg0 u1241_seg1
u1242_seg0 u1242_seg1 u1242_seg2
u1243_seg0 u1243_seg1 u1243_seg2

款项是否全退

sku是否全退

u1246_seg0 u1246_seg1
u1247_seg0 u1247_seg1 u1247_seg2

u1248_seg0 u1248_seg1 u1248_seg2

u1249_seg0 u1249_seg1 u1249_seg2

u1250_seg0 u1250_seg1 u1250_seg2

选择商品

确认订单

提交订单

u1257_seg0 u1257_seg1
u1258_seg0 u1258_seg1

加入购物车

查看商品

增减商品数量

选择支付方式

填写收货地址

填充优惠券

确认信息无误

选择SKU

选择商品数量

下单的功能结构图

页面标题

回到根目录

RP源文件

知识星球

 视频教程