電商技術(shù)解密之取消訂單

39 評(píng)論 66473 瀏覽 561 收藏 8 分鐘

一個(gè)簡(jiǎn)單的取消訂單操作背后的業(yè)務(wù)邏輯是多么的復(fù)雜。

在網(wǎng)購(gòu)的流程中,大家一般接觸的比較多的都是正向流程,即下單的流程:瀏覽商詳、加入購(gòu)物車、提交訂單、確認(rèn)收貨等。但是系統(tǒng)設(shè)計(jì)的時(shí)候往往會(huì)發(fā)現(xiàn)逆向流程比較正向流程更加的復(fù)雜,大家經(jīng)常接觸的逆向流程一般主要兩類:取消訂單和售后退貨。

今天先跟大家聊下取消訂單背后的邏輯,對(duì)用戶來說只是一個(gè)簡(jiǎn)單的申請(qǐng)取消的按鈕,但是后臺(tái)確實(shí)做了比較復(fù)雜的邏輯。例如要判斷訂單能不能取消?關(guān)聯(lián)訂單需不需要一起被取消?應(yīng)該退多少錢給用戶?等等一系列的問題。

下面先看下取消訂單一個(gè)比較典型的業(yè)務(wù)流程,我拿京東作為舉例。

發(fā)起申請(qǐng)

當(dāng)在京東上下過一單之后,在我的訂單里面可以看到這個(gè)訂單的詳情,這時(shí)候會(huì)看到“申請(qǐng)退款”這個(gè)選擇。這里叫法不一樣,有的平臺(tái)這里叫做“取消訂單”,這個(gè)時(shí)候你可以進(jìn)行申請(qǐng)。

取消中

然后你可以看到取消的狀態(tài),剛剛?cè)∠蟛榭礌顟B(tài)為“取消處理中”,下面的進(jìn)度里面可以看到是正在進(jìn)行倉(cāng)庫(kù)的攔截。因?yàn)橛唵我呀?jīng)產(chǎn)生了,系統(tǒng)會(huì)將訂單推送到倉(cāng)庫(kù)系統(tǒng)進(jìn)行生產(chǎn),庫(kù)內(nèi)作業(yè)是有一段時(shí)間的,要揀貨、打包等。如果此時(shí)訂單還沒出庫(kù),你發(fā)起取消訂單的申請(qǐng),這時(shí)候會(huì)到倉(cāng)庫(kù)進(jìn)行攔截,找到這單告訴倉(cāng)庫(kù)的人不要發(fā)了。如果訂單已經(jīng)出庫(kù),這時(shí)候你再發(fā)起取消訂單的申請(qǐng),那么你的申請(qǐng)可能會(huì)失敗,一般主流的做法是可以收貨的時(shí)候進(jìn)行拒收或者申請(qǐng)售后退貨。但是要付出代價(jià)的,有的會(huì)扣你的運(yùn)費(fèi),有的會(huì)扣經(jīng)驗(yàn)值;也有免費(fèi)的,但是有次數(shù)限制。

取消完成

當(dāng)取消成功后,取消狀態(tài)會(huì)變成已經(jīng)完成,訂單狀態(tài)會(huì)變成已經(jīng)取消。

上面只是取消訂單一個(gè)比較簡(jiǎn)單的場(chǎng)景:一單只有一個(gè)商品。

如果一張訂單中有多個(gè)商品,并且被拆成多個(gè)包裹后事情就變得復(fù)雜了。

首先一個(gè)問題是,多個(gè)包裹支不支持按照包裹維度進(jìn)行取消?不支持的話只能整單取消,用戶體驗(yàn)不是很友好,所以主流電商平臺(tái)都是支持按照包裹維度進(jìn)行取消的。

那么問題就來了

先看下運(yùn)費(fèi)的問題

原來你因?yàn)橘I了多個(gè)商品,達(dá)到了免郵的標(biāo)準(zhǔn),這時(shí)候你取消其中一個(gè)包裹,那么可能達(dá)不到免郵的條件了,這個(gè)時(shí)候怎么辦?

