2021年Q1入职新团队,4月份在一次团队产品评审会议上。各位产品伙伴对于订单的一个流程进行了激烈的讨论,大致问题是:
“关于退货库存返还和退款时机的讨论,线上订单流程很清晰,退货会等顾客寄回实物,收到实物入库之后,运营人员再触发退款流程进行退款。这样确保了真实世界不可逆的数字化。
然而线下门店是临场操作,顾客、商品、收银员,商品还回、交接查验、入库、退款,几个信息单元、行为点密集的发生在很短的时间点上。这个短暂的时间,还要面临事件的多变性,历史的设计逻辑是,收银员从系统上面点击了售后申请、然后返还增加库存、然后退款给客户。
如此一来,会出现有的客户在没有拿到退款之前,对于售后行为的返水,突然想了下,我不售后了。系统就出现了,取消售后。对于单据和库存的交互逻辑来说,已经完成了基于订单轴线的正向销售出库、逆向退货入库,如果要应对客户取消售后需要再次实现基于售后订单的出库,一个订单的数据结构就会如下图所示——一个没有尽头的订单:
![](https://ispiik.cn/wp-content/uploads/2021/11/image.png)
所以,对于线上订单的节点容易区分,是线性的信息流推进:客户发起售后意愿–>顾客寄回实物–>收货库存增加–>退还相应金额
对于即时交易的线下订单难以处理,因为是逻辑上有依赖关系的信息并发处理,打乱时序就造成混乱。这种情况:客户发起售后意愿–>收银员接受信息–>顾客归还实物–>收银员退还相应金额–>库存增加
线下的当面交易,把客户接收退款作为流程的不可逆节点,最后执行库存数据的返还。