什么是訂單拆分
用戶提交的訂單在物理上并不是一個不可拆分的單元,也即:它不是一個顆粒度最小的實體,可以進行多種形式的分解,具體如何分解根據不同的業務場景,可以進行不同形式的拆分。
為什么要訂單拆分
之所以要訂單拆分,一般會有以下幾個原因:
1. 倉庫原因
一些大型電商公司(京東、考拉等),都有自建倉庫,商品會根據以往出貨量數據在各個不同的倉庫進行備貨,用戶的訂單如果包含多個倉庫的商品,那么就必須對不同的倉庫商品進行拆分。
2. 店鋪原因
一些電商平臺(天貓、淘寶、拼多多等),有很多入駐的商家,用戶的訂單跨店鋪結算的情況非常普遍,那么這時候也需要對訂單進行拆分,本質上這種情況和倉庫有類似之處,每個入駐的商家可以看做一個倉庫。
3. 跨境商品原因
對于跨境商品,由于需要 訂單、支付單核運單 三單對碰,而且每筆訂單不能超過2000元,年度不能2萬元,如果用戶單筆訂單金額超過2000元,則必須對訂單進行拆分,拆分的子訂單每筆不能超過2000元,且分別每筆子訂單都有獨立的的訂單號和物流單號,確保正常通關。
4. 物流原因
不同物流公司對單個包裹的重量或體積都有特殊要求,例如有些物流公司(郵政小包)規定單個包裹不能超過20kg,并且還存在一種情況:一個10kg的包裹有可能比兩個5kg的包裹收費更高,基于物流成本考慮一般也會將一個訂單拆分成兩個,例如申通:10罐啤酒寄到遼寧價格為24,同樣地點5瓶的價格是6塊(與申通的簽約價格不是市場價)。
5. 商品品類
某些商品品類需要特殊處理,例如:易碎品 需要單獨發貨;大件商品(兒童座椅、冰箱、洗衣機、電視等)需要單獨發貨;如果一個訂單里面包含這些商品,一般也需要對訂單進行拆分。
什么時候拆分訂單
訂單拆分時機:下單之后付款之前 和 支付之后
這兩者的區別:如果在下單之后支付之前進行拆分訂單,用戶提交訂單后,如果沒有立即付款而是返回訂單列表,就可以看到訂單被拆分成若干個子訂單,分別包含不同的商品。此時,每筆子訂單有都會有獨立的物流查詢入口,如果父訂單包含了運費和優惠金額,需要將優惠和運費分攤到每筆子訂單上去(最好需要分攤到每件正價商品,方便后續售后退款處理,取決于售后是整單退還是單件商品退);
在支付后進行拆分訂單,一般是為了方便進行財務結算,例如淘寶平臺預收款父訂單金額,用戶確認收貨某家店鋪商品后,平臺將對應店鋪貨款轉給店家,這時候平臺需要在用戶支付后根據訂單所跨的店鋪進行拆分,并把用戶支付的金額分攤到每個店鋪,用戶端一般感知不到訂單被拆分,看到的訂單仍然是一個訂單(父訂單)。
1. 下單之后付款之前拆分多個子訂單
常見于以下幾種情況:
跨境商品(以上第三種情況):由于跨境商品需要三單(訂單、支付單和運單)對碰才能夠清關,如果在支付后再進行拆分訂單,那支付單號只有一個,如果訂單由于某種原因必須拆分(參考上述五種情況)那么,這筆訂單將有多個運單號,導致不能進行三單對碰,無法完成清關。所以,基于這種原因,對于跨境商品而言,一般都采用下單之后,支付之前進行拆單。
代表網站:環球捕手(以獨立訂單存在父訂單內,訂單列表仍然展示父訂單)
2. 支付之后拆分多個子訂單訂單
跨倉庫商品(以上第一種情況):由于涉及多個倉庫,需要分不同包裹進行發貨,為了方便用戶分別查詢每個包裹的物流狀態,一般都需要在訂單支付完成后根據不同的倉庫拆分成不同的訂單,此處訂單需要根據包裹單位進行拆分。每個訂單對應一個物流單號。至于訂單是根據說明規則進行拆分的,涉及調度系統的規則,一般會根據用戶收貨地址就近選擇倉庫,動態拆單。
代表網站:京東(以獨立訂單存在所有訂單列表內,表現為沒有父訂單)
3. 支付之后拆分多個子訂單訂單
跨倉庫商品(以上第一種情況):由于涉及多個倉庫,需要分不同包裹進行發貨,為了方便用戶分別查詢每個包裹的物流狀態,一般都需要在訂單支付完成后根據不同的倉庫拆分成不同的訂單,此處訂單需要根據包裹單位進行拆分。每個訂單對應一個物流單號。至于訂單是根據說明規則進行拆分的,涉及調度系統的規則,一般會根據用戶收貨地址就近選擇倉庫,動態拆單。
代表網站:有贊(保持訂單整體樣式不變,訂單中不同子訂單以包裹形式按tab頁分開展示)
如何拆分訂單
在我們知道為什么需要拆分之后,我們就可以針對性的設計將訂單進行拆分了
例如:SKU A 和 SKU B 分屬同一倉庫,SKUB 是特殊品類商品,2個 SKU C 重量超過物流限制,且和SKU A、SKU B不在同一個倉庫
那么如果一個訂單同時買了1個SKU A 和 SKU B ,2個SKU C ,按照上述流程拆單如下:
*注:這里面沒有說明具體的拆分邏輯。例如:下面只講了物流限制需要拆單,但是沒有說明具體是如何拆單的:是超過20kg 拆單,還是拿訂單所有 SKU 的重量/體積 套快遞費用公式,綜合同一SKU在一個包裹、保證拆分后的快遞費用盡量低于合并發貨的費用等因素拆分一個最優配比,這些需要根據具體業務需求和快遞公司的物流計算公式來綜合考慮,再往下講老板就要不高興了 。
訂單金額拆分
父訂單如果被拆分,那么跟隨訂單一起變化的不僅僅只有商品和商品數量,訂單的金額也會跟隨變化,同時為了方便解決后續售后問題,必須對拆分后的訂單金額進行合理拆分,我們先看下訂單金額組成:
本圖展示了一筆訂單的金額組成,它由正值和負值兩部分組成
正值:商品金額、運費
負值:促銷優惠金額、積分抵扣、優惠券優惠、后臺改價等
這里優惠金額涉及:改SKU的價格,滿減、滿折,優惠券,優惠碼等等金額。后臺需要標記每一個金額扣減時,對應的字段,方便統計查詢。
訂單金額計算流程:
1. 先計算商品金額(即:改商品價格)
2. 促銷后商品小計金額(即:滿減、滿折、滿贈,優惠券)
3. 促銷后訂單金額(即:滿減、滿折、滿贈)
4. 后續針對訂單的優惠券、優惠碼
5. 金額累計疊加后,再判斷是否包郵,計算運費
6. 積分抵扣訂單金額
7. 其他金額抵扣,如:后臺人工修改價格(需要使用獨立字段記錄,不能直接在原訂單金額上直接修改)
訂單拆分后金額分布:
訂單涉及跨店鋪拆分的情況,一般建議商品包郵上架避免訂單分拆后單獨計算運費,這對用戶來講難以接受(一筆訂單需要支付多筆運費),商品包郵上架后同時免去郵費分攤的問題
舉一個例子:
1. 針對指定商品的滿減活動,需要將促銷后的金額來分攤
例如 一筆訂單 如下:
SKUA? 2件? 共25 元? 單品參加? 滿20減5? 促銷
SKUB? 2件? 共60 元? 無促銷
SKUC? 1件? 共20 元? 無促銷
全場促銷活動:滿100減10
使用了一張優惠券: 滿80減10
包郵
這筆訂單促銷后,用戶實際需要支付(實付款)為:105-5-10-10=80 元
假如我門把它拆分成三個子訂單,1、2、3 分別對應三種SKU,各個子訂單的金額應該如何分布?這里面 就涉及? 優惠金額 分攤的問題了
對于子訂單1(SKU A)
商品總價:25元
促銷優惠:5元
促銷分攤優惠:(25-5)/(20+60+20)*10=2 元
優惠券分攤優惠:(25-5)/(20+60+20)*10=2 元
訂單實付款:25-5-2-2=16 元
對于子訂單2(SKU B)
商品總價:60 元
促銷分攤優惠:60/(20+60+20)*10=6 元
優惠券分攤優惠:60/(20+60+20)*10=6 元
訂單實付款:60-6-6=48 元
對于子訂單3(SKU C)
商品總價:20 元
促銷分攤優惠:20/(20+60+20)*10=2 元
優惠券分攤優惠:20/(20+60+20)*10=2 元
訂單實付款:20-2-2=16 元
拆分后訂單售后如何處理
如果執行部分訂單退款時,就必須根據每筆子訂單的實付款進行退款。
如果執行售后退貨退款時,也必須根據子訂單的實付款進行退款處理。
如果涉及積分抵扣的情況,也一樣根據上述公式,把積分抵扣的金額分攤的每筆子訂單上去,不過在執行退款時,需要將對應金額的等比例積分返還用戶
執行部分退款,因為一般沒有指定金額的優惠券(優惠券一般不支持部分退),所以執行部分退款時,優惠券不退
如果全部退款,可以考慮退回優惠券,具體情況視業務需求而定
*注:上述分攤規則也只是一個折中的方案,涉及跨店鋪的情況時,由于每種商品的毛利率都不同,按照商品金額進行比例分攤,可能導致部分店鋪虧損
例如:肥皂毛利率10%,杯子毛利率50%,由于優惠時根據商品金額等比例分攤,有可能導致肥皂實際上是被虧本的。此問題目前并沒有特別好的解決方案。