如果不收運(yùn)費(fèi)這其實(shí)是一個(gè)業(yè)務(wù)的漏洞,有的電商平臺(tái)為了用戶體驗(yàn)更好些,或者是避免后臺(tái)邏輯過于復(fù)雜是真的沒有收運(yùn)費(fèi)的,主要是靠風(fēng)控體系來控制風(fēng)險(xiǎn),如果一個(gè)人經(jīng)常采用這種方式套運(yùn)費(fèi)的話是會(huì)被拉黑的。但是大部分的電商平臺(tái)還是需要收運(yùn)費(fèi)的,當(dāng)發(fā)現(xiàn)取消一個(gè)子單后,剩下的訂單無法滿足包郵的條件,那么需要用戶支付運(yùn)費(fèi),或者是從取消訂單的退款金額里面把運(yùn)費(fèi)扣掉,或者是從你的虛擬賬號(hào)里面把運(yùn)費(fèi)扣掉(比如扣你的積分)。

促銷的相關(guān)問題

另外跟運(yùn)費(fèi)類似的是各種促銷,滿減、滿贈(zèng)、滿返等也存在類似問題。

我們這里以滿減作為例子,如果買了多個(gè)商品達(dá)到了滿減的條件,享受了滿減的優(yōu)惠。當(dāng)取消一個(gè)包裹單后如果滿減的條件還滿足,那么就可以正常取消。如果由于取消了這個(gè)包裹單滿減條件達(dá)不到了,這個(gè)時(shí)候是需要把關(guān)聯(lián)訂單也一起取消的,不然也會(huì)存在業(yè)務(wù)漏洞。

資源回退問題

上面的條件都達(dá)到了可以正常取消訂單,但是還需要考慮把生成訂單時(shí)所占用的資源回退掉,這里主要是庫(kù)存、券、積分等。

庫(kù)存:生成訂單的時(shí)候會(huì)先鎖定庫(kù)存,保證倉(cāng)庫(kù)可以正常生產(chǎn),如果取消訂單后,需要把這個(gè)庫(kù)存釋放,增加前臺(tái)銷售庫(kù)存的可用量。具體庫(kù)存的邏輯可以參考之前的文章電商技術(shù)解密—管好庫(kù)存沒那么容易

積分:生成訂單后也會(huì)給用戶發(fā)放一些虛擬資源,例如積分、經(jīng)驗(yàn)值。訂單取消后也需要把之前發(fā)放的資源進(jìn)行回收。

優(yōu)惠券:如果之前下單的時(shí)候使用了優(yōu)惠券,那么訂單取消后也需要把原來用掉的優(yōu)惠券返還到用戶的賬號(hào)中,方便用戶后面繼續(xù)使用。

具體流程可以看下面的業(yè)務(wù)序列圖

時(shí)序圖new

可以看到一個(gè)簡(jiǎn)單的取消訂單操作背后的業(yè)務(wù)邏輯是多么的復(fù)雜。上面的流程是用戶自己發(fā)起取消訂單,還有一種情況也會(huì)觸發(fā)取消訂單這個(gè)流程。當(dāng)你下單后沒有在規(guī)定的時(shí)間內(nèi)進(jìn)行付款,那么系統(tǒng)會(huì)自動(dòng)把你的訂單進(jìn)行取消。因?yàn)橐尫刨Y源,主要是庫(kù)存的資源。

取消訂單后臺(tái)的業(yè)務(wù)邏輯就先介紹到這里,可能有些遺漏或者錯(cuò)誤,歡迎大家拍磚、討論!

相關(guān)閱讀:

電商技術(shù)解密之庫(kù)存系統(tǒng)

電商技術(shù)解密之電商網(wǎng)站會(huì)存在哪些安全隱患

電商技術(shù)解密之跨店鋪促銷

電商技術(shù)解密之購(gòu)物車

電商技術(shù)解密之如何快速打開商詳頁(yè)

 

