最底層的交易訂單,這些知識點你知道嗎?
編輯導(dǎo)讀:當(dāng)你在網(wǎng)上購物時,付完款之后就會生成訂單,通過訂單可以看見商品的物流信息或騎手信息。而這套交易系統(tǒng)是怎樣運轉(zhuǎn)的呢?本文作者圍繞底層的交易訂單展開三方面的分析,希望對你有幫助。
一、無處不在的訂單
今年過年因為疫情原因沒回家,留在北京過。過年期間在北京我?guī)缀鯖]出門買過菜,都是直接在APP里選好想買的蔬菜、然后支付,最后就等著小哥送到家了。不光如此,生活中打車、網(wǎng)購、訂外賣等各種場景,再也不用巴巴的忙前忙后,自己在家在幾分鐘即可一氣呵成。別小瞧在頁面上用手指手指簡單的點點點,對于背后的系統(tǒng)來說可是一大步。
其實當(dāng)我們將喜歡的商品加入購物車,點擊界面上的“提交訂單”后,其實你的訂單就已經(jīng)生成了,而且此時在頁面上你也可以看到訂單號,等到支付成功后,系統(tǒng)就會安排為你準(zhǔn)備商品啦。
淘寶下單頁:
京東下單頁,點擊“自己付”或者“幫我付”,即生成了訂單。
二、底層的交易訂單
1. 什么是交易訂單
今天我主要聊下用戶看不到的、但是一直默默在發(fā)力的處于最底層的“交易訂單”,在我理解交易和訂單其實是兩個不同的東西。
交易是什么?是買賣雙方對有價物品及服務(wù)進(jìn)行互通有無的行為。而訂單則是訂單是賣家與賣家交易的線上合同,是交易的憑證。所以我理解對于系統(tǒng)來說,交易是系統(tǒng)提供的能力,而訂單是存儲表,后文我用訂單中心來代替交易和訂單,進(jìn)行整體說明。
2. 交易訂單的底層系統(tǒng)交互
其實訂單系統(tǒng)是電商非常重要的模塊之一,訂單系統(tǒng)在整個售賣的鏈路中,對接了商品、庫存、履約等上下游不同的系統(tǒng),同時對保證數(shù)據(jù)的準(zhǔn)確性、合規(guī)性、完整性有著不可言喻的作用。
下面先看一張我畫的各個系統(tǒng)時序圖,我對各個系統(tǒng)的交互進(jìn)行簡要說明。
- 端:端其實很好理解,就是用戶看到的那個下單的入口,PC、APP、h5都是,用戶觸發(fā)了提交訂單后,端上就調(diào)用訂單中心的下單服務(wù)進(jìn)行下單。這個時候你就發(fā)現(xiàn)了訂單中心的重要性,其實端上更多的是數(shù)據(jù)和信息的展示,核心的能力都是底層提供的。
- 風(fēng)控中心:訂單下單的時候首先會和風(fēng)控中心進(jìn)行交互,這一步主要是為了篩選黑名單用戶、或者說監(jiān)控是否惡意下單。若發(fā)現(xiàn)用戶下單行為異常,則無法下單成功。
- 商品系統(tǒng):下單時訂單中心會查詢商品系統(tǒng),對用戶所購買的sku進(jìn)行校驗,比如是否存在、是否上架、是否可售、可售數(shù)量等,若其中任意一項校驗不通過,則終止下單,屬于下單前的基礎(chǔ)校驗。下單前的所有基礎(chǔ)校驗通過后,訂單中心會扣除商品系統(tǒng)里該sku的可售數(shù)量。
- 庫存系統(tǒng):下單時訂單中心會查詢庫存系統(tǒng),對用戶所購買的sku的庫存進(jìn)行校驗,比如當(dāng)前庫存是否大于等于用戶購買的庫存,若庫存不足,則無法下單成功,屬于下單前的基礎(chǔ)校驗。下單前的所有基礎(chǔ)校驗通過后,訂單中心會預(yù)占庫存系統(tǒng)里該sku的庫存,這里要說明的是,后續(xù)用戶支付成功后,即對預(yù)占的庫存進(jìn)行扣減。ps:為什么下單后而非支付后紀(jì)要進(jìn)行庫存預(yù)占和商品扣減呢,這里主要考慮的是多用戶同時下單的并發(fā)問題,要保證用戶下單后和支付后的信息是一致的。
- 營銷中心:下單時訂單中心會查詢營銷中心,這里營銷中心包含一些優(yōu)惠券、促銷券、限購策略等,訂單中心會對限購數(shù)量、券的值、促銷信息等進(jìn)行數(shù)據(jù)一致性校驗,校驗無誤后即可下單成功,屬于下單前的基礎(chǔ)校驗。
- 支付系統(tǒng):下單后,用戶在端上支付成功后,訂單中心會調(diào)用支付系統(tǒng)創(chuàng)建支付單。
- 履約系統(tǒng):支付單創(chuàng)建成功后,訂單會調(diào)用履約系統(tǒng)創(chuàng)建履約單,創(chuàng)建成功后履約會下發(fā)wms進(jìn)行生產(chǎn)。
這里只說明的是一些基礎(chǔ)的電商模塊和訂單中心的交互,履約系統(tǒng)和wms的交互等不算是交易訂單模塊的核心鏈路,這里暫且不表。除此以外不同的商家平臺還會涉及訂單中心和臺賬系統(tǒng)、用戶權(quán)益中心的系統(tǒng)交互等等,這里不多贅述。
3. 訂單快照和存儲
快照:下單前的所有基礎(chǔ)校驗通過后,訂單中心會存儲快照,快照上會記錄當(dāng)時用戶下單時所購買商品信息、如商品名稱、商品金額、商品數(shù)量、商品主圖以及促銷信息如優(yōu)惠券、滿折滿減等主要的信息,因為商品、促銷信息促銷信息隨時都在變,快照主要是用戶后續(xù)發(fā)生爭議時的一個憑證。
訂單存儲:當(dāng)訂單中心扣除了商品數(shù)量、預(yù)占了庫存之后就可以將訂單信息落庫了
訂單主要會存儲有這些信息:
- 用戶信息:用戶賬號信息
- 訂單基礎(chǔ)信息:父單與子單、訂單號、訂單狀態(tài)、下單平臺、打點信息等
- 收貨信息:收件人姓名、收件人手機(jī)號、收件地址、郵編
- 商品信息:sku信息、規(guī)格、商品數(shù)量、價格、商品圖片等
- 優(yōu)惠信息:優(yōu)惠券、促銷活動等
- 支付信息:支付方式、支付單號、應(yīng)付金額、實付金額、運費等
- 物流信息:物流公司、物流單號、物流狀態(tài)
- ……
4. 訂單拆單
訂單拆單從字面上理解就是由一個訂單拆成多筆訂單,原單即父單、拆后的訂單及子單。下面我以拆單的時間、拆單的目的、以及拆單的維度進(jìn)行說明。
- 拆單的時間點:訂單拆單一般是在支付成功后就會進(jìn)行拆單。
- 拆單的目的:通過對貨權(quán)和財權(quán)進(jìn)行區(qū)分,為了發(fā)貨和結(jié)算方便,同時也為了更好的進(jìn)行履約。
- 拆單的維度:店鋪商家。這個主要是考慮到商品的貨權(quán)、財權(quán)不一致,涉及結(jié)算和發(fā)貨的問題。
倉:不同的發(fā)貨倉,為了保證履約時效進(jìn)行拆單。
品類:商品的屬性和價值,如虛擬商品和實物、超大物、易碎品單獨需要包裝等。
發(fā)貨時間:根據(jù)不同的商品特定的發(fā)貨時間進(jìn)行拆單。
5. 訂單拆價
訂單拆價其實核心就是將訂單金額分?jǐn)傊撩總€sku上,以便為其他系統(tǒng)提供sku維度金額的數(shù)據(jù)支持。
- 拆價時間點:訂單一般會在落庫后進(jìn)行拆價
- 拆價的維度:拆分在每個sku上
- 拆價的要求:總帳要平,分拆后的金額一分不多,一分不少
6. 訂單狀態(tài)機(jī)
訂單狀態(tài)機(jī)是指不同流程下訂單的狀態(tài)主要分為幾種:
- 待付款:用戶提交訂單,尚未付款
- 待發(fā)貨:用戶付款完成,待商家發(fā)貨
- 待收貨:商家已完成發(fā)貨,待用戶收貨
- 已完成:用戶或系統(tǒng)確認(rèn)收貨后,訂單已完成交易
- 已取消 :未支付訂單被取消
7. 取消訂單
取消訂單分為支付前取消和支付后取消,支付前取消又稱作關(guān)單,觸發(fā)關(guān)單時要釋放庫存,更新訂單狀態(tài)。
支付后取消又分為兩種,一種是售前取消,一種是售后取消。區(qū)別在于取消訂單時是否可以取消履約單,若履約單已下發(fā)生產(chǎn),則無法通過售前取消,需要通過售后服務(wù)單走售后取消,售后取消這里暫且不表。
三、交易訂單與售后
其實上述交易訂單的核心流程已經(jīng)大致介紹完了,如果訂單發(fā)起售后,如退換貨等,這些都屬于售后的范疇,售后系統(tǒng)都是通過售后服務(wù)單進(jìn)行系統(tǒng)交互的,與正向的交易訂單都應(yīng)該是獨立的服務(wù)和存儲。
四、最后
交易訂單大致流程每個電商平臺都大致相同,但是具體能夠為上游提供的服務(wù)與能力卻不盡相同,交易訂單內(nèi)部包涵的細(xì)節(jié)和邏輯十分復(fù)雜,不是簡短的幾句話可以囊括全的,這篇文章只是介紹了一些基礎(chǔ)的核心流程,希望你能有所幫助!
作者:閆秀兒;公眾號:閆秀兒
本文由 @閆秀兒 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
商品系統(tǒng):下單前的所有基礎(chǔ)校驗通過后,訂單中心會扣除商品系統(tǒng)里該sku的可售數(shù)量。—-》這里描述是不是有問題,訂單中心如果要去商品系統(tǒng)里扣除SKU可售數(shù)量的話,后面再去庫存中心預(yù)占豈不是功能重復(fù)了。
正常一個SKU的可售數(shù)量也是實時變化的,這個值一般是從庫存中心準(zhǔn)實時獲取。
清晰易懂??