訂單中心:訂單拆分的設(shè)計思路
編輯導(dǎo)語:訂單拆分對于訂單中心來說是很重要的,這個拆分并不是簡簡單單的對商品進(jìn)行拆分,還要同時將優(yōu)惠也進(jìn)行拆分。訂單拆分不需要結(jié)合自身的業(yè)務(wù)場景,不同的業(yè)務(wù)情況,拆分的條件與拆分的邏輯都會有所不用,本文作者從訂單拆分與優(yōu)惠信息兩方面為我們分析了拆分思路。
訂單拆分環(huán)節(jié)是整個訂單中心不可或缺的一部分,因?yàn)橛辛擞唵尾鸱郑侥芨玫膶ψ陨淼臉I(yè)務(wù)場景進(jìn)行拓展。
在很多時候我們可以看到,將多個商品一起放入購物車下單結(jié)算的時,最終看到的并非一個訂單,而是多個訂單。并且拆分的邏輯不僅僅只是訂單,同時也會涉及到優(yōu)惠信息的拆分,將拆分好的優(yōu)惠信息分?jǐn)偟礁鱾€訂單上。
筆者將本文分成兩部分給大家詳細(xì)講解訂單拆分和優(yōu)惠信息拆分的思路。
一、訂單拆分場景
1. 按商家拆分
眾所周知,目前有很多電商平臺供商家入駐,用戶下單時普遍存在跨店鋪結(jié)算的情況,所以要將訂單內(nèi)的信息進(jìn)行拆分。同時將商品信息與優(yōu)惠信息分?jǐn)偟礁髯缘赇伒挠唵紊?,由此形成了首層的拆分?/p>
例如:在下單時,直接將訂單內(nèi)的商品按照不同的商家拆分成多個父訂單,然后根據(jù)不同的配貨倉庫拆分成不同的子訂單,即一個倉庫對應(yīng)一個子訂單,但通常情況下用戶是感知不到拆分的,看到的仍然只有一個父訂單。
作為新零售平臺,我們可將商家可視為門店,那門店也就是前置倉,所以從這個角度上看,也可以理解為倉庫的拆分,若線上網(wǎng)店與線下門店是一對一的關(guān)系,可以不考慮該層次的拆分。
同時在連鎖模式下,根據(jù)用戶收貨地址匹配就近門店,所以門店自然也不會涉及到拆單,若該門店無庫存的情況下,商品為售罄狀態(tài)。
2. 按倉庫拆分
電商平臺商家存在多倉庫的情況(例淘寶),且自營平臺不同的商品存放在不同的自建倉庫(例京東)。
用戶下單時訂單內(nèi)的商品存放于不同的倉庫,那就需要針對不同的倉庫進(jìn)行拆分,將拆分完的子訂單匹配至各自的倉庫當(dāng)中,最終根據(jù)商品的貨物數(shù)量進(jìn)行出庫備貨。
每個子訂單對應(yīng)一個運(yùn)單號,且每個子訂單下每個商品SKU對應(yīng)1個發(fā)貨單號,發(fā)貨單號與子訂單做關(guān)聯(lián)。最終即使做了訂單改派處理,也能夠?qū)υ撚唵芜M(jìn)行追蹤跟查詢,同時也方便日后財務(wù)做對賬。
若已經(jīng)形成訂單的情況下,對訂單內(nèi)的部分商品進(jìn)行改派。
例如:將倉1的發(fā)貨單,改派至倉2當(dāng)中,同時會帶上對應(yīng)的子訂單。若不存在拆單的情況,則只有一個父訂單。
訂單內(nèi)每個商品SKU分配獨(dú)立的發(fā)貨單號,每個發(fā)貨單號對應(yīng)同一個父訂單(父訂單與子訂單為:一對多的關(guān)系;子訂單與發(fā)貨單為:一對多的關(guān)系,父訂單與發(fā)貨單同樣為:一對多的關(guān)系)
3. 按訂單類型拆分
訂單的類型由商品的類型進(jìn)行歸屬分配,下單之后根據(jù)商品類型拆分成不同的子訂單類型。
例如:商品內(nèi)存在跨境商品、普通商品、分銷商品等,根據(jù)不同的商品類型進(jìn)行自動拆分。
特別是跨境商品,需要調(diào)用海關(guān)API,推到海關(guān)進(jìn)行報關(guān)處理,或?qū)⒖缇成唐穯为?dú)拿出來與其他商品進(jìn)行分單結(jié)算。
另一方面:由于跨境商品訂單的限制,每個用戶每年成交金額不可超過2W,且單筆訂單消費(fèi)不可超過2千;若超過2千則將該訂單進(jìn)行自動拆分處理,分單推送報關(guān)。
4. 按商品類目拆分
不同的商品有不同的類目,根據(jù)商品的類目進(jìn)行分單處理,由于部分商品類目的特殊性。
例如:生鮮水果冷鏈?zhǔn)称芬约捌渌姿槲锲穼爝f保護(hù)性、及時性等配置要求較高的,需要單獨(dú)進(jìn)行包裝發(fā)貨,若訂單內(nèi)存在該類目的商品,則需要將訂單進(jìn)行拆分處理。
若訂單內(nèi)包含預(yù)售的商品,本身這類商品的性質(zhì)就有別與其他商品,所以用戶在下單之前就已經(jīng)進(jìn)行區(qū)分。自然這類商品在產(chǎn)品設(shè)計上就不會增加購物車這個功能,所以就不存在合并下單的情況。
若存在與其他商品一起下單的情況,則需要將普通商品和預(yù)售商品拆分成子訂單處理,將預(yù)售商品的訂單到貨后再發(fā)貨。
5. 按物流拆分
物流拆分可以說是整個拆分環(huán)節(jié)最末尾的拆分,由于訂單內(nèi)部分商品的重量或體積已經(jīng)超過了單個包裹發(fā)貨的范圍。
同時從成本的角度上考慮,一個包裹的發(fā)貨成本有可能會高于多個包裹的發(fā)貨成本,因此會將訂單拆分成多個包裹發(fā)貨。那么在這種情況下,可不生成子訂單,以發(fā)貨單號來進(jìn)行區(qū)分即可。
6. 什么時候做拆單處理
正常情況下一般分為 “付款前拆單” 和 “付款后拆單”,用戶下單之后沒有立即支付,但已然形成待支付訂單。
每個父訂單下形成多個子訂單,不同的子訂單內(nèi)分別包含多個商品SKU,每個子訂單都會存在物流查詢?nèi)肟冢蝗糇佑唵蔚纳唐贩侄鄠€包裹發(fā)貨,那么物流查詢?nèi)肟诰蜁譃槎鄠€。
另一種情況為:付款之后拆分成不同的子訂單,每個子訂單對應(yīng)多個運(yùn)單號,有些平臺為了方便財務(wù)做對賬,會在付款之后才進(jìn)行拆單處理。
二、訂單的拆分邏輯判斷
既然有不同的拆分場景,那一定就有拆分的先后順序,以下的拆分邏輯,根據(jù)自身實(shí)際業(yè)務(wù)場景采用即可。
通常情況下,涉及到2-3個拆分邏輯是會比較多的,具體拆單順序如下所示:
- 商家拆單:SKU1、SKU2、SKU3、SKU4(匹配商家1)、SKU5、SKU6、SKU7、SKU8、SKU9(匹配商家2);
- 倉庫拆單:SKU1、SKU2(匹配倉庫2)、SKU3、SKU4(匹配倉庫1)、SKU5、SKU6、SKU7、SKU8(匹配倉庫3)、SKU9(匹配倉庫4);
- 類型拆單:SKU5、SKU6、SKU7(匹配普通商品)、SKU8(匹配跨境商品,若不繼續(xù)往下拆,形成子訂單,并填寫運(yùn)單號,并形成發(fā)貨單號,打包發(fā)貨)、其他SKU先在此省略;
- 類目拆單:SKU5、SKU6(匹配正常類目)、SKU7(匹配特殊類目,例如生鮮冷鏈商品等,形成子訂單,并填寫運(yùn)單號,并形成發(fā)貨單號,打包發(fā)貨);
- 分開發(fā)貨:SKU5、SKU6歸屬于同一個子訂單,但會分為不同的運(yùn)單號和發(fā)貨單號,最終打包發(fā)貨。
三、優(yōu)惠信息拆分
訂單被拆分之后,拆分的不僅僅只是商品,還有訂單內(nèi)的金額信息、優(yōu)惠信息等,目的是在用戶產(chǎn)生售后問題時所造成退款退貨,需要將優(yōu)惠信息進(jìn)行合理的分配返還。
因?yàn)橛唵未嬖谕瞬糠值纳唐?,不可能將訂單?nèi)所有的優(yōu)惠信息返還給用戶,所以需要將訂單內(nèi)的優(yōu)惠信息合理的分?jǐn)偟阶佑唵紊希瑫r需要將訂單內(nèi)每一個優(yōu)惠信息字段進(jìn)行區(qū)分。
當(dāng)我們在進(jìn)行優(yōu)惠分?jǐn)倳r,同時應(yīng)該按照商品的金額計算出比例進(jìn)行分?jǐn)?,以平衡商家與用戶之間的利益,所以我們要遵循一定的分?jǐn)傇瓌t進(jìn)行。
優(yōu)惠信息分?jǐn)傆嬎愎剑?/p>
- 單個商品SKU總金額:單品金額*購買數(shù)量;
- 促銷信息:滿減活動;
- 抵扣信息:積分、虛擬金幣;
- 優(yōu)惠券信息:優(yōu)惠券抵扣;
- 運(yùn)費(fèi)金額:是否包郵;
- 實(shí)付金額=商品總金額+運(yùn)費(fèi)金額-總優(yōu)惠信息;
- 子訂單分?jǐn)偨痤~=單個商品SKU總金額/父訂單總金額*優(yōu)惠總金額。
舉例說明優(yōu)惠信息的分?jǐn)傆嬎悖ㄐ鑼⒋黉N信息與優(yōu)惠券信息單獨(dú)分開計算),訂單拆分成4個子訂單,每個子訂單對應(yīng)1個SKU:
1. SKU 1(子訂單A)的分?jǐn)偨痤~計算
先算出單品優(yōu)惠:SKU 1 單品優(yōu)惠(-5);
SKU 1商品總金額:30*2=60;
滿減分?jǐn)們?yōu)惠:(60-5)/(55+80+100+60)*20=3.72;
優(yōu)惠券分?jǐn)們?yōu)惠:(60-5)/(55+80+100+60)*10=1.86;
子訂單實(shí)付款:60-5-3.72-1.86=49.42。
2. SKU 2(子訂單B)的分?jǐn)偨痤~計算
SKU 2商品總金額:40*2=80;
滿減分?jǐn)們?yōu)惠:80/(55+80+100+60)*20=5.42;
優(yōu)惠券分?jǐn)們?yōu)惠:80/(55+80+100+60)*10=2.71;
子訂單實(shí)付款:80-5.42-2.71=71.87。
3. SKU 3(子訂單C)的分?jǐn)偨痤~計算
SKU 3商品總金額:50*2=100;
滿減分?jǐn)們?yōu)惠:100/(55+80+100+60)*20=6.77;
優(yōu)惠券分?jǐn)們?yōu)惠:100/(55+80+100+60)*10=3.38;
子訂單實(shí)付款:100-6.77-3.38=89.85。
4. SKU 4(子訂單D)的分?jǐn)偨痤~計算
SKU 4商品總金額:60;
滿減分?jǐn)們?yōu)惠:60/(55+80+100+60)*20=4.06;
優(yōu)惠券分?jǐn)們?yōu)惠:60/(55+80+100+60)*10=2.03;
子訂單實(shí)付款:60-4.06-2.03=53.91。
最終分?jǐn)偟矫總€子訂單上的優(yōu)惠金額,因只截取后兩位小數(shù),所以會存在些許誤差。將只針對SKU 1的滿減單獨(dú)進(jìn)行計算,然后再將每個子訂單的滿減優(yōu)惠與優(yōu)惠券分?jǐn)傆嬎恪?/p>
但如果用戶涉及的訂單金額資金過大,還是需要通過人工來處理分?jǐn)傂畔ⅲ?/p>
- 若訂單內(nèi)只退部分商品,那優(yōu)惠券是不會返還的;
- 若退整筆訂單,那優(yōu)惠券返還至用戶賬號當(dāng)中,同時使用的虛擬金幣和積分,處理的方式與滿減和優(yōu)惠券的方式相同;
- 若每個SKU有多個數(shù)量,如購買數(shù)量為2,但只退1,那最終以分?jǐn)偟竭@個SKU上的分?jǐn)偨痤~,再進(jìn)行均攤。
總結(jié):
本篇文章主要講解了,訂單拆分與優(yōu)惠信息的拆分思路。
筆者描述的訂單拆分不僅僅只是以上這幾種,需要結(jié)合自身的業(yè)務(wù)場景,不同的業(yè)務(wù)情況,拆分的條件與拆分的邏輯都會有所不用。
同時優(yōu)惠的分?jǐn)傆嬎惴绞揭灿卸喾N,只要能將最終的分?jǐn)偨痤~合理的分?jǐn)偟矫總€子訂單上即可,當(dāng)然計算方式越簡單越好。
本文由 @ykun 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自 Pexels,基于 CC0 協(xié)議
很亂
按商家拆分的圖1,比如我選了2個不同店鋪的商品加入購物車,一起提交訂單,支付時是按父單來支付的,然后支付成功后按商家的維度拆分,我們商品詳情頁看到的不就是子單了嗎?
支付是按照父訂單來支付的,支付成功之后,按照商家拆分成子訂單。 此時用戶在訂單列表里看到的應(yīng)該是按商家拆分出的各子訂單。(當(dāng)然如果后續(xù)也可按照需要 繼續(xù)往下拆分…)
一個發(fā)貨單不是就是只有一個運(yùn)單號嗎?子訂單可以對應(yīng)多個發(fā)貨單,不太明白作者圖2里的內(nèi)容,子單怎么和運(yùn)單號放在一個框里。希望作者可以回答一個,感謝。
將只針對SKU 1的滿減單獨(dú)進(jìn)行計算,然后再將每個子訂單的滿減優(yōu)惠與優(yōu)惠券分?jǐn)傆嬎?。這句話有點(diǎn)不理解?現(xiàn)在的算法不都是按照商品價格的比例進(jìn)行分?jǐn)偟膯幔?/p>
是不是將一個訂單根據(jù)sku拆分成多個子訂單,然后對子訂單進(jìn)行改派發(fā)運(yùn)會好一些?
文中說改派是對子訂單下的商品Sku對應(yīng)的發(fā)貨單改派,會帶上子訂單號,生成新的運(yùn)單號,那就會出現(xiàn)子訂單號對應(yīng)兩個運(yùn)單號的情況下了,是這樣嗎?
想請教一下,這種情況該如何處理:sku1單品價格1599,sku2單品價格499,店鋪滿1999-1000活動,那么下單后sku2申請退款,這種情況怎么處理?將店鋪活動改成平臺活動又該怎么處理?
建議按減免比例進(jìn)行退款
按實(shí)付款退款,SKU2實(shí)付款為:499-499/(1599+499)*999=261
信息補(bǔ)充說明
sku1 【單品金額(30),購買數(shù)量 (2),sku總金額(60),單品優(yōu)惠金額(滿10減5)】;
sku2【單品金額(40),購買數(shù)量 (2),sku總金額(80)】;
sku3【單品金額(50),購買數(shù)量(2),sku總金額(100)】;
sku4【單品金額(60),購買數(shù)量(1),sku總金額(60)】;
全品促銷:滿150減20,優(yōu)惠券:滿120減10,所有優(yōu)惠信息可疊加使用;