【改版预告】订单状态将从一个字段变成…还是一个字段

图片[1]-【改版预告】订单状态将从一个字段变成...还是一个字段

很多系统的订单表有两个字段:pay_status(支付状态)和delivery_status(发货状态)。一个管钱,一个管货,看起来职责分明。

但用过的站长都知道,这两个字段组合出的状态,往往让人困惑。比如“已支付但发货失败”叫啥?“退款中但货已发”又该咋表示?后台列表筛选条件一大堆,客服看着状态发懵。

在EMSHOP的底层重构中,我们决定:只用一个status字段。

它不再拆分为支付和发货两个维度,而是一个综合状态。它的值包括:

pending(待付款)→ paid(已付款)→ delivering(发货中)→ delivered(已发货)→ completed(已完成)

退款场景也有自己的路径:refunding(退款中)→ refunded(已退款)

为什么这样做?因为订单的生命周期是一条单行道,绝大多数时候不会同时处于两个矛盾的支付和发货状态。用一个字段,状态流转逻辑更清晰,后台筛选更简单,插件开发时判断状态也更省心。

当然,支付记录依然会保留在独立的em_order_payment表中,供财务对账使用。但订单主表的status,将回归它最本质的作用:告诉我这笔订单现在到底处于什么阶段。

很小的改动,但对开发和运营都是减负。

下一篇预告,我们聊聊“为什么要把商品销量从主表挪走”。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容