本文由 @DearNicole 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 很棒的文章,退貨環(huán)節(jié)要細(xì)分場(chǎng)景會(huì)更好,比如收到貨退貨,沒發(fā)貨退貨等等會(huì)更好

    來自江蘇 回復(fù)
  2. 很棒的一篇文章

    來自天津 回復(fù)
  3. bug點(diǎn)擊流程圖再點(diǎn)擊會(huì)消失

    來自浙江 回復(fù)
  4. 很干貨的文章。

    來自山東 回復(fù)
  5. 但是現(xiàn)在的滿減大部分都是取消后依然享受優(yōu)惠啊,
    湊單后最后把湊單產(chǎn)品退掉,優(yōu)惠依然有,淘寶跟京東都是

    來自山東 回復(fù)
  6. 只有前臺(tái)的邏輯,沒有物流生產(chǎn)的取消流程

    來自北京 回復(fù)
  7. 不滿足促銷條件,需要整單進(jìn)行取消???應(yīng)該依然子訂單取消,退款時(shí)考慮有無促銷情況下的差價(jià),算好退款價(jià)格就行了啊。

    來自北京 回復(fù)
  8. 有一次我就是取消訂單后不滿足促銷條件,但依然享受了促銷的優(yōu)惠。。。。不知道會(huì)不會(huì)被記錄,哈哈。寫的很好,特別是泳道圖畫的很好,上下都有角色名稱,用戶體驗(yàn)很好,點(diǎn)贊。

    回復(fù)
  9. 作者對(duì)于促銷商品如滿減等活動(dòng)的描述 我不敢茍同 如果對(duì)于滿減的商品取消訂單 就簡(jiǎn)單得把所有參與滿減的商品訂單都取消取消 是不是會(huì)流失很多單子啊 如果采取部分商品退款 且退款金額按照退款商品金額占總訂單商品優(yōu)惠金額比例進(jìn)行退款比較合理呢? 而且貌似淘寶 京東都是這么設(shè)計(jì)的把!

    來自浙江 回復(fù)
    1. 你說的這個(gè)也是一種解決方案,但是也會(huì)存在一個(gè)漏洞,比如淘寶出一個(gè)滿300減100的活動(dòng),我實(shí)際就想買一雙200的鞋,這時(shí)候我就需要再買100的背心,這樣就可以滿減了,之后再把100的背心退掉,就相當(dāng)于鉆空子了,其實(shí)這種思想,作者的文章中有所體現(xiàn),這個(gè)例子和他提到的免郵是一個(gè)道理的。如果實(shí)行部分退款,從程序邏輯上可能會(huì)變復(fù)雜,而且也不好衡量推多少合適,而淘寶推出這個(gè)活動(dòng)的本意就帶有點(diǎn)捆綁銷售。

      來自江蘇 回復(fù)
    2. 如果滿300減100,最后把100的背心退了,不可能完全退100的啊,應(yīng)該也要減去相應(yīng)的優(yōu)惠吧

      來自廣東 回復(fù)
    3. 那如果鞋子250,背心50,這種情況收回優(yōu)惠的話,平臺(tái)還會(huì)虧50

      來自四川 回復(fù)
    4. 鞋子200,背心100,滿300減100實(shí)際支付200,折算鞋子133.33,背心66.67。
      如果退掉背心會(huì)退66.67元,用戶以133.33買到價(jià)值200的鞋子。淘寶現(xiàn)在也是這樣處理的,讓鉆空子。

      來自湖南 回復(fù)
  10. 厲害厲害,前京東既是產(chǎn)品經(jīng)理又是研發(fā)經(jīng)理

    來自上海 回復(fù)
    1. 如果身居兩個(gè)角色 耦合性太強(qiáng)

      來自廣東 回復(fù)
  11. 我之前做的淘寶天貓售后的,沒毛病的 取消訂單 后臺(tái)會(huì)經(jīng)常很多操作

    來自陜西 回復(fù)
  12. 泳道圖里有個(gè)小問題,訂單取消不會(huì)存在修改積分的問題,因?yàn)榉e分這玩意都是在確認(rèn)收貨時(shí)才會(huì)增加,若下單就添加,就會(huì)出現(xiàn)之前有位也提過的一樣,若下單就加了積分,積分被使用了,那還如何扣減,那就再加個(gè)未收貨積分鎖定?那就變的復(fù)雜了

    來自江蘇 回復(fù)
    1. 哈哈哈 有道理 你的分析把我給整笑了。哈哈哈 簡(jiǎn)單粗暴

      回復(fù)
  13. 感謝分享!

    來自四川 回復(fù)
  14. 感謝分享~

    來自四川 回復(fù)
  15. 有一部分商品比如易碎品,損壞確實(shí)不需要退貨的,是不是審核的時(shí)候有一項(xiàng)“是否要退貨”選項(xiàng)?

    來自福建 回復(fù)
    1. 管理商品的時(shí)候就應(yīng)該定義好這個(gè)商品是否能退

      來自廣東 回復(fù)
  16. 在返還用戶積分那一項(xiàng),如果積分已被用戶消耗了呢?

    來自廣東 回復(fù)
    1. 根據(jù)自己平臺(tái)積分的定位和使用場(chǎng)景與結(jié)果,設(shè)定積分對(duì)應(yīng)的收回規(guī)則。

      來自浙江 回復(fù)
  17. 請(qǐng)教下,我理解的取消訂單和申請(qǐng)退款是兩種狀態(tài),取消是指已下單未付款,只涉及退回優(yōu)惠信息,而申請(qǐng)退款是已經(jīng)付了款,還要涉及款項(xiàng)處理

    來自北京 回復(fù)
    1. 嗯,我也這么認(rèn)為!

      來自河南 回復(fù)
  18. 不錯(cuò)。這些邏輯上的東西,如何更好的處理的更好,泳道圖不錯(cuò)。

    來自重慶 回復(fù)
  19. 還有一個(gè)問題,申請(qǐng)退款旁邊的修改訂單是做什么用的?我在京東購(gòu)物,沒有發(fā)現(xiàn)這個(gè)按鈕哦

    來自北京 回復(fù)
  20. 請(qǐng)教一下,申請(qǐng)退款為什么是包裹維度而非SKU維度?是因?yàn)橹挥邪懿樵兊匠鰩?kù)狀態(tài),sku查詢不到嗎?還是因?yàn)橐粋€(gè)包裹中雖然可以知道部分sku未出庫(kù),但包裹紙箱之類的已經(jīng)產(chǎn)生成本,所以不能再取消了?

    來自北京 回復(fù)
  21. 無形之中和京東的取消訂單流程完全一致,絕對(duì)沒有抄襲,因?yàn)楹笈_(tái)一般是抄襲不了。當(dāng)時(shí)我堅(jiān)持要在訂單中加一個(gè)狀態(tài)“取消處理中”,為這個(gè)狀態(tài)和團(tuán)隊(duì)爭(zhēng)論了好久。但是我們優(yōu)惠券限于技術(shù)的障礙,沒有返還。公司的財(cái)務(wù)需求都是我處理,填了一堆坑?。???

    來自廣東 回復(fù)
  22. 退積分的邏輯還有點(diǎn)問題,比如這在退貨之前把積分用了。那么積分就退不會(huì)來了 ??

    來自廣東 回復(fù)
    1. 如果他歷史積分還有余額就扣歷史余額,如果沒有就扣到0為止,這里是有點(diǎn)空子可以鉆。。。。

      來自江蘇 回復(fù)
    2. 沒有就扣到負(fù)數(shù)。JD這樣干過。只是用戶體驗(yàn)不好。所以還是要設(shè)置規(guī)則,對(duì)于頻繁搞事的用戶就要拉黑,就要扣到負(fù)數(shù),退貨運(yùn)費(fèi)自理等方式。

      來自四川 回復(fù)
    3. 1.積分在于什么時(shí)間節(jié)點(diǎn)發(fā)放;2.積分是及時(shí)可使用還是分凍結(jié)、可用等其它類型;

      來自廣東 回復(fù)
    4. 積分應(yīng)該不是在這個(gè)時(shí)候到你賬戶上吧,積分一般是確認(rèn)收貨之后的事吧

      來自廣東 回復(fù)
  23. 現(xiàn)在公司在做商城系統(tǒng),涉及到退款的時(shí)候,已經(jīng)想了很多,但限于網(wǎng)上找到的資料有限,還是挖了一些坑。

    來自浙江 回復(fù)
    1. 這方面資料確實(shí)很少

      來自江蘇 回復(fù)
  24. 后悔沒早點(diǎn)看到這一系列文章……走了好多彎路。。。

    來自廣東 回復(fù)
    1. 現(xiàn)在也不晚,希望可以讓你后面少走點(diǎn)。

      來自江蘇 回復(fù)