訂單信息與狀態(tài)流轉(zhuǎn),看這一篇就夠了
前言訂單產(chǎn)生后,接下來會(huì)繼續(xù)進(jìn)行一系列流轉(zhuǎn),最后送到用戶手里。在每個(gè)環(huán)節(jié)都有對(duì)應(yīng)的操作,數(shù)據(jù)信息也要求其完成性,可以根據(jù)訂單的每個(gè)狀態(tài)變化,來計(jì)算分析,進(jìn)而進(jìn)行優(yōu)化供應(yīng)鏈路徑,以提升訂單處理效率,提高用戶體驗(yàn)。本篇就依據(jù)經(jīng)驗(yàn)從訂單信息及訂單狀態(tài)兩方面拆解來說下本人對(duì)訂單涉及的系統(tǒng)或業(yè)務(wù)流程。
訂單信息
1. 關(guān)鍵字段
訂單的流轉(zhuǎn)效率取決于信息系統(tǒng)的數(shù)據(jù)流轉(zhuǎn)同時(shí)結(jié)合倉庫、快遞的商品流轉(zhuǎn),所以有幾個(gè)關(guān)鍵字段要提前關(guān)注并了解。
- 訂單是從哪流入到OMS(訂單管理系統(tǒng))的,這就是訂單來源。不同來源的訂單銷賣渠道不同,而且有的流轉(zhuǎn)也是不同的,如由第三方負(fù)責(zé)發(fā)貨的訂單,系統(tǒng)是需要根據(jù)開放平臺(tái)來傳遞信息,對(duì)于發(fā)貨、物流等控制與自營(yíng)訂單不同。
- 訂單是什么類型的,因?yàn)橛唵晤愋筒煌?,在OMS系統(tǒng)中處理有所不同,有的可以有跨節(jié)點(diǎn),有的可能是逆向流程,如退貨訂單在是從用戶到商家的一個(gè)過程,它與正向訂單的處理要復(fù)雜,因?yàn)樗且鶕?jù)正向訂單流轉(zhuǎn)過程中產(chǎn)生的信息進(jìn)行獲取再根據(jù)規(guī)則進(jìn)行計(jì)算處理。
- 倉庫,即訂單來了要送到哪里去作業(yè)處理,在倉庫中的流轉(zhuǎn)需要有哪些標(biāo)準(zhǔn)流程,不同的倉可能歸屬不同的分公司,那么在成本核算上又會(huì)有哪些不同,雖然在OMS前期不關(guān)注,但要保證這些信息的準(zhǔn)確性。而且對(duì)于有的商家在A倉缺貨后,可能安排B倉發(fā)貨即訂單轉(zhuǎn)倉,不通過倉間調(diào)撥的方式,所以訂單中要記錄最終的發(fā)貨倉。
- 支付狀態(tài),此字段與支付相關(guān),不同的支付方式需要對(duì)接不同的接口,狀態(tài)的回傳是否及時(shí)等等。支付狀態(tài)與訂單狀態(tài)可以合并成一個(gè)字段。
- ?訂單狀態(tài),即在不同的操作節(jié)點(diǎn)上訂單所處的狀態(tài),有些信息是展示給用戶的,有的是內(nèi)部查看的。后續(xù)有詳細(xì)的介紹。
2. 訂單信息
訂單生成時(shí)簡(jiǎn)單說了下訂單信息包括訂單基本信息與訂單商品信息,還包括很多附屬信息,如支付明細(xì)、關(guān)聯(lián)用戶、使用的禮品卡明細(xì)等等,具體如下圖。
(1)訂單基本信息
訂單信息即訂單主表信息,我這里將分為訂單號(hào)、下單用戶信息、訂單基礎(chǔ)信息、支付信息、收貨信息和物流信息幾個(gè)小部分。
1)訂單號(hào):?jiǎn)为?dú)列出來了,大家可能有疑問,這里解釋一下。
- 訂單號(hào)雖然只是一個(gè)單據(jù)號(hào),但是這個(gè)號(hào)碼格式是什么樣的需要經(jīng)過設(shè)計(jì),因?yàn)橛械墓居唵翁?hào)是年月日+序列號(hào)或隨機(jī)號(hào)方式,這樣設(shè)計(jì)沒有什么問題,因?yàn)橹灰WC唯一性就可以了。但是,對(duì)于一些公司為了避免數(shù)據(jù)泄露(如友商通過訂單號(hào)分析日訂單量)在單據(jù)號(hào)格式進(jìn)行了一些處理。
- 此外,在履單過程中,單號(hào)是流轉(zhuǎn)過程中非常重要的字段,所以如果好的OMS系統(tǒng)可以根據(jù)訂單號(hào)進(jìn)行分發(fā)流轉(zhuǎn),操作人員也可以根據(jù)單號(hào)來人為判斷其訂單類型或倉庫等信息。附:Amazon中國(guó)的訂單號(hào)格式:C01-2442712-9062228 ;京東訂單號(hào):106697775485;淘寶訂單號(hào):786699393282068525
- 訂單號(hào)的生成是需要有一個(gè)組件支撐的,首先要能夠滿足訂單量的增長(zhǎng)、用戶并發(fā)等要求,其次隨著數(shù)據(jù)量的增長(zhǎng)訂單表是要進(jìn)行橫向或縱向拆分進(jìn)行分庫分表,數(shù)據(jù)進(jìn)行分布式存儲(chǔ)(有興趣的可以看下《大眾點(diǎn)評(píng)訂單系統(tǒng)分庫分表實(shí)踐》)。我們?cè)_啟過分庫分表項(xiàng)目實(shí)踐,但因種種原因推進(jìn)不順利,最終僅上線了單號(hào)生成器及一些服務(wù)組件,挺遺憾的。
2)基礎(chǔ)信息:
包括除單號(hào)的主要信息如來源、分類、狀態(tài)、歸屬、所屬倉庫等,由于訂單表未來是數(shù)據(jù)量最大的,所以每個(gè)字段設(shè)計(jì)時(shí)需要考慮其真正的意義及是否能夠滿足未來的擴(kuò)展。
隨著時(shí)間的推移及業(yè)務(wù)的快速變化與增長(zhǎng),未來有很多種可能會(huì)迫使你去加字段或?qū)⒃侄芜M(jìn)行二次定義,使得此表在開發(fā)過程中要進(jìn)行不斷轉(zhuǎn)義才可以,大大增加了代碼的復(fù)雜度。個(gè)人是比較傾向于預(yù)定義幾個(gè)預(yù)留字段,優(yōu)劣大家在設(shè)計(jì)時(shí)去衡量吧。
3)支付信息:
支付主要是對(duì)在訂單級(jí)使用的優(yōu)惠券、禮品卡、積分及折扣等,在前端訂單進(jìn)入到結(jié)算頁時(shí)會(huì)根據(jù)相關(guān)信息進(jìn)行計(jì)算并記錄,同時(shí)在單據(jù)查時(shí)一般遵循:訂單金額 -優(yōu)惠券-禮品卡-積分=應(yīng)付金額;訂單金額=訂單商品金額+運(yùn)費(fèi)金額;訂單商品金額=商品實(shí)際售價(jià)*商品售賣數(shù)量。
4)收貨信息:
訂單的下單用戶與收貨人可能是不同的,為了更好的提高用戶體驗(yàn),有的訂單可以預(yù)約送貨時(shí)間等,所以此部分信息可以單獨(dú)列出來或以附屬信息進(jìn)行護(hù)展。
5)物流信息:
這里需要記錄快遞公司及物流單號(hào),與物流明細(xì)信息進(jìn)行關(guān)聯(lián)調(diào)用。
(2)訂單商品信息
這個(gè)表是交易的明細(xì)商品信息,自然包括商品的基本信息,同時(shí)包括交易時(shí)的商品價(jià)格、優(yōu)惠信息,同時(shí)還應(yīng)包括交易過程中商品參與的活動(dòng)等信息。
商品信息表是訂單從表,數(shù)據(jù)量是訂單表的幾倍或十幾倍,同時(shí)對(duì)于訂單級(jí)別的一些優(yōu)惠金額需要根據(jù)商品進(jìn)行分?jǐn)?。由于發(fā)票是根據(jù)商品信息進(jìn)行的,所以在分?jǐn)偨痤~時(shí)要注意尾差;同時(shí)在訂單發(fā)生退換貨時(shí)是要根據(jù)商品進(jìn)行金額的重?cái)傊厮恪?/p>
對(duì)于退換貨時(shí)的重?cái)傊厮?,這里啰嗦一下,是針對(duì)于用戶下單時(shí)已經(jīng)享受了訂單級(jí)或商品的促銷活動(dòng),當(dāng)發(fā)生退貨或換貨后由于商品發(fā)生變化,使得訂單級(jí)或換的商品不能再享受其促銷優(yōu)惠了,需要重新計(jì)算優(yōu)惠金額的過程。
(3)開票信息
對(duì)于開票信息,從京東上截了一張圖片,參考下即可。
(4)支付明細(xì)
對(duì)于支付,在訂單生成時(shí)簡(jiǎn)單聊過,這里強(qiáng)調(diào)一下是針對(duì)于各種支付方式的支付明細(xì)數(shù)據(jù)。以前說過,涉及到錢的信息不能馬虎,一定要記錄清楚,要有交易流水號(hào)(我司或第三方機(jī)構(gòu)的),有狀態(tài)變化的過程即支付日志。
此部分后續(xù)會(huì)進(jìn)入到財(cái)務(wù)系統(tǒng)進(jìn)行應(yīng)收對(duì)賬,同時(shí)發(fā)生退款時(shí)需要檢驗(yàn)。對(duì)于支付系統(tǒng)如何設(shè)計(jì)與研發(fā)就不啰嗦了,官方的話就是要保證數(shù)據(jù)的準(zhǔn)確、及時(shí)以及發(fā)生異常后的補(bǔ)償措施;在結(jié)算時(shí)要盡可能提升響應(yīng)時(shí)間,哪怕1ms也可能大大提升用戶體驗(yàn)。
對(duì)于支付,一般都是按父訂單進(jìn)行的,后續(xù)如果發(fā)生拆單,則相關(guān)的支付信息還需要通過父單號(hào)進(jìn)行關(guān)聯(lián)。
(5)物流明細(xì)
下面根據(jù)狀態(tài)分解時(shí),仍會(huì)提到,這里也只展示一張圖片供參考。
(6)訂單附屬表
此部分是根據(jù)實(shí)際業(yè)務(wù)情況進(jìn)行設(shè)計(jì),譬如訂單支付過程使用了禮品卡,那么就需要記錄禮品卡與訂單號(hào)的關(guān)系,同時(shí)記錄使用了多少錢,余額是多少,什么時(shí)間扣款的,這些需要與禮品卡系統(tǒng)進(jìn)行關(guān)聯(lián),以保證此用戶名下的禮品的金額變化是有跡可循的。
同理,積分支付需要記錄使用積分支付時(shí)多少積分抵多少錢,此訂單用了多少積分,用戶還有多少積分余額等這些時(shí)點(diǎn)性的信息。
還是那句話,與錢相關(guān)的信息馬虎不得;對(duì)于其它需要記錄的信息,如果不方便或不能記錄在訂單請(qǐng)表或商品表中,都可以通過附加表方式。但要清楚附屬表越多,代碼可能會(huì)復(fù)雜,但對(duì)于遷庫遷表可能會(huì)容易些。
至此,對(duì)于訂單信息的分解就算完成了,訂單一般都會(huì)經(jīng)過拆單即一個(gè)訂單會(huì)拆分成不同的子訂單,后續(xù)的履單都是根據(jù)子訂單進(jìn)行的,下面從狀態(tài)的角度再來梳理下。
訂單狀態(tài)
訂單的狀態(tài),我將其分為三部分:
- 用戶相關(guān)的狀態(tài),即用戶在我的訂單中可以查看跟蹤的訂單狀態(tài)變化;
- 倉庫/商家的狀態(tài),是指訂單分配到倉庫或商家后,在其作業(yè)過程中產(chǎn)生的狀態(tài);
- 物流狀態(tài),即倉庫/商家發(fā)貨后,包裹發(fā)貨到用戶簽收過程中的相關(guān)狀態(tài)。
下面,按照新建到用戶簽收這一個(gè)完整過程來分別說下我的理解。
新建:即用戶選擇商品后,提交后產(chǎn)生的新訂單。訂單產(chǎn)生前是根據(jù)用戶選擇的收貨地址進(jìn)行商品的庫存判斷、商品的優(yōu)惠活動(dòng)、訂單的優(yōu)惠活動(dòng)以及用戶選擇的支付方式、開票信息等生成的,詳細(xì)過程大家可以參照《電商后臺(tái)-訂單生成》。
支付:用戶支付已提交的訂單,這時(shí)就需要記錄支付的詳細(xì)信息,支付完成后,訂單狀態(tài)就變?yōu)橐阎Ц?,此時(shí)訂單距離發(fā)貨還需要經(jīng)歷幾個(gè)過程。
- 拉單服務(wù):是將前端服務(wù)器產(chǎn)生的訂單拉取到后端生產(chǎn)庫(一般也叫內(nèi)部ERP庫),這個(gè)就是要求快,不能有訂單的積壓。
- 拆單服務(wù):折單分為兩部分,在前端下單時(shí)會(huì)進(jìn)行預(yù)拆單,即將不同的商品根據(jù)規(guī)則進(jìn)行分堆打標(biāo),供后續(xù)的拆單服務(wù)使用。拆單是在支付完成后進(jìn)行的,這時(shí)會(huì)根據(jù)商品的屬性、配送條件要求或是否缺貨等原因進(jìn)行拆分,這時(shí)是將商品進(jìn)行分堆,然后生成子訂單,一般訂單主表的相關(guān)金額信息會(huì)根據(jù)子訂單的商品重新計(jì)算。拆單規(guī)則有很多,此篇不深入梳理了。
- 訂單下發(fā)服務(wù):WMS系統(tǒng)是與OMS系統(tǒng)或ERP分離的,如果使用第三方的倉儲(chǔ)系統(tǒng),數(shù)據(jù)的傳輸是必不可少的。對(duì)于單據(jù)的下發(fā)與狀態(tài)回傳系統(tǒng)是如何設(shè)計(jì)的,目前都是定時(shí)任務(wù)+消息隊(duì)列的方式進(jìn)行。訂單可以根據(jù)倉庫下發(fā)的WMS系統(tǒng),也可以通過開放平臺(tái)傳遞給合作商家由其進(jìn)行發(fā)貨。在京東上下單完成后,你會(huì)清楚的看到類似如下系統(tǒng)消息“您的訂單已經(jīng)分配到XXX倉庫……”給用戶。
- 訂單攔截服務(wù),在用戶創(chuàng)建訂單或支付后,在沒有拆單前,還應(yīng)該有一個(gè)訂單攔截服務(wù)。此服務(wù)的目的是進(jìn)行惡意訂單的判斷,對(duì)于特殊訂單的審核,這都依賴于相關(guān)規(guī)則設(shè)置。當(dāng)訂單攔截后,訂單可能會(huì)被強(qiáng)制取消,目的是為了釋放庫存或避免用戶刷單,這個(gè)過程有的被稱之為訂單的回滾期,我理解就類似于回收站一樣。
待發(fā)貨:在此狀態(tài)的訂單有可能沒有下發(fā)到倉庫,也可能已經(jīng)下發(fā)了。但在此時(shí),訂單都是可以取消的。
看上面的圖中,訂單在發(fā)貨前每個(gè)狀態(tài)理論上都可以取消(用戶主動(dòng)或被動(dòng))。
訂單取消后,狀態(tài)就變?yōu)槿∠麪顟B(tài),這個(gè)狀態(tài)我理解為是訂單的終結(jié)狀態(tài)中一個(gè)(取消、無效、關(guān)閉或簽收)。
在此取消訂單如果沒有發(fā)生拆單,則可以根據(jù)支付或未支付進(jìn)行,即涉不涉及用戶退款;如果發(fā)生拆單,則訂單是要根據(jù)子訂單進(jìn)行取消了,而且在取消過程中是否要判斷是否可以取消,這就涉及促銷或贈(zèng)品或訂單分類等信息,細(xì)節(jié)不說了。
這里補(bǔ)充一個(gè)訂單狀態(tài),即如果訂單發(fā)生拆單后其父訂單的狀態(tài)是什么?一般設(shè)置為無效訂單,這個(gè)也是訂單的一個(gè)終結(jié)狀態(tài)。
接收訂單:這個(gè)狀態(tài)在WMS系統(tǒng)中可能定義為待分揀或其它名稱,在上位系統(tǒng)就是已下發(fā)或待發(fā)貨。此時(shí)訂單就開始在WMS系統(tǒng)中進(jìn)行流轉(zhuǎn)了,但用戶一般不會(huì)關(guān)注你具體的履單節(jié)點(diǎn),他最關(guān)心的是你發(fā)貨還是沒發(fā)。
分揀/打包/發(fā)貨:這幾個(gè)狀態(tài)都是倉儲(chǔ)或商家的作業(yè)過程,其發(fā)貨速度是用戶關(guān)注的,一般上位系統(tǒng)只關(guān)注于何時(shí)發(fā)貨,如果沒有及時(shí)操作會(huì)進(jìn)行提醒。對(duì)于這些狀態(tài)的變化,雖然是倉儲(chǔ)中的,但是我認(rèn)為需要同步到OMS系統(tǒng)中,這樣可以分析訂單的時(shí)效,而且對(duì)于售后也是有幫助的。
一般情況下,在訂單還沒有開始分揀時(shí),用戶或系統(tǒng)仍然可以取消的,具體看訂單取消的環(huán)節(jié)是如何設(shè)計(jì)的。
已發(fā)貨:當(dāng)倉庫或商家操作發(fā)貨后,訂單便進(jìn)入到下一個(gè)狀態(tài)過程,即物流狀態(tài)。此時(shí)的訂單已經(jīng)打包完成了,此時(shí)訂單是不允許取消了,如果用戶不要,那么只能進(jìn)行攔截進(jìn)行拒收處理。
物流狀態(tài)信息:主要是四個(gè)節(jié)點(diǎn),“已攬收->運(yùn)輸中->已派件->已簽收”,這些都是對(duì)接第三方物流信息獲取的。這些狀態(tài)信息一般與訂單主狀態(tài)是分離的,記錄在訂單信息中的物流明細(xì)表中。在與物流公司對(duì)接時(shí),它們會(huì)有很多狀態(tài)碼,哪些展示給用戶,哪些不展示給用戶可以根據(jù)情況進(jìn)行篩選。但最好與物流的官方保持一致,因?yàn)橛械挠脩魰?huì)去快遞的官網(wǎng)查詢,如果有異常會(huì)進(jìn)行投訴。
由于對(duì)接的是快遞公司的開放接口,有些信息是要進(jìn)行脫敏的,有些信息是要保存的,物流狀態(tài)的更新需要及時(shí),以便讓用戶看到最新信息。
簽收:用戶收到貨后簽字確認(rèn),此單完成。如果后續(xù)涉及質(zhì)量等問題,就需要走售后流程。
拒收:淘寶訂單一般很少有拒收,因?yàn)樯碳乙话愣家笙群炇张恼蘸笞呤酆螅ㄓ械纳唐房梢裕?。在大的垂直電商網(wǎng)站下單一般自營(yíng)商品可以拒收。現(xiàn)在基本上沒有貨到付款了,在幾年前購買商品可以選擇貨到付款,對(duì)于商品用問題或不滿意的用戶可以非常坦然的拒收,因?yàn)槟銢]有付錢。雖然現(xiàn)在有支付寶等第三方支付了,但是拒收時(shí)涉及到與快遞、商家三方的溝通,也是比較麻煩的。
商品拒收后,對(duì)于第三方物流是屬于一個(gè)新的單子,快遞費(fèi)誰支付(用戶還是商家)是個(gè)問題,所以一般都是先簽收后退。
寫到這里應(yīng)該可以簡(jiǎn)單的了解了訂單生成后,根據(jù)相關(guān)的狀態(tài)再一次了解了單據(jù)流轉(zhuǎn)過程。
總結(jié)
了解了訂單信息的組成以及相關(guān)的狀態(tài),相信對(duì)于后續(xù)業(yè)務(wù)的理解與方案設(shè)計(jì)會(huì)有一點(diǎn)點(diǎn)幫助,但這些都是非常泛的理解,對(duì)于退貨的逆向流程也沒有總結(jié),在設(shè)計(jì)產(chǎn)品時(shí)一般對(duì)于正向的標(biāo)準(zhǔn)流程處理基本都是比較容易的,復(fù)雜的都是逆向或異常情況的考慮。
為什么要考慮這么多的異常情況呢?其實(shí)最主要的還是責(zé)任及信任。后續(xù)針對(duì)訂單的售后退換貨流程結(jié)合客服系統(tǒng)再進(jìn)行總結(jié)。
感謝您的閱讀!
作者:倔強(qiáng)的大蘿卜;公眾號(hào):倔強(qiáng)的大蘿卜
本文由 @倔強(qiáng)的大蘿卜 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議
退款呢?
退款是針對(duì)于退貨訂單或拒收訂單的支付狀態(tài)。
您好,最近在設(shè)計(jì)多層級(jí)的訂單系統(tǒng),大致的業(yè)務(wù)流,三級(jí)代理>二級(jí)代理>一級(jí)代理>廠商,廠商只和一級(jí)代理做結(jié)算,那訂單的主狀態(tài)就會(huì)在各層級(jí)平臺(tái)看到,在想是否要區(qū)分訂單的子狀態(tài),還是說訂單就直接進(jìn)行拆分,三級(jí)到二級(jí)一個(gè)訂單號(hào),二級(jí)到一級(jí)一個(gè)訂單號(hào),但是這邊訂單對(duì)于廠商來說是同一筆訂單,想請(qǐng)教一下,這種業(yè)務(wù)場(chǎng)景的訂單狀態(tài)如何設(shè)計(jì)
您好,對(duì)于三級(jí)->二級(jí)->一級(jí)->廠商這個(gè)過程,訂單的商品信息都是同樣的嗎?中間有沒有缺貨等場(chǎng)景導(dǎo)致訂單拆分,或一個(gè)訂單多次發(fā)貨到下一級(jí)的場(chǎng)景。如果有拆單那就應(yīng)該有父子訂單號(hào),否則沿用上級(jí)訂單號(hào)是沒有問題的,保證數(shù)據(jù)一致方便查詢跟蹤及統(tǒng)計(jì)。關(guān)于狀態(tài)建議是分段,就像前端狀態(tài),倉儲(chǔ)狀態(tài)和物流狀態(tài)一樣,每個(gè)小段都有其自己的,從上到下有個(gè)接收或下發(fā)的中間狀態(tài)。詳細(xì)可以提供WX號(hào),詳細(xì)交流!
VX:Dongfzly,麻煩賜教~
1
1.1
1.1.1
1.1.1.1
?