在網(wǎng)購的流程中里覆,大家一般接觸的比較多的都是正向流程丧荐,即下單的流程:瀏覽商詳、加入購物車喧枷、提交訂單虹统、確認收貨等。但是系統(tǒng)設(shè)計的時候往往會發(fā)現(xiàn)逆向流程比較正向流程更加的復(fù)雜隧甚,大家經(jīng)常接觸的逆向流程一般主要兩類:取消訂單和售后退貨车荔。
今天先跟大家聊下取消訂單背后的邏輯,對用戶來說只是一個簡單的申請取消的按鈕戚扳,但是后臺確實做了比較復(fù)雜的邏輯忧便。例如要判斷訂單能不能取消?關(guān)聯(lián)訂單需不需要一起被取消帽借?應(yīng)該退多少錢給用戶珠增?等等一系列的問題。
下面先看下取消訂單一個比較典型的業(yè)務(wù)流程砍艾,我拿京東作為舉例蒂教。
當(dāng)在京東上下過一單之后,在我的訂單里面可以看到這個訂單的詳情辐董,這時候會看到“申請退款”這個選擇悴品。這里叫法不一樣,有的平臺這里叫做“取消訂單”简烘,這個時候你可以進行申請苔严。
然后你可以看到取消的狀態(tài),剛剛?cè)∠蟛榭礌顟B(tài)為“取消處理中”孤澎,下面的進度里面可以看到是正在進行倉庫的攔截届氢。因為訂單已經(jīng)產(chǎn)生了,系統(tǒng)會將訂單推送到倉庫系統(tǒng)進行生產(chǎn)覆旭,庫內(nèi)作業(yè)是有一段時間的退子,要揀貨岖妄、打包等。如果此時訂單還沒出庫寂祥,你發(fā)起取消訂單的申請荐虐,這時候會到倉庫進行攔截,找到這單告訴倉庫的人不要發(fā)了丸凭。如果訂單已經(jīng)出庫福扬,這時候你再發(fā)起取消訂單的申請,那么你的申請可能會失敗惜犀,一般主流的做法是可以收貨的時候進行拒收或者申請售后退貨铛碑。但是要付出代價的,有的會扣你的運費虽界,有的會扣經(jīng)驗值汽烦,也有免費的,但是有次數(shù)限制莉御。
當(dāng)取消成功后撇吞,取消狀態(tài)會變成已經(jīng)完成,訂單狀態(tài)會變成已經(jīng)取消礁叔。
上面只是取消訂單一個比較簡單的場景:一單只有一個商品梢夯。
如果一張訂單中有多個商品,并且被拆成多個包裹后事情就變得復(fù)雜了晴圾。
首先一個問題是,多個包裹支不支持按照包裹維度進行取消噪奄?不支持的話只能整單取消死姚,用戶體驗不是很友好,所以主流電商平臺都是支持按照包裹維度進行取消的勤篮。
那么問題就來了都毒,先看下運費的問題。
原來你因為買了多個商品碰缔,達到了免郵的標(biāo)準(zhǔn)账劲,這時候你取消其中一個包裹,那么可能達不到免郵的條件了金抡,這個時候怎么辦瀑焦?
如果不收運費這其實是一個業(yè)務(wù)的漏洞,有的電商平臺為了用戶體驗更好些梗肝,或者是避免后臺邏輯過于復(fù)雜是真的沒有收運費的榛瓮,主要是靠風(fēng)控體系來控制風(fēng)險,如果一個人經(jīng)常采用這種方式套運費的話是會被拉黑的巫击。但是大部分的電商平臺還是需要收運費的禀晓,當(dāng)發(fā)現(xiàn)取消一個子單后精续,剩下的訂單無法滿足包郵的條件,那么需要用戶支付運費粹懒,或者是從取消訂單的退款金額里面把運費扣掉重付,或者是從你的虛擬賬號里面把運費扣掉(比如扣你的積分)。
另外跟運費類似的是各種促銷凫乖,滿減确垫、滿贈、滿返等也存在類似問題
我們這里以滿減作為例子拣凹,如果買了多個商品達到了滿減的條件森爽,享受了滿減的優(yōu)惠。當(dāng)取消一個包裹單后如果滿減的條件還滿足嚣镜,那么就可以正常取消爬迟。如果由于取消了這個包裹單滿減條件達不到了,這個時候是需要把關(guān)聯(lián)訂單也一起取消的菊匿,不然也會存在業(yè)務(wù)漏洞付呕。
資源回退問題
上面的條件都達到了可以正常取消訂單,但是還需要考慮把生成訂單時所占用的資源回退掉跌捆,這里主要是庫存徽职、券、積分等佩厚。
庫存:生成訂單的時候會先鎖定庫存姆钉,保證倉庫可以正常生產(chǎn),如果取消訂單后抄瓦,需要把這個庫存釋放潮瓶,增加前臺銷售庫存的可用量。具體庫存的邏輯可以參考之前的文章電商技術(shù)解密—管好庫存沒那么容易
積分:生成訂單后也會給用戶發(fā)放一些虛擬資源钙姊,例如積分毯辅、經(jīng)驗值。訂單取消后也需要把之前發(fā)放的資源進行回收煞额。
優(yōu)惠券:如果之前下單的時候使用了優(yōu)惠券思恐,那么訂單取消后也需要把原來用掉的優(yōu)惠券返還到用戶的賬號中,方便用戶后面繼續(xù)使用膊毁。
具體流程可以看下面的業(yè)務(wù)序列圖
可以看到一個簡單的取消訂單操作背后的業(yè)務(wù)邏輯是多么的復(fù)雜胀莹。上面的流程是用戶自己發(fā)起取消訂單,還有一種情況也會觸發(fā)取消訂單這個流程媚媒。當(dāng)你下單后沒有在規(guī)定的時間內(nèi)進行付款嗜逻,那么系統(tǒng)會自動把你的訂單進行取消。因為要釋放資源缭召,主要是庫存的資源栈顷。
取消訂單后臺的業(yè)務(wù)邏輯就先介紹到這里逆日,可能有些遺漏或者錯誤,歡迎大家拍磚萄凤、討論室抽!
相關(guān)閱讀:
點擊DearNicole進行關(guān)注
本人主攻電商的方方面面,喜歡的記得關(guān)注哦靡努,你的關(guān)注是我持續(xù)的動力坪圾!