京東後臺:訂單履約系統設計(上)

筆者以京東爲例,詳述了訂單履約和訂單拆分系統以及相關流程。

一、訂單履約概述 1. 什麼是訂單履約?

訂單是一次交易的生命週期,交易開始生成訂單,結束的時候完成訂單。在天貓或者京東上買東西,最終都會生成一張訂單。

其實,這個訂單就是消費者與平臺的一個簡單的契約,而契約上的東西都是平臺履約內容,包括訂單上的信息:發票(增票還是普票)、運費、時效、預約、優惠等等。

比如,訂單預計在前端就會顯示你的訂單會在什麼時間送達。京東現在對於時效來說,有自己的 211(2011 年開始),京東在是中國第一家做出 211 這麼一個時效的公司。

爲了承載這些履約內容,如何把客戶的一個訴求,最終以按時的效果交付到用戶手中,就產生了一個系統—OFC(Order Fulfillment Center)簡單來說,訂單履約中心就是連接的用戶下單,和訂單在庫房生產的一個系統。

  1. 什麼是 211?

211 就是上午 11 點前下單,然後當天晚上 11 點前送達。晚上 11 點前下單,次日上午 11 點送達。

除了 211 以外,京東還有次日達,隔日達,極速達——即 411。411 即 3 小時送達,這個也是刷新業內的一個預約時效。

  1. 什麼是預約?

預約就是約時間的一個管理,在京東買東西就會發現,京東有一個預約日曆。在未來的 7 天內,可以選擇每天 3 個不同時段來送達,如北京上海等的一些城市,還支持夜間配送。

  1. OFC 在什麼環節出現?

直白一點說就是用戶在京東前臺選完商品進入購物車,到結算頁並點擊提交訂單按鈕的時候,就進入了 OFC 這個環節,直到這個訂單由京東實際發給庫房(京東自有 100 個,協同倉 + 特殊倉可能將近 200 個)。

怎麼把京東每天這麼多訂單量,發給具體的每一個庫房,就是 OFC 在做的事情。

其實,正常買東西都是從 “網站的註冊–> 搜索商品–>選商品購買–>倉儲生產、物流配送”。其中 OFC 是在購買和倉儲生產這個環節之中的一個履約系統。

二、訂單拆分 1. 拆分維度

什麼是訂單拆分?

不知道大家在京東下單的時候,都遇到過這個情況:用戶下完單後,在我的訂單詳情頁會看到這麼一句話,即‘您的訂單由於不在同一部分,或者不在同一個商家需要拆分’這麼一句話。

而在拆分原因會顯示:因爲不在同一庫房,或不是同一商家,訂單被拆成多個子單分開配送。

這個會對客戶帶來什麼?尤其像雙 11 或者 618 等這種大促的時候,我們的購物車可能一次性會有 10 個甚至有若干個東西要購買。然而,爲什麼會拆這個訂單?

哪些訂單需要拆分,哪些不需要?

京東訂單主要分爲虛擬訂單和實物訂單。

實物訂單:京東自營商品,pop 商家商品等都是實物訂單。

實物訂單是指訂單中爲實物商品,發貨需要物流的一些商品訂單,比如訂單中有冰箱,筆記本,手錶,那麼這個訂單就是實物訂單,全部需要通過 OCS 服務和拆分系統進行處理。

虛擬訂單:商品可以是 Q 幣,手機充值,服務產品點卡,禮品卡等。

相比實物訂單,虛擬訂單由於沒有物流狀態,所以訂單流轉和結算流程相對簡單一些。僅通過 OCS 服務進行數據保存,不通過新的拆分系統處理。

  1. 拆分引擎

維度 1:庫房

首先,京東有不同品類的庫房,京東的庫房現在依然是以品類倉爲主,就算有亞洲一號,但訂單拆分最關注的還是品類倉。因爲不同的品類,比如像大家電、圖書、IT、3C 類產品、食品母嬰類產品,在倉儲間要求上有不同的生產特點。

比如,食品母嬰類產品在京東有自己的恆溫倉,諸如奶粉等此類商品要保持一定的溫度,而有一些生鮮要符合保持低溫倉的特點,再比如大件的擺放和圖書的擺放是完全不同。

維度 2:商家

另外一個維度就是商家,京東兩大類業務自營和 POP,而 POP 裏邊有不同的商家,京東爲了讓不同商家的商品由不同的商家配送,最後給不同的商家進行結算,不可能在一張訂單上同時存在兩個商家的商品。因而,京東會根據商家去進行拆單。

維度 3:支付方式

後款訂單在點擊提交訂單的按鈕以後,立即進入拆分。而先款訂單是在付款完成之後做拆分的操作。

先款訂單:先款後貨;後款訂單:先貨後款。

後款訂單兩類來源:京東自營、POP 有中的 FBP 訂單。

當然,除了以上 3 類主要維度,還包括其他的拆分維度和規則。

  1. 拆分流程

三、金額拆分 1. 拆分定義

在京東買過東西,基本 365 天都會有不同類型的促銷,最簡單的直降,還有滿減、用自己的東卷、京豆,還有各種各樣的促銷。

比如買個東西,滿 199 減 100(活動預熱),大家都會湊單湊到 199。用戶就會買食品湊夠 199 然後減掉 100。

假如用戶買了 10 件商品,減了 100 元,那麼具體這 100 塊錢怎麼減呢?

對於客戶來說,他們不理會京東怎麼操作這個優惠折扣,只要這 100 塊錢在自己結算的時候抵扣即可。

但對於京東來說,這 100 塊錢並不是直接減 100 這樣來登記的,其不在訂單裏,是以商品的金額訂單裏,商品金額的比例分拆優惠的,這就是金額拆分系統在做的一個工作。

  1. 拆分規則

OCS 的基本原則就是按 SKU 的金額比例去分攤並取整數,這裏面不光包括優惠,還有各種運費,虛擬資產(如京豆)等。

比如這次花了 1000 京豆來抵扣 10 元,這 1000 個京豆抵的這 10 塊錢就會分攤到用戶具體的每一個 SKU 上。其實,現在前臺會直接顯示減幾塊錢幾塊,記得不是特別細,在後臺都是會具體的記錄每行減多少錢,包括運費。

我們在北京,買自營的商品體驗不是特別深,如果在偏遠山區,在京東是要收特殊的運費,或者買商家的商品會收運費,運費怎麼分攤也都是在這裏計算的。

  1. 對外服務

  2. 金額包含訂單上的運費、優惠、現金、用戶實際支付等所有類型的金額;

  3. 金額拆分的基本原則是按 sku 金額比例分攤,優先按元取整;

  4. 拆分系統處理完成後,將拆分結果發送到 MQ,金額拆分系統訂閱消息,接收消息並將計算結果存入 DB,併發送計算結果到 MQ;

  5. 對外提供查詢服務。售後、EBS、發票、廣告聯盟、採銷、客服、數據倉庫、計費、等 30 多個系統使用該服務;

出處:https://www.sohu.com/a/332049800_114819

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/_Fwr8s6VSb5s5fazilkilA