OMS訂單拆單的流程中,要做哪些工作?
編輯導(dǎo)讀:訂單拆單的場景并不少見,可這其中的原由與底層邏輯你弄明白了嗎?看似微小的系統(tǒng)拆單,實(shí)際與用戶體驗(yàn)直接關(guān)聯(lián)。本文作者結(jié)合行業(yè)內(nèi)的觀察,總結(jié)出了關(guān)于訂單管理中的拆單整體邏輯,從訂單拆單的基礎(chǔ)概念出發(fā),聯(lián)系實(shí)際場景列舉了相關(guān)可能性及結(jié)果。推薦相關(guān)領(lǐng)域的從業(yè)者閱讀學(xué)習(xí)~
一、什么是拆單
在網(wǎng)上購買商品下單成功后,過一段時(shí)間再次瀏覽時(shí),有時(shí)會(huì)發(fā)現(xiàn)你的訂單會(huì)變成兩個(gè)或多個(gè),這就是系統(tǒng)做了拆單而導(dǎo)致的。
拆單,就是將一個(gè)大的訂單依據(jù)某些規(guī)則的集合,將其分解成兩個(gè)或多個(gè)子訂單的過程,原來的訂單稱之為父訂單。
二、拆單的重要性
通常我們所說的拆單一般情況下是指用戶的銷售訂單,但在實(shí)際業(yè)務(wù)中,拆單情況隨處可見,如采購訂單的拆分、調(diào)撥單的拆分等等。本篇后續(xù)都是以銷售訂單的拆單講述的,請知悉!
在互聯(lián)網(wǎng)電商系統(tǒng)中銷售訂單是與C端用戶關(guān)聯(lián)最緊密的,單據(jù)量是最大的,是影響用戶體驗(yàn)的,且拆單的規(guī)則相對來說是比較復(fù)雜的。
折單要求數(shù)據(jù)準(zhǔn)確、及時(shí),因?yàn)椴饐魏蟮淖佑唵问切枰魅氲絺}儲(chǔ)進(jìn)行生產(chǎn)作業(yè)的,它會(huì)進(jìn)行揀貨、出庫、配送等一系統(tǒng)的流程,它也是后續(xù)財(cái)務(wù)系統(tǒng)對賬或結(jié)算、數(shù)據(jù)分析的重要數(shù)據(jù)來源。
三、拆單的場景
用戶在APP,電商等平臺(tái)下單后,由于商品的庫存數(shù)量不滿足,可能在前端進(jìn)行拆單,即用戶自己選擇是否需要拆單,可以按最快送達(dá)或最小拆單的規(guī)則進(jìn)行。
現(xiàn)在很少有會(huì)出現(xiàn)庫存不足的情況,就是拆單系統(tǒng)的功勞了,很多商家為了提升客戶體驗(yàn),對于商品可以多倉發(fā)貨時(shí)。因?yàn)閱蝹}缺貨而需要拆單時(shí),由用戶來選擇決定是否購買或者是由系統(tǒng)判定可以拆單的情況下而進(jìn)行的自動(dòng)拆單,這應(yīng)該也是為了提高轉(zhuǎn)化率的一種方式。
還有一種場景,訂單涉及多商家,需要單獨(dú)付款的情況下,前端會(huì)直接進(jìn)行拆單,但現(xiàn)在基本上都是合單支付了,因?yàn)檫@種拆單會(huì)使用戶體驗(yàn)降低。
此外,有的商家既賣國內(nèi)商品,也賣海淘商品,如果都混在一塊,那么在支付前是需要進(jìn)行拆單的,因?yàn)楹L陨唐芬笥脩舻纳矸菡J(rèn)證等信息的檢驗(yàn)。
在多數(shù)情況下,都是用戶下單完成后,由系統(tǒng)進(jìn)行在后臺(tái)進(jìn)行拆單,拆單是要結(jié)合公司業(yè)務(wù)場景去考慮的。
四、用戶購買涉及幾種拆單
拆單除了以上幾種場景,對于用戶下單時(shí)系統(tǒng)上還會(huì)有什么操作嗎?
有一種情況即用戶下單時(shí)系統(tǒng)要根據(jù)用戶選擇的收貨地址、商品等信息,判斷是否有庫存,訂單應(yīng)該歸屬哪個(gè)倉庫,是否可以購買等,這個(gè)服務(wù)嚴(yán)格來講應(yīng)該歸屬于商品庫存服務(wù),但是也可以將其稱為預(yù)拆單。
預(yù)拆單一般是調(diào)用一定范圍內(nèi)的倉儲(chǔ)服務(wù)進(jìn)行庫存的判斷,同時(shí)還要根據(jù)促銷活動(dòng)進(jìn)行一些優(yōu)惠計(jì)算,所有的這些都需要前端系統(tǒng)在處理時(shí)對訂單商品進(jìn)行一些標(biāo)識(shí),以便當(dāng)用戶支付成功后,訂單流轉(zhuǎn)到OMS系統(tǒng)進(jìn)行物理拆單。
前端用戶下單成功后,訂單經(jīng)過OMS的拉單服務(wù)快速流轉(zhuǎn)到訂單中心,便開始訂單的再生成過程,訂單拆分后的子訂單可能會(huì)展示給用戶,也可能不展示給客戶,在退貨時(shí)由客戶統(tǒng)一退到一個(gè)倉庫方便客戶進(jìn)行退貨,子訂單會(huì)展示到客戶原始訂單上進(jìn)行展示,便于用戶跟蹤和查看。
所以在從用戶角度來看,一種是可以直接看到結(jié)果的拆單和一種無感知的預(yù)拆單過程。
五、拆單的時(shí)點(diǎn)與地點(diǎn)
預(yù)拆單是伴隨著購物流程進(jìn)行的,這里不多討論,因?yàn)檫@個(gè)究竟是否屬于拆單也是要看我們?nèi)绾味x。正常情況下用戶選購商品完成后,系統(tǒng)不會(huì)拆單,因?yàn)橛脩粲锌赡苋∠唵位蛭粗Ц冻晒Α?/p>
拆單的時(shí)點(diǎn)是要在?“訂單支付成功”?后進(jìn)行,且需要前端訂單已經(jīng)流轉(zhuǎn)到后端生產(chǎn)庫,在訂單中心進(jìn)行處理。
在前面有一種場景,如果購物中心不能合并支付時(shí),在購物車中便拆分為幾個(gè)訂單,這時(shí)的拆單可以定義為一次拆單,也可以歸屬于購物流程,因?yàn)橛脩舨惶峤痪筒粫?huì)生成訂單號(hào),不會(huì)保存各個(gè)訂單的數(shù)據(jù)。
在用戶支付成功后,各個(gè)訂單同樣是要向后臺(tái)流轉(zhuǎn),經(jīng)過拆單服務(wù)的處理才可以繼續(xù)進(jìn)行下面的生產(chǎn)。
在前面討論拆單場景時(shí)提到一種缺貨拆單,這種場景的拆單是在用戶下單支付成功后,訂單有可能已經(jīng)拆分為不同的子訂單,但因某種原因倉庫無貨而導(dǎo)致的拆單。
這時(shí)拆單的時(shí)點(diǎn)是靈活的,一般是在客服系統(tǒng)中,根據(jù)用戶的反饋確定是否拆單的。
缺貨是影響用戶體驗(yàn)的,但是缺貨是始終客觀存在的。
六、拆單分幾級(jí)
從上圖看,拆單應(yīng)該為三級(jí),即用戶創(chuàng)建的訂單為父訂單,然后經(jīng)過拆單服務(wù)正常的分為多個(gè)子訂單為第二級(jí),后續(xù)因?yàn)槿必浀仍蜃佑唵卧俅尾鸱譃樽樱▽O)訂單。
在數(shù)據(jù)設(shè)計(jì)上,一般情況子訂單與父訂單的關(guān)聯(lián)都通過ParentID來進(jìn)行關(guān)聯(lián),但三級(jí)以上時(shí),涉及原始訂單的查詢較麻煩。
具體看數(shù)據(jù)結(jié)構(gòu)如何設(shè)計(jì)了,可以再增加一個(gè)原始訂單號(hào)來記錄最初的訂單號(hào),方便統(tǒng)計(jì)查詢等,負(fù)責(zé)拆單服務(wù)的同學(xué)可以詳細(xì)討論下。
為了避免訂單的復(fù)雜度及系統(tǒng)的查詢、統(tǒng)計(jì)、分析等數(shù)據(jù)處理的難度,訂單最好最多到三級(jí),不宜過多。
七、拆單狀態(tài)
以前專門梳理過訂單狀態(tài)的文章,詳見《訂單信息與狀態(tài)流轉(zhuǎn)看這個(gè)應(yīng)該足夠了!》,在拆單過程中也涉及訂單狀態(tài)的變換。
- 當(dāng)父訂單拆分為子訂單后,子訂單生效,父訂單應(yīng)該置為無效。
- 子訂單或父訂單經(jīng)過缺貨拆單后,原訂單狀態(tài)是無效還是其它?
- 訂單拆單后狀態(tài)應(yīng)該置為“待下發(fā)”即需要通過下發(fā)服務(wù),將訂單推送給倉庫發(fā)貨。
- 如果訂單已經(jīng)下發(fā)到倉庫后需要缺貨拆單,單據(jù)狀態(tài)應(yīng)保留原狀態(tài)。
這些都屬于細(xì)節(jié),但不得不考慮,因?yàn)橛唵蔚臓顟B(tài)涉及到其他業(yè)務(wù)系統(tǒng)的計(jì)算和統(tǒng)計(jì)。
如:財(cái)務(wù)系統(tǒng)在應(yīng)付報(bào)表時(shí)是根據(jù)支付訂單進(jìn)行統(tǒng)計(jì)和對賬的,如果訂單狀態(tài)是無效的,那么系統(tǒng)如何獲取此部分?jǐn)?shù)據(jù)。
BI有些統(tǒng)計(jì)分析是按狀態(tài)和訂單數(shù)量等進(jìn)行統(tǒng)計(jì)的,如客單價(jià)、有效訂單數(shù)等等。
所以針對拆單而導(dǎo)致的訂單狀態(tài)是否應(yīng)該區(qū)分原有的訂單狀態(tài)分別標(biāo)識(shí),是需要綜合考慮的。
八、拆單原則
拆單的原因我們已經(jīng)清楚,拆單的目的是為了保證履單,拆單的原則是什么?
- 首先是最小拆單原則,即能拆兩單,不能拆成三單,因?yàn)槎嗖鹨粏尾粌H是單據(jù)數(shù)量的增加,它會(huì)增加系統(tǒng)的復(fù)雜度,降低用戶體驗(yàn),加大倉庫作業(yè)量,增加運(yùn)費(fèi)費(fèi)用等。
- 最快送達(dá)原則,拆出的子訂單要快速生產(chǎn),快速送達(dá),這個(gè)是增加用戶體驗(yàn)的最好辦法。但是快速送達(dá),依賴于倉儲(chǔ)物流的布局,這個(gè)在多倉可以發(fā)送到一個(gè)城市時(shí)尤為重要。
一般情況下,拆單要遵循這兩條原則,同時(shí)我們也看到拆單服務(wù),是依賴于基礎(chǔ)信息配置的,電商系統(tǒng)最復(fù)雜的是很多地方都有關(guān)聯(lián)。不過現(xiàn)在也有很多根據(jù)最低價(jià)格原則,或者是最小拆分原則等,這個(gè)需要根據(jù)實(shí)際業(yè)務(wù)對應(yīng)不同的實(shí)際場景。
九、拆單規(guī)則
拆單的規(guī)則因每個(gè)公司的業(yè)務(wù)不同而不同,這里羅列一些常見的規(guī)則供參考。
1. 不同商家的訂單需要進(jìn)行拆分
這個(gè)主要應(yīng)用于平臺(tái)型的電商,一般情況用戶購買商品都進(jìn)入不同的店鋪,創(chuàng)建的訂單也是歸屬這個(gè)商家的。但有的平臺(tái)采用合單支付,即用戶選購不同商家的商品,但支付是一次的。
這個(gè)和淘寶有些不同,淘寶上每個(gè)商家的收款賬號(hào)是不同的,所以不能一次支付,但平臺(tái)商家是平臺(tái)代收款的,所以可以一次支付后再拆單分?jǐn)偨痤~。
2. 不同倉或不同供應(yīng)商的商品需要進(jìn)行拆單
倉庫不同訂單需要分開,對于不同的供應(yīng)商訂單主要是指由供應(yīng)商直接發(fā)貨的訂單即商品不存儲(chǔ)在倉庫,由供應(yīng)商直送到用戶,這個(gè)和平臺(tái)商家類似。但是區(qū)別是簽署的合同不同,一個(gè)是購銷合同,一個(gè)是傭金扣點(diǎn)合同,細(xì)節(jié)不展開了,有興趣可以留言交流。
3. 商品類型不同需要拆單
一般區(qū)分奢侈品或有特殊要求的商品,這個(gè)需要業(yè)務(wù)根據(jù)商品要求進(jìn)行設(shè)置。因?yàn)樯唐芬蟛煌?,后續(xù)在物流環(huán)節(jié)采用的物流產(chǎn)品類型也不同,物流費(fèi)用也不同。這部分也可以根據(jù)商品信息,在倉儲(chǔ)進(jìn)行處理,但最后在上位能夠提前區(qū)分。
4. 商品溫控屬性不同要進(jìn)行拆單
此部分一般是指生鮮電商而言,同一個(gè)倉庫有常溫倉、冷藏倉、冷凍倉,存儲(chǔ)著不同的商品,商品的揀貨、包裝等都有不同的要求,所以需要進(jìn)行拆單。
5. 大件商品拆單
大件商品與普通商品不同,它在倉庫的存儲(chǔ)位置、揀貨方式、包裝、運(yùn)輸都有所區(qū)別,所以大件商品需要每一件都拆單,大件商品一般遵循最快送達(dá),不需要最少拆單原因的限制。
6. 根據(jù)庫存拆單
這個(gè)是針對缺貨商品進(jìn)行的拆單,即有庫存的一單,無庫存的一單,如果是二級(jí)訂單,則父訂單相同,子訂單衍生出子訂單,子訂單1的過程。
7. 線下門店商品不拆單
如果是線下門店購買商品,則不需要拆單。
8. 組合商品不能拆單
在促銷活動(dòng)中,有時(shí)會(huì)有一些大禮包等商品的組合銷售,即A,B,C等商品經(jīng)過倉庫的組合包裝后出庫,所以針對此類商品不能拆單。
在拆單服務(wù)中需要調(diào)用物料單信息,進(jìn)行判斷,具體的要看系統(tǒng)如何設(shè)計(jì)了。
拆單的規(guī)則很多,在系統(tǒng)處理時(shí),要依賴于規(guī)則設(shè)置的優(yōu)先級(jí)來進(jìn)行。
十、拆單算法
1. 稀缺商品算法
找所有商品在所有庫房最稀缺的商品,獲取該商品的階數(shù)。
2. 降階
找稀缺商品的都需要倉庫組合,這些倉庫是必須發(fā)貨的,把這些倉庫計(jì)入發(fā)貨列表,這樣就降階了,剩余倉庫再計(jì)算組合,減少運(yùn)算數(shù)量。
3. 抽屜原理算法
找第一階的倉庫列表(發(fā)貨量最大的倉庫),這個(gè)庫房的庫存是必須要發(fā)的,然后再找次發(fā)貨量最大的倉庫,以此類推,用于后面的組合計(jì)算。
4. 找組合
按照倉庫順序逐漸增加倉庫個(gè)數(shù)找組合。
算法也只是拆單過程中的一個(gè)路徑參考,且算法依賴于拆單的規(guī)則而制定,無論如何要保證拆單的結(jié)果準(zhǔn)確,拆單的速度要快。
十一、拆單服務(wù)兩步重要工作
以上一直在討論拆單是由1變2,由2變4的一些內(nèi)容,在具體的拆單服務(wù)系統(tǒng)中要考慮哪些內(nèi)容,又有哪些工作?
- 前面所說的都應(yīng)該在設(shè)計(jì)時(shí)考慮,而且最重要的是要依賴規(guī)則進(jìn)行設(shè)計(jì),數(shù)據(jù)的流轉(zhuǎn),時(shí)序等等。
- 金額分?jǐn)偸遣饐沃凶钪匾囊徊糠止ぷ?,也是最?fù)雜的。
父訂單的拆分,商品的重新組合,生成新的訂單是第一步,第二步就是要將父訂單的金額合理的,正確的分?jǐn)偟礁鱾€(gè)子訂單上。
訂單一般分為訂單主表和訂單商品表、訂單支付明細(xì)表和訂單活動(dòng)表。
訂單金額有幾個(gè)主要的部分:訂單商品金額、折扣金額、禮品卡支付金額、積分支付金額、優(yōu)惠券支付金額、訂單支付金額等幾個(gè)部分。
運(yùn)費(fèi)是訂單表中一個(gè)特殊字段,運(yùn)費(fèi)如何分?jǐn)偸且厥饪紤]的,一般情況是按金額占比進(jìn)行。所以生成的子訂單中各部分金額,也要保證與父訂單金額一致。
訂單商品表、支付明細(xì)表、活動(dòng)表屬于明細(xì)信息,要根據(jù)原始訂單明細(xì)表的數(shù)據(jù)和標(biāo)識(shí)進(jìn)行計(jì)算分?jǐn)偂?/p>
子訂單的金額要保證橫向、縱向都正確才行,橫向是指子單的合與父單金額一致,縱向是指子單訂單主表與明細(xì)表金額一致。
此外,在金額分?jǐn)傆?jì)算過程有一項(xiàng)重要規(guī)則不可避免,即開票金額的考慮。
這部分金額的分?jǐn)偱c公司繳稅息息相關(guān),單據(jù)與發(fā)票要一致,要考慮商品信息、活動(dòng)規(guī)則等等,非常復(fù)雜。
有的拆單服務(wù)將金額分?jǐn)偑?dú)立出來,以降低對拆單的影響,提高訂單流轉(zhuǎn)速度。
十二、拆單的速度要求
由于拆單后訂單才會(huì)下發(fā)到倉儲(chǔ)或商家進(jìn)行生產(chǎn),所以對于速度要求就是快。
在系統(tǒng)設(shè)計(jì)時(shí)可以依據(jù)規(guī)則等綜合考慮,多線程是最常用的方法,但多線程需要考慮資源競爭和安全性。一般情況,如果下單后已經(jīng)確定了倉庫,那么可以按倉庫啟動(dòng)多個(gè)服務(wù),這樣可以避免程序的難度。
對于拆單和下發(fā)在系統(tǒng)上也要有數(shù)據(jù)監(jiān)控,不能出現(xiàn)積壓的情況。如果拆單有異常時(shí),在定時(shí)任務(wù)中,很多情況都是依賴一個(gè)信息字段的狀態(tài)來進(jìn)行循環(huán)處理,在服務(wù)中要有容錯(cuò)處理,不能一直停滯不前。
十三、拆單的影響
什么是拆單?為什么拆單?如何拆單?前面說了很多,但對于拆單有什么影響呢?
先說一個(gè)場景,公司搞促銷活動(dòng),買A贈(zèng)B,但A與B商品的溫控屬性不同,所以用戶下單后一定會(huì)拆單。
拆單后倉儲(chǔ)揀貨、發(fā)貨是根據(jù)子訂單進(jìn)行的,很有可能贈(zèng)品B先發(fā)貨了,A后發(fā)貨。用戶先收到B簽收了,然后A進(jìn)行拒收或取消。此時(shí),如果在拒收或取消A時(shí)不判斷關(guān)聯(lián)子訂單,那么公司就會(huì)損失B。
如果判斷關(guān)聯(lián)子訂單的狀態(tài),那么系統(tǒng)的復(fù)雜度將會(huì)非常之大,因?yàn)閷?shí)際場景中一個(gè)父單拆為多單時(shí)是很常見的。
拆單后,子訂單數(shù)量增加,對于客單價(jià)、統(tǒng)計(jì)分析等報(bào)表需要考慮其影響,維度和統(tǒng)計(jì)口徑不同,數(shù)據(jù)結(jié)果必然不同,從而會(huì)影響到經(jīng)營分析及決策。
影響,對于不同的業(yè)務(wù)有不同的理解,作為產(chǎn)品研發(fā)應(yīng)該在拆單設(shè)計(jì)時(shí)還是需要要將利害與業(yè)務(wù)說清楚,尤其是運(yùn)營人員(活動(dòng)方面重點(diǎn)考慮),雖然這屬于一個(gè)后臺(tái)服務(wù)。
十四、總結(jié)
拆單是復(fù)雜的,合理的拆單會(huì)加快訂單的流轉(zhuǎn),友好的用戶體驗(yàn),過度拆單則會(huì)產(chǎn)生冗余的數(shù)據(jù),增加訂單的復(fù)雜關(guān)系,統(tǒng)計(jì)、計(jì)算、售后等各個(gè)環(huán)節(jié)。
本文由 @梁鳳財(cái) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
正常情況下,后臺(tái)都是會(huì)顯示子訂單狀態(tài)的,只有前臺(tái)沒有顯示子訂單狀態(tài),退款的時(shí)候,關(guān)聯(lián)訂單肯定是要一起退的。子訂單沒有完成,為什么父訂單狀態(tài)會(huì)變更?這個(gè)是有邏輯悖論的
顯示邏輯有兩種,第一種是顯示最新的子訂單邏輯,第二種是全部子訂單完成后才顯示訂單完成,這個(gè)得根據(jù)頁面的顯示去設(shè)計(jì),如果頁面上直接顯示了子訂單,主訂單自作關(guān)聯(lián)用,那么主訂單則不需要顯示進(jìn)度,只顯示子訂單的進(jìn)度即可
如果父訂單含多個(gè)商品,且因某個(gè)商品在默認(rèn)倉庫的庫存不足而拆單的話,運(yùn)費(fèi)應(yīng)該在什么時(shí)候計(jì)算呢?是在生成父訂單的時(shí)候計(jì)算運(yùn)費(fèi)(按照默認(rèn)倉庫計(jì)算),還是在拆分子訂單(不同倉庫)后計(jì)算運(yùn)費(fèi)呢?
根據(jù)業(yè)務(wù)的實(shí)際情況去考慮,這個(gè)需要跟實(shí)際業(yè)務(wù)人員,去公司考察,原來是先計(jì)算運(yùn)費(fèi)再退還是根據(jù)實(shí)際庫存扣減運(yùn)費(fèi),還是在頁面顯示庫存充足時(shí)候運(yùn)費(fèi),但是在實(shí)際發(fā)生的時(shí)候顯示一口價(jià)的運(yùn)費(fèi)
對訂單的管理和控制,合理安排運(yùn)送計(jì)劃、有效降低庫存。
網(wǎng)上購物時(shí)的拆單竟是門大學(xué)問,拆單也是因?yàn)槭艿搅藘?yōu)惠情況、庫存、身份認(rèn)證等信息的檢驗(yàn)等情況的影響,可以說是具體問題具體分析
對