電商后臺:實例解讀訂單系統
一個偉大的訂單系統背后一定站著一大堆偉大的其他系統–電商產品狗說
訂單所涉及到的后臺系統包括訂單系統、庫存系統、倉庫系統、物流系統、風控系統等。訂單業務的流轉主要依靠完善的后臺系統。
本篇文章將介紹前后端訂單系統,以及訂單業務流程中,各業務系統之間的緊密交互。
?前端訂單系統
前端訂單系統主要包括2大塊的展示:訂單信息和訂單狀態。
1.訂單信息包括以下幾大要素
- 收貨人信息:昵稱、手機號、收貨地址。必須展示要素之一,為商品發貨、投遞的根據;
- 所購商品信息:店鋪名稱、商品名稱、商品規格、商品價格、商品數量。必須展示要素之一,便于用戶查看/核對;
- 支付信息:訂單總金額、實際支付金額、支付單號、訂單號。必須展示要素之一,便于用戶核對支付金額,同時在有多種優惠情況下,能夠為用戶詳細展示實際優惠與實際支付金額;
- 促銷信息:優惠金額。只當該筆訂單滿足某種促銷條件時,進行相應的展示。
2.訂單狀態一般包括以下幾種狀態
- 未付款訂單:已下單但未支付的訂單,針對此類訂單,平臺一般會設置一個自動取消訂單的時間,比如未付款訂單半小時后自動取消,以釋放鎖定的庫存;
- 待發貨訂單:已付款但未發貨的訂單,此類訂單若有退款申請發生,一般需要查詢倉庫是否已發貨,若未發貨則可進行攔截,此時用戶可退款;若已發貨,則用戶此時不能申請退款,只能收貨后進行退貨退款或拒收。當然,有些平臺和倉庫之間不能實時信息交互時,可以設置一個有效時間,此有效時間內用戶可申請退款,過了此時間則訂單狀態變為已發貨(非實際發貨),不能退款;
- 待收貨:已發貨未收貨的訂單;
- 退款中:申請退款、正在處理中的訂單;
- 退款失?。荷暾埻丝钍〉挠唵?,訂單狀態保持申請退款前的狀態不變;
- 退款成功:申請退款成功的訂單。當一個訂單中的某個子訂單申請退款成功,該訂單的狀態保持不變,僅該子訂單的狀態顯示退款成功;
- 交易成功:收貨成功的訂單;
- 交易關閉:取消付款的訂單,有時退款失敗的訂單也會歸為交易關閉狀態。
可見下圖淘寶訂單詳情頁示例。淘寶訂單詳情頁從上至下依次顯示訂單狀態、物流信息、收貨人信息、商品信息、促銷信息、支付信息。
后臺訂單系統
后臺訂單系統和前端訂單系統展示的信息相對應,包括訂單列表以及訂單詳情的展示。
1.訂單列表
訂單列表以序列形式顯示所有用戶的下單記錄,列表中主要展示某筆訂單的一些核心信息,比如訂單編號、下單時間、下單用戶、商品信息、實付金額、訂單狀態、維權狀態等。
2.訂單詳情
訂單列表主要展示核心的訂單信息,所以可從訂單列表中點擊某個訂單查看它的詳情,訂單詳情可分為三部分展示:訂單信息、支付信息、物流信息。
訂單信息主要展示該筆訂單的商品信息,包括商品名稱、規格、ID,商品單價、購買數量、實付金額等。
支付信息主要展示該筆訂單支付的相關信息,包括商品總額、運費、優惠金額、實付金額、支付時間、支付單號、交易單號等。其中支付單號一般是平臺的支付流水號,交易單號一般是第三方支付公司的支付流水號。
物流信息主要展示該筆訂單的物流,包括發貨地址、收貨地址、快遞單號、物流路徑等。
訂單業務流轉
前后臺訂單系統雖然更多的是對訂單信息和狀態的展示,但這些訂單信息和狀態在后臺各業務系統中如何有效流轉,訂單系統和其他系統如何高效合作,最終將信息完美呈現在前后臺訂單系統中,是非常重要和復雜的。
下圖是從用戶下單到收貨的一個業務流程示例。
我們可以看到,用戶在前端可見的幾個訂單狀態變化,其實在后臺經歷了很多系統的協助。下面簡單介紹下各業務系統在訂單流轉過程的作用:
1.風控系統
用戶購買了一個商品后,該商品在倉庫中的庫存數量需要先鎖定相應數量,以保證庫存的準確性。一般電商平臺對于鎖定庫存有兩種處理方式:下單鎖庫存、支付鎖庫存。這兩種鎖庫存方式各有利弊,支付鎖庫存,可能在支付時發生并發情況,導致超賣。而下單鎖庫存可以有效防止超賣情況發生,但卻可能被惡意下單。我司平臺當前選擇的就是下單鎖庫存方式,此時風控系統就可以發揮其重大作用,攔截掉惡意下單的用戶。
2.支付系統
支付系統主要是為用戶下單支付服務,一般一個訂單生成一個支付單號,作為與第三方支付公司的一個交易記錄,也需要在訂單中展示。
3.庫存系統
前端商品是否可售與該商品的庫存相關,庫存數>0時,該商品在前端為可購買狀態,庫存數=0時,該商品在前端為售罄不可購買狀態。因此保持商品庫存數量的準確性是庫存系統的最根本功能,而訂單業務中,有多個流程涉及到庫存變化。我們以下單鎖庫存邏輯來進行下單業務流程中涉及到庫存變化的說明。
- 下單1個商品時,庫存需鎖定1個
- 若該訂單在N小時(N為平臺制定的取消訂單時間)內未支付,則解除鎖定庫存
- 若該訂單已支付,則庫存仍鎖定1
- 訂單發貨前,用戶取消訂單,則解除鎖定庫存
- 訂單推送至倉庫,倉庫發貨,庫存扣減1
總結
前后臺訂單系統相對于其他系統來說,在頁面上的展示比較簡單,但其背后的邏輯以及與其他業務系統的交互是非常復雜的,要保證一個商品從前端用戶下單到最后送達用戶手中,需要各系統的完美配合。
本篇文章只是簡單介紹了正常流程下的訂單業務流轉以及訂單系統,其實對于實際的訂單系統來說,還包括拆單、售后維權(退貨退款)等非常多的業務情況,之后有機會跟大家詳細介紹。
風控系統細講
我覺得是支付后鎖定-1,不是出貨后鎖定 – 1;
我覺得他的意思是,在出貨之前、未發生取消訂單的情況下,庫存 1 是鎖定狀態,鎖定狀態通過出貨前的取消訂單可以取消鎖定恢復庫存,在出貨以后這個庫存 1 則實際扣減,只能通過退貨單才能重新入庫
M
如果一個訂單包含多個商品,用戶需求一個商品退貨,后臺怎么設計呢?
1、當賣家沒有發貨時,取消訂單重新購買商品。訂單整體取消,購買需要的商品。
2、當賣家已經發貨了,已經有物流的時候,不允許用戶取消訂單,退貨。如果用戶購買了多個商品想退其中一個商品。需用戶先確認收貨(該訂單的全部商品),然后單獨郵寄退自己想退的商品。
兩個維度出發(目前了解大多數電商平臺不支持一個訂單(包含多個商品)多個配送地址,該情況不予考慮):
1.同一店鋪多個商品(和張同學所說一致)
2.不同店鋪多個商品(該部分我記得是可解除不同店鋪的訂單,目前什么情況不太了解)
走售后流程吶吶
子訂單已經拆好了,父訂單關聯多個子訂單,退就是走子訂單的售后流程
分批發貨的后臺也沒有體現出來
沙發
有個最重要的沒寫,拆分和拆錢以及訂單擴展字段結構,這些會因為使用了促銷以及優惠券變得非常復雜