訂單系統(tǒng)作為電商系統(tǒng)的“中軸線”貫穿了整個(gè)電商系統(tǒng)的全部流程。所有的核心系統(tǒng)都是圍繞訂單進(jìn)行構(gòu)建的。訂單的發(fā)展也是隨著電商、O2O行業(yè)發(fā)展逐漸演變進(jìn)化的,今天跟大家來(lái)解構(gòu)下這個(gè)平臺(tái)的“生命中軸線”。
訂單基本概念
設(shè)計(jì)訂單系統(tǒng)時(shí)包含幾個(gè)大的方向需要考慮,這些內(nèi)容決定了訂單系統(tǒng)的穩(wěn)定性和可持續(xù)性。
訂單字段
訂單字段包含了訂單中需要記錄的信息,他的作用主要用于溝通其他系統(tǒng),為下游系統(tǒng)提供信息依據(jù)。
訂單信息
訂單號(hào)作為訂單識(shí)別的標(biāo)識(shí),往往由一串?dāng)?shù)字組成,根據(jù)訂單的增加進(jìn)行自增,也可以在設(shè)計(jì)訂單號(hào)的時(shí)候考慮訂單加密設(shè)置(否則別人通過(guò)訂單編號(hào)就能計(jì)算出你們家的銷售量)。訂單號(hào)后續(xù)用作訂單唯一標(biāo)示用于對(duì)接WMS和TMS時(shí)的訂單識(shí)別。
訂單狀態(tài)機(jī)在下面章節(jié)會(huì)詳細(xì)描述,這里不做展開。
用戶信息
這里指購(gòu)買人的相關(guān)信息,主要包括姓名、地址、手機(jī)號(hào)。O2O平臺(tái)還會(huì)多一種情況就是自提點(diǎn),這樣地址則會(huì)變?yōu)樽蕴狳c(diǎn)的地址。地址信息在后續(xù)會(huì)作用在WMS和TMS上用于區(qū)分區(qū)域和配送安排。
購(gòu)買商品信息
這里指購(gòu)買商品的基本信息和庫(kù)存,金額由于比較特殊所以我把金額獨(dú)立在商品信息以外說(shuō),不過(guò)邏輯上其實(shí)都屬于商品信息范疇。商品信息主要影響庫(kù)存更新和WMS生產(chǎn)。
金額信息
訂單產(chǎn)生的商品信息,這里面除了要記錄最終的金額,過(guò)程金額也需要記錄。比如商品分?jǐn)偟膬?yōu)惠金額、支付金額,應(yīng)付金額等。在后續(xù)的訂單結(jié)算、退換貨、財(cái)務(wù)等環(huán)節(jié)都需要使用。
時(shí)間信息
記錄訂單每個(gè)節(jié)點(diǎn)的觸發(fā)時(shí)間。
訂單流程
訂單流程是指整個(gè)訂單從產(chǎn)生到完成整個(gè)流轉(zhuǎn)過(guò)程。他包括正向流程和逆向流程。
正向流程
訂單正常生產(chǎn)到配送的過(guò)程。這里面列舉的模塊是一般電商通用的功能,部分可能根據(jù)實(shí)際業(yè)務(wù)場(chǎng)景有所增加調(diào)整。020場(chǎng)景下出庫(kù)、合包裹、發(fā)票準(zhǔn)備等工作是由商家方進(jìn)行,部分工作是屬于線下場(chǎng)景。
整個(gè)流程涉及到的環(huán)節(jié)非常多。這里面提幾個(gè)細(xì)節(jié)上需要注意的地方:
訂單生成環(huán)節(jié)存在超時(shí)未支付自動(dòng)取消的過(guò)程。庫(kù)存的占用會(huì)在訂單取消后釋放。
如果選擇COD(貨到付款)則支付環(huán)節(jié)相應(yīng)轉(zhuǎn)移到訂單配送之后,而過(guò)程中所有與款項(xiàng)相關(guān)的邏輯變?yōu)橹徊僮鹘痤~數(shù)字,不對(duì)結(jié)算和賬戶進(jìn)行打退款操作。
金額分?jǐn)傂枰狡,這個(gè)在之前中有說(shuō)明,這里就不細(xì)說(shuō)了。
訂單系統(tǒng)審核主要用戶對(duì)惡意用戶或者刷單情況進(jìn)行處理。系統(tǒng)可根據(jù)白名單、黑名單、消費(fèi)頻次、促銷品購(gòu)買量當(dāng)方面做風(fēng)控規(guī)則。如果后續(xù)會(huì)進(jìn)入到人工審核,則規(guī)則上可以適當(dāng)從寬。當(dāng)觸發(fā)規(guī)則需要進(jìn)行訂單退訂的行為。此處設(shè)計(jì)時(shí)要小心對(duì)用戶體驗(yàn)的損害,往往前臺(tái)文案上說(shuō)明當(dāng)前節(jié)點(diǎn)是審核狀態(tài)或者是等待接單。
在O2O商城領(lǐng)域有催單的概念,而傳統(tǒng)電商則是通過(guò)關(guān)聯(lián)第三方物流的物流信息進(jìn)行跟蹤。催單觸發(fā)考慮到實(shí)際場(chǎng)景,一般會(huì)設(shè)定一定的時(shí)間間隔,間隔時(shí)間內(nèi)只觸發(fā)一次催單的請(qǐng)求。
預(yù)售等貨和移倉(cāng)需要做成SOA服務(wù),以便在交易頁(yè)面計(jì)算預(yù)計(jì)時(shí)間和預(yù)計(jì)到貨時(shí)間。移倉(cāng)處理依賴倉(cāng)庫(kù)的情況,也會(huì)涉及到后續(xù)拆分和合并包裹的邏輯。
訂單生產(chǎn)時(shí)先要判斷報(bào)缺情況,如果出現(xiàn)報(bào)缺問(wèn)題則要考慮整單報(bào)缺、部分報(bào)缺、換貨或者換轉(zhuǎn)退的情況(庫(kù)存,倉(cāng)促調(diào)撥和退款)。報(bào)缺情況分為系統(tǒng)報(bào)缺和實(shí)物報(bào)缺,這是承接但相對(duì)獨(dú)立的兩個(gè)環(huán)節(jié)。
電商商城系統(tǒng)要考慮7天無(wú)理由退貨的情景,即訂單狀態(tài)完成后申請(qǐng)退貨。此時(shí)主要涉及的是金額上的計(jì)算以及一些財(cái)務(wù)程序(如發(fā)票等)問(wèn)題的處理。
逆向流程
逆向流程則指訂單發(fā)生取消、退貨等情況時(shí)引發(fā)的訂單流程過(guò)程。在設(shè)計(jì)逆向流程時(shí)建議和正向獨(dú)立分開,通過(guò)訂單號(hào)等信息進(jìn)行關(guān)聯(lián),避免耦合過(guò)多邏輯無(wú)法延展設(shè)計(jì)。
逆向流程的觸發(fā)主要有幾種情況
用戶自主取消訂單(整單)
風(fēng)控系統(tǒng)觸發(fā)取消訂單(整單)
客服接到客訴仲裁后觸發(fā)取消訂單(整單)
超時(shí)未支付取消訂單(整單)
換貨報(bào)缺轉(zhuǎn)為退單(整單、部分報(bào)缺)
觸發(fā)條件考慮兩個(gè)方面
訂單狀態(tài)機(jī)(某一節(jié)點(diǎn)后如訂單生產(chǎn)后不允許取消訂單)
訂單生成時(shí)間(主要是O2O平臺(tái)方面,考慮到配送時(shí)間和線下流程的不規(guī)范,有可能出現(xiàn)狀態(tài)機(jī)沒觸發(fā)更新但實(shí)際流程在流轉(zhuǎn)的情況)
其他要注意的一些內(nèi)容
當(dāng)退單被商家拒絕后需要轉(zhuǎn)入客服仲裁的環(huán)節(jié)
部分退的訂單促銷一般保持享用狀態(tài),但金額按照分?jǐn)偟慕痤~進(jìn)行退款。
訂單狀態(tài)機(jī)
關(guān)于狀態(tài)機(jī),我在百度上搜索了下定義。
關(guān)于狀態(tài)機(jī)的一個(gè)極度確切的描述是它是一個(gè)有向圖形,由一組節(jié)點(diǎn)和一組相應(yīng)的轉(zhuǎn)移函數(shù)組成。狀態(tài)機(jī)通過(guò)響應(yīng)一系列事件而“運(yùn)行”。每個(gè)事件都在屬于“當(dāng)前” 節(jié)點(diǎn)的轉(zhuǎn)移函數(shù)的控制范圍內(nèi),其中函數(shù)的范圍是節(jié)點(diǎn)的一個(gè)子集。函數(shù)返回“下一個(gè)”(也許是同一個(gè))節(jié)點(diǎn)。這些節(jié)點(diǎn)中至少有一個(gè)必須是終態(tài)。當(dāng)?shù)竭_(dá)終態(tài), 狀態(tài)機(jī)停止。
由上述定義可以看到,狀態(tài)機(jī)的概念是用來(lái)表示按照一定的方向通過(guò)觸發(fā)不同節(jié)點(diǎn)產(chǎn)生數(shù)據(jù)流轉(zhuǎn)的過(guò)程。在訂單中通過(guò)情景觸發(fā)訂單狀態(tài)的變化來(lái)表達(dá)訂單流轉(zhuǎn)的過(guò)程就是訂單狀態(tài)機(jī)。
電商
電商和O2O的主體流程是相同的,不同的在于物流配送環(huán)節(jié)電商較O2O商城更為復(fù)雜,此處只表明了主要的訂單狀態(tài)機(jī),倉(cāng)儲(chǔ)物流內(nèi)的物流單流轉(zhuǎn)不在此范圍內(nèi)。狀態(tài)機(jī)原則上使用結(jié)果值而不使用過(guò)程值,比如使用支付成功作為節(jié)點(diǎn)而不使用支付中作為節(jié)點(diǎn)。
訂單狀態(tài)機(jī)要融合訂單流程來(lái)設(shè)計(jì)觸發(fā)節(jié)點(diǎn),訂單流程的邏輯點(diǎn)要多于狀態(tài)機(jī),一般在當(dāng)前流程環(huán)節(jié)完成后最后更新狀態(tài)機(jī)。
訂單推送
當(dāng)狀態(tài)機(jī)發(fā)生變化時(shí),需要將對(duì)應(yīng)的變化情況告知給相關(guān)人員以便了解當(dāng)前訂單的情況。這就是訂單推送的作用。
訂單推送的觸發(fā)依賴于狀態(tài)機(jī)的變化,涉及到的信息包括
推送對(duì)象(用戶、物流人員、商家)
推送方式(push,短信)
推送節(jié)點(diǎn)(狀態(tài)機(jī))
訂單的演變
電商平臺(tái)的搭建變遷也是訂單逐步穩(wěn)固發(fā)展的過(guò)程。我們來(lái)看下訂單的發(fā)展過(guò)程,結(jié)算環(huán)節(jié)由于是一個(gè)比較大的話題,這里面不展開說(shuō)明了。
訂單第一階段:實(shí)現(xiàn)訂單流轉(zhuǎn)
O2O平臺(tái)搭建的第一階段要實(shí)現(xiàn)基本的訂單流轉(zhuǎn),支持一些營(yíng)銷活動(dòng)的購(gòu)買(這里依賴附屬系統(tǒng)的搭建情況,這里默認(rèn)認(rèn)為具備基本功能)。
實(shí)現(xiàn)訂單的生成、生產(chǎn)
支持訂單審核(初期可支持人工審核即可)
支持用戶端顯示訂單相關(guān)信息
支持促銷金額的計(jì)算
這個(gè)階段搭建時(shí)核心是解決訂單的基本流轉(zhuǎn),所以原則上一些功能可以后續(xù)再逐步完善。比如催單、拆單、系統(tǒng)審核等。
另外在搭建訂單結(jié)構(gòu)的時(shí)候如果條件允許,在設(shè)計(jì)之初可以就考慮用子母單的形式,即兩層結(jié)構(gòu)
母單負(fù)責(zé)訂單整體信息的記錄
子單記錄單個(gè)商品的詳細(xì)信息和金額情況
訂單第二階段:平臺(tái)化搭建
隨著O2O平臺(tái)的發(fā)展,越來(lái)越多的接入方需要訂單的支持,POP平臺(tái)的商家接入、第三方倉(cāng)配的接入,更多快遞合作伙伴的接入等等。訂單的功能進(jìn)入第二階段的擴(kuò)充。
提供訂單soa服務(wù)
支持跨平臺(tái)交易單生成(即同一個(gè)大交易單內(nèi)既有商家商品又有自營(yíng)商品或者是多個(gè)商家的商品)
對(duì)接多個(gè)倉(cāng)庫(kù),支持移倉(cāng)模式
根據(jù)倉(cāng)配情況計(jì)算預(yù)計(jì)送達(dá)時(shí)間(訂單promise服務(wù))
支持拆單、合單邏輯(配送單、支付單等)
支持快遞分單
提供更豐富的訂單推送服務(wù),完善訂單狀態(tài)機(jī)
這里說(shuō)幾個(gè)訂單復(fù)雜化以后需要注意的細(xì)節(jié)
訂單子母單結(jié)構(gòu),便于將信息進(jìn)行梳理,減少耦合
拆單、合單邏輯主要是用于解決不同系統(tǒng)之間的耦合問(wèn)題(如配送單主要運(yùn)用于TMS,支付單提交給支付系統(tǒng))。他們都通過(guò)交易訂單信息項(xiàng)重新組合后添加部分自有系統(tǒng)的信息項(xiàng)而組成,通過(guò)訂單編號(hào)來(lái)做關(guān)聯(lián)。交易單和支付單是1:1,交易單和物流單也叫配送單則可能是N:N的關(guān)系。
移倉(cāng)的邏輯和預(yù)計(jì)送達(dá)時(shí)間要依賴倉(cāng)配結(jié)構(gòu)和運(yùn)輸能力的測(cè)算,當(dāng)然也可以通過(guò)拆包裹分多次發(fā)的方式減少移倉(cāng)的次數(shù),不過(guò)要考慮要前臺(tái)用戶體驗(yàn)和免責(zé)說(shuō)明。
當(dāng)自營(yíng)品和商家品或者多個(gè)商家品的時(shí)候,優(yōu)惠券的分?jǐn)傆?jì)算要注意。要區(qū)分商家券和全場(chǎng)通用券可分?jǐn)偟谋壤蛢?yōu)先級(jí)。
訂單第三階段:更多類型的訂單模式
當(dāng)平臺(tái)發(fā)展到足夠大的規(guī)模,提效、穩(wěn)定變成一個(gè)重要的話題。這里面介紹兩種情況:
場(chǎng)景:無(wú)實(shí)物庫(kù)存,但是顧客可以下單預(yù)定。當(dāng)實(shí)物到貨后,按照正常訂單進(jìn)行配送。
預(yù)售單需要設(shè)置預(yù)售庫(kù)存數(shù)和預(yù)計(jì)到貨時(shí)間。用戶下單后不會(huì)直接進(jìn)入生產(chǎn),將預(yù)售訂單放入單獨(dú)的訂單庫(kù)(或增加預(yù)售品標(biāo)識(shí))。
預(yù)售商品到貨后要判斷涉及到貨庫(kù)存和預(yù)售訂單是否相等。當(dāng)實(shí)際庫(kù)存小雨預(yù)售訂單則按下單時(shí)間釋放等量訂單進(jìn)行生產(chǎn)。系統(tǒng)需要回告庫(kù)存系統(tǒng)重新計(jì)算預(yù)售占用庫(kù)存量。
JIT(準(zhǔn)時(shí)制生產(chǎn)方式 Just In Time 簡(jiǎn)稱JIT)
場(chǎng)景:銷售驅(qū)動(dòng)生產(chǎn),根據(jù)訂單進(jìn)行生產(chǎn)配送。
JIT模式需要設(shè)定JIT波次情況和支持JIT的倉(cāng)庫(kù)
相同JIT倉(cāng)庫(kù)訂單按照J(rèn)IT波次時(shí)間點(diǎn)匯總訂單并驅(qū)動(dòng)產(chǎn)生ERP采購(gòu)訂單;JIT和目標(biāo)倉(cāng)告訴采銷系統(tǒng)
ERP到貨回告訂單系統(tǒng)已到貨
訂單釋放進(jìn)入WMS生產(chǎn)
這里面需要說(shuō)明的是JIT場(chǎng)景可以延伸為不入庫(kù)直接由供應(yīng)商提供物流配送后續(xù)工作,平臺(tái)提供訂單、發(fā)票等服務(wù)。這是流程會(huì)變?yōu)?/span>
訂單告知ERP,生成采購(gòu)單直接回告供應(yīng)商
供應(yīng)商物流狀態(tài)對(duì)應(yīng)訂單狀態(tài)機(jī)進(jìn)行同步更新
用戶收貨后通過(guò)郵寄方式提供發(fā)票
該模式不支持換貨行為
結(jié)言
訂單是電商、020的生命中軸線,他主導(dǎo)、串聯(lián)了整個(gè)全部鏈路的系統(tǒng)。所有的系統(tǒng)都是圍繞訂單進(jìn)行改建和擴(kuò)張的。訂單系統(tǒng)的強(qiáng)壯決定了平臺(tái)的穩(wěn)定性。(文/人人都是產(chǎn)品經(jīng)理)
文章編輯:Micronet微網(wǎng) 最好的微商城系統(tǒng)盡在Micronet微網(wǎng)
如需了解更多微商城資訊 可報(bào)名申請(qǐng)或撥打全國(guó)免費(fèi)電話400-830-8248
文章轉(zhuǎn)載于:http://www.ccidnet.com/2018/0421/10379379.shtml
聲明:本網(wǎng)部份文章為轉(zhuǎn)載文章,在每篇文章底部有說(shuō)明,文章的觀點(diǎn)和立場(chǎng)僅代表作者個(gè)人立場(chǎng),不代表微網(wǎng)立場(chǎng),若是文章轉(zhuǎn)載中有侵范您的權(quán)益,請(qǐng)發(fā)郵件到 [email protected]或致電13922854199通知?jiǎng)h除,謝謝!
免費(fèi)電話 免費(fèi)熱線:400-830-8248
微信咨詢
注冊(cè)開店