真實業(yè)務(wù)訂單 拆單 架構(gòu)與實戰(zhàn)
Java生鮮電商中在做拆單的需求,細思極恐,思考越深入,就會發(fā)現(xiàn)里面涉及的東西越來越多,要想做好訂單拆單的功能,還是相當有難度,
因此總結(jié)了一下拆單功能細節(jié),分享出來。

訂單拆單
拆單也有兩個層次,第一次是在提交訂單后支付之前拆單,這次是拆分的訂單,一次是在下單之后,發(fā)貨之前,去拆分發(fā)貨單(SKU層面)。
兩次拆單的原則不同,第一次拆單是為了區(qū)分平臺商家、方便財務(wù)結(jié)算,第二次拆單是為了按照最后的發(fā)貨包裹進行拆單,如不同倉庫、不同運輸要求的SKU、包裹重量體積限制等因素(第二次拆單的有些步驟可以放在第一步)。
需要注意的是,若是跨境商品平臺,則需要在支付前完成所有拆單步驟,因為報關(guān)需要三單對碰,訂單、支付單、運單統(tǒng)一。
1. 為什么要拆單
拆單,顧名思義就是客戶在下單之后,為了發(fā)貨和結(jié)算方便,需要對訂單進行拆分。影響拆單的因素主要有以下幾點:
店鋪商家。由于商品歸屬權(quán)不同,涉及到財務(wù)結(jié)算和發(fā)貨的問題,店鋪商家不同,需要拆分訂單。例如京東自營和平臺商家的商品在下單時會拆分成不同的子訂單,售后入口不同。或者不同淘寶店同時下單會按照店鋪進行拆單。 倉庫。由于發(fā)貨倉庫不同,按照商品歸屬的倉庫進行拆單,若有多倉有貨,還應(yīng)按照地域時效選擇倉庫進行拆單。 品類。由于商品屬性和價值得不同,同樣會產(chǎn)生拆單需求。例如易碎品需要特殊包裝,超大物品(兒童座椅、輪胎)需要單獨包裝。甚至有些品類不同的商品不能放在一起,都需要來定義拆單規(guī)則。 物流因素。不同物流公司對單個包裹的重量或體積都有特殊要求,需要根據(jù)sku的毛重和體積計算包裹總重量和體積,超出物流公司限制的也需要拆單。 商品價值。這塊的拆單主要是跨境海淘商品,國家政策規(guī)定:跨境電子商務(wù)零售進口商品的單次交易限值為人民幣2000元,個人年度交易限值為人民幣2萬元。當單次購買超過2000元(單倉)之后,就需要對訂單拆單。(總不能告訴用戶少買點,不要超過兩千吧!)
2. 拆單流程
根據(jù)拆單的一些影響因素,需要對訂單進行拆分。由于跨境電商和國內(nèi)電商的區(qū)別點:1.跨境電商一般是單品單倉,同一個SKU只在一個倉庫有,而國內(nèi)電商一般有多個區(qū)域倉,從時效最高的倉庫發(fā)貨;2.跨境電商需要報關(guān),必須三單統(tǒng)一,所以拆單只能發(fā)生在下單后、支付前,而國內(nèi)電商除了平臺商家不同需要在下單時就拆單,其他的拆單步驟可在下單之后再拆發(fā)貨單;3.報關(guān)限額,只有跨境電商需要考慮。
下圖簡單解析一下拆單的流程:

拆單流程
3. 拆單之后的前端顯示
在提交訂單之后、支付之前的拆單訂單,需要即時顯示給用戶,若用戶中斷支付,再回到支付環(huán)節(jié),就需要分開支付。用戶就能知道,是不同的包裹發(fā)過來的,分屬不同的子訂單。

訂單拆分
在支付之后,系統(tǒng)根據(jù)一些影響因素進行拆單,同一個子訂單可能會對應(yīng)多個物流單,在訂單顯示頁面查看物流時,需要展示多個物流信息。但是現(xiàn)在多個平臺只能一個訂單對應(yīng)一個物流單。有些訂單無法通過一個包裹就能發(fā)貨,在信息反饋給客戶上就會有些瑕疵。關(guān)注公眾號 逆鋒起筆,回復 pdf,下載你需要的各種學習資料。
關(guān)于支付單,雖然基本所有平臺都會通過合并支付的方式簡化支付環(huán)節(jié),但是不同的子訂單都是可以拿到不同的支付單號的,這樣就有利于售后和財務(wù)管理,對于跨境商品,還有報關(guān)的作用。
小結(jié)
拆單的系統(tǒng)比較復雜,要做的完全徹底,對大部分電商公司有很大的困難,這需要打通從訂單系統(tǒng)到WMS系統(tǒng)的許多環(huán)節(jié),所以需要在產(chǎn)品設(shè)計上進行取舍,根據(jù)平臺的具體需求來確定拆單需求的優(yōu)先級。
墻裂推薦
這是我看過關(guān)于微服務(wù)架構(gòu)最好的文章
從 VSCode 看大型 IDE 技術(shù)架構(gòu)
點個『在看』支持下?
