電商基本功: 電商運費計算方式
電商運費如何科學(xué)計算呢?通過文章來了解一下。
作為電商基礎(chǔ)中最關(guān)鍵的一環(huán),運費計算是基礎(chǔ)并且核心的設(shè)計,而且計算過程也比較復(fù)雜,容易考慮不周。
筆者分為三個問題分析該怎么計算運費:
- 問題一:各種商品混在一起時運費怎么歸類計算呢?
- 問題二:多個商品和單個商品運費是一個運費價格計算的嗎?
- 問題三:不同的多個商品選擇了不同的運費模版,怎樣才能合理計算運費保證商家和用戶雙方的利益呢?
問題一:各種商品混在一起時運費怎么歸類計算呢?
1)一般方法按照店鋪歸類的品類計算運費。
店鋪一般是以商品分類為導(dǎo)向的。比如淘寶店鋪的歸類。賣家具的店鋪一般就不會有賣衣服。因此賣家具的店鋪采用按體積計算運費,采用的是物流或者某些特別的快遞服務(wù)。賣衣服的店鋪一般按照重量計算運費,采用如四通一達的快遞服務(wù),模版選擇按重量計算。
當一次購買多件商品的時候,一個店鋪的商品自動歸類到一個訂單,如淘寶店鋪。
當然也可以按照自營與聯(lián)營的方式計算。普通的自營店鋪一起計算運費,聯(lián)營店鋪算是各個商家獨自的店鋪分別計算,如京東商城。
2)特殊品類按品類分別計算運費。
為什么上面第一點一直強調(diào)的普通店鋪。因為商品存在特殊性,比如生鮮水果水產(chǎn)冰凍食品,易碎物品對快遞及時性和冷鏈配置要求比較高,導(dǎo)致于普通無要求的商品的價格不一樣。另外店鋪在做活動時,特價商品會和其他普通商品可能存在不同價格的運費。
因此無論是京東還是淘寶都將生鮮水果和普通的商品劃分出來獨自成立一個店鋪或者說獨自計算運費。
比如京東的生鮮與普通商品一起購買時,未達到京東生鮮的包郵標準時需要同時支付生鮮的運費以及普通商品運費。雖然是合在一個訂單里面,實際是按照兩筆訂單計算運費。
京東訂單
天貓超市則是分開成2個店鋪生成2個訂單計算運費。
淘寶訂單
3)貴重商品計算運費方式。
一般貴重商品比如貴重的電器,金銀首飾等,運費相對于商品價格微乎其微,運費相對利潤比較少,大多數(shù)貴重商品的品類采用的是包郵方式。當然也可以采用保價方式。而一般金銀首飾更加貴重的商品考慮到安全性線上支付定金,線下自己提貨的方式居多。
問題二:多個商品和單個商品運費是一個運費價格計算的嗎?
商品雖然一般是按照店鋪為單位計算運費,但是由于每個商品還是有自己的特殊性,計算商品運費是按照每個商品自己的模版進行計算。另外商品運輸可能采用四通一達還是順豐或者其他小快遞公司也會導(dǎo)致運費價格不一致。
比如商品A 和B的運費模版為江浙滬運費5元,江浙滬以外地區(qū)10元。但是現(xiàn)在店鋪為了促銷做活動,商品A江浙滬包郵。則商品A需要設(shè)置成江浙滬運費0元,江浙滬以外地區(qū)10元的運費模版。
商品A用戶要求使用順豐快遞郵寄,則江浙滬運費為10元,江浙滬以外地區(qū)為22元。
那么,運費模版該怎么設(shè)計呢?
要考慮的有幾個步驟:
- 店鋪商家設(shè)置可以不同快遞或者不同活動的運費模版
- 店鋪商家設(shè)置不同區(qū)域的運費模版
- 店鋪商家給每個商品選擇相應(yīng)的運費模版或者用戶在確認訂單下單時可以自主選擇可選范圍其一的運費模版。
我們以經(jīng)常使用計重方式為例,在商家的店鋪后臺設(shè)置運費模版。
第一步:新建模版。
輸入模版名稱,比如順豐運費模版,用于商品選擇模版時進行區(qū)分。
默認運費是指除指定區(qū)域的運費以外地區(qū)使用的模版。
包郵則不用計算重量,無論該數(shù)據(jù)多少kg運費都為0元,選擇不包郵則需要設(shè)置首重和續(xù)重。
在運費計算里面,首重的kg數(shù)內(nèi)是一個指定的價格,續(xù)重則為超過首重以后的kg數(shù),增加的運費價格,一般快遞公司是按照每超過1kg計算增加運費。
新建運費模版
第二步:為每個區(qū)域設(shè)置相應(yīng)的運費價格。
按照普遍快遞公司收費標準,為指定區(qū)域設(shè)置運費設(shè)置到省級就足夠。以店鋪發(fā)貨點為始發(fā)地根據(jù)距離以及交通的便利情況置不同的區(qū)間價格。
以江浙滬為例,一般快遞公司分為第一區(qū)間(江浙滬) 第二區(qū)間(皖贛魯京津冀豫湘粵),第三區(qū)間其他 邊遠地區(qū)等價格。
選擇指定區(qū)域
根據(jù)店鋪需要,可以設(shè)置多個運費模版以用于其他活動或者其他快遞公司
多個運費模版
第三步:設(shè)置每個商品的運費模版。
首先,模版需要根據(jù)重量計算運費,則每個商品的屬性中需要輸入重量。
一般商品重量包括 凈重+ 包裝重量 = 毛重。
商品計算運費的重量使用的是毛重。
商品編輯的毛重需要輸入數(shù)字類型,用于在運費計算時作為統(tǒng)一單位計算。
其次為商品選擇一個指定的運費模版,或者如果希望用戶在下單時自己選擇每個商品的運費模版時,商家可以設(shè)置可選的運費模版以及設(shè)置默認的運費模版。
設(shè)置運費模版
保存好后就可以按照規(guī)則計算運費了。
問題三:不同的多個商品選擇了不同的運費模版,怎樣才能合理計算運費保證商家和用戶雙方的利益呢?
一個訂單只有一個商品時的計算運費方式比較簡單:
if(商品毛重>該模版首重)
該訂單運費 = 該模版首重價格+ceil(商品毛重-該模版首重) *該模版續(xù)重價格
else
該訂單運費 = 該運費模版首重價格。
當多個具有相同運費模版商品,同一個訂單默認同一個包裹發(fā)出,則不能分別計算獨自的首重和續(xù)重,應(yīng)該統(tǒng)一在一起計算運費,否則用戶則相當于使用了2個包裹。
問題來了,如果不同運費模版商品怎么計算運費呢?同一個包裹發(fā)出不同的運費模版時(可能某個商品包郵,也有可能某個商品江浙滬需要運費,某個商品江浙滬不要運費),也不能分別計算獨自的首重和續(xù)重,怎樣才能同時保證商家和用戶雙方的利益呢?
一般取舍方案是:
- 1)取最大首重價格的模版首重作為訂單首重價格和首重門檻,然后你分別計算商品獨自的續(xù)重價格。
- 2)當有最大首重價格相同,首重單位價格相同,續(xù)重價格不同的模版時,選取最小續(xù)重的模版作為訂單首重。
- 3)當有最大首重價格相同,單位價格不同時,取單位價格最大的模版作為訂單的首重。
- 4)包郵商品不參與運費計算
計算方式如下:
1.先計算Max首重價格商品的運費值
2.順序計算除去Max首重價格商品以外的商品毛重值
2.1 該商品毛重小于首重中剩余的重量,則不用計算運費,使用首重運費
2.2 該商品毛重大于首重中剩余的重量則多出來的重量則需要使用自增運費
(按照順序計算邏輯簡單也可以按照計算最優(yōu)值,看計算復(fù)雜程度)
偽代碼邏輯如下:
temp = 0;//temp首重中累計商品的毛重,最大值為首重
運費 = 0;if(Max首重價格商品毛重 > 首重) {
運費 = 首重運費 + (temp – 首重)* Max首重價格商品的增重價格 ;
temp = 首重;
} else {
運費 = 首重運費;
temp = max商品毛重;
}for(對其余有效商品遍歷) {
if( 該商品毛重 <= 首重 – temp ) {
//該商品毛重小于首重中剩余的重量,則不用計算運費,使用首重運費。
temp = temp + 該商品毛重;} else {
//該商品毛重大于首重中剩余的重量則多出來的重量則需要使用自增運費
運費 = 運費 + 該商品增重運費 *( 該商品毛重 – (首重 – temp));
temp = 首重;
}}
舉例說明:
模版A 首重3kg 5元,續(xù)重1kg 1元。
模版B 首重3kg 3元,續(xù)重1kg 2元。
模版C 首重2kg 5元,續(xù)重1kg 1元。
3個商品ABC 分別重 4kg,4kg,4kg,分別使用模版ABC,則首重則選擇的是模版C的首重 2kg5元。
多個商品模版計算運費先取最大首重(單位首重)價格和最小增重價格的商品來計算所有商品毛重的首重。
則購買3個商品各買一件時的運費即為:
5(C的首重)+ (4-2)*1(商品C續(xù)重)+ 4*2(商品B續(xù)重)+4*1(商品A續(xù)重) = 19元
Why?為什么不直接選取最貴的首重費用模版直接計算首重和續(xù)重呢?
首先首重作為商品重量總和的一個臺階,只要有包裹產(chǎn)生則該最貴的首重價格必然產(chǎn)生。因此采取最貴首重的模版。
其次其他模版的商品相當于搭載了最貴首重包裹的順風(fēng)車,將多余的重量塞在了最貴首重的包裹里面,獨立商品多出來的部分則獨立計算多余金額。
因此這種算法考慮了商家和用戶雙方的利益有一定的合理性。
基本的運費計算方法已經(jīng)介紹完成。當然還有重要的一點是:訂單中總運費需要計算以外,每個商品的單獨的運費需要在訂單屬性中保存下來,用于商品的退款計算等。另外,結(jié)合整體店鋪的活動運費分攤到每個商品的運費價格還有需要注意的地方。
本文由 @曦曦冉冉L 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自pixabay,基于CC0協(xié)議
學(xué)習(xí)了
你寫的真的很棒,我可以轉(zhuǎn)載到我的公眾號嗎?我會標明出處的??! ??
如果abc都是重2.1kg呢?
首重仍然是選擇C模板 5(C)+(2.1-2)*1(C) + 2.1*2(B) + 2.1*1(B) = 11.4
首重仍然是選擇C模板 5(C)+(2.1-2)*1(C) + 2.1*2(B) + 2.1*1(A) = 11.4
謝謝解答。不好意思,我的例子還是有問題。如果商品abc都是重0.8kg呢?
5(C首重)+0.8*2(B續(xù)重)+0.8*1(A續(xù)重) = 7.4
這樣不公平,如果實際這三樣商品差不多重量和體積,明明可以一個首重5元就搞定的,現(xiàn)在卻要多兩個續(xù)重的費用
不好意思,時間有點久了,剛我又看了下原來的公式,前面的回答我都寫錯了。
【該商品毛重小于首重中剩余的重量,則不用計算運費,使用首重運費】。
5(C首重)+(0.8(B重量)-(2(C首重標準)-0.8(C重量)-0.8(A重量)))*2(B續(xù)重) = 5.8
0.8(B重量)-(2(C首重標準)-0.8(C重量)-0.8(A重量) 是B在首重中的剩余重量。
其中 A和B的計算可以根據(jù)順序計算,也可以按金額比最小順序排序計算,看計算復(fù)雜度。
B商品剩余重量不取整了嗎
5+ceil(0.4)*2=7
最后的舉例讓人最迷茫
模版A 首重3kg 5元,續(xù)重1kg 1元。
模版B 首重3kg 3元,續(xù)重1kg 2元。
模版C 首重2kg 5元,續(xù)重1kg 1元。
3個商品ABC 分別重 4kg,4kg,4kg
僅僅這個示例,并沒有照顧買方啊。
若按筆者思路,總運費: 5(C的首重)+ (4-2)*1(商品C續(xù)重)+ 4*2(商品B續(xù)重)+4*1(商品A續(xù)重) = 19元
A,B,C單獨發(fā),總運費: A費用+B費用+C費用= (5+1)+(3+2)+(5+2*1)=18元
后者還便宜些了
這個示例可能數(shù)據(jù)舉例不夠好,當然可以通過各種背包方式去找最優(yōu)解,看開發(fā)成本。
背包?不是產(chǎn)品嗎?怎么還知道算法?哈哈
如果,是一個店鋪里面,一個訂單的話,里面包含了 不同類型的模版; 如有一個訂單,里面有A、B、C三個商品,A商品是按件的模版;B商品是按體積的模版;C是按重量的模版;這個運費怎么計算啊,大神;以及哪家電商具體怎么解決的
不同的商品的模板應(yīng)該分單計算運費。
不錯,寫得挺詳細,期待后續(xù)文章
謝謝關(guān)注。
請問關(guān)于訂單的運費包郵活動和優(yōu)惠券之間該如何處理?是先不考慮優(yōu)惠券(因為不知道用戶是否使用),根據(jù)訂單的商品價格判斷是否參與包郵,即使使用優(yōu)惠券也不影響包郵活動;方案二:根據(jù)用戶最終應(yīng)付金額進行判斷是否包郵,這就會出現(xiàn)多種情況。
比如滿50包郵,購買的60元的商品,但有一張20元的優(yōu)惠券
您好,我覺得包郵活動和優(yōu)惠券的應(yīng)該屬于 促銷活動的范疇。促銷活動的是否采用包郵還是優(yōu)惠券應(yīng)該根據(jù)這兩種促銷活動的等級來確認。
比如,包郵活動是店鋪級別的,優(yōu)惠券是平臺級別的,則兩個可以同時享有。這個可以根據(jù)您平臺定的優(yōu)惠策略的利潤確定。
如果兩個都是店鋪級別的,并且活動針對的都是同一個商品,則需要兩個優(yōu)惠活動需要互斥,只能推薦選擇最好的那個優(yōu)惠活動。
您還可以參考一下我的另外一篇文章:http://m.codemsi.com/pd/944899.html
非常感謝,謝謝大神的指點 ? ,我再琢磨一下哈。有問題再向您請教!
我也做產(chǎn)品不久,不是大神 ?? ,一起共同進步。
或者是5(首重)+ 4*1(A商品續(xù)重)+ (4-2)*2(B商品續(xù)重)+ 4*1 (C商品續(xù)重)= 17元 ?
實在很抱歉,確實 這個數(shù)據(jù)寫錯了。當時寫的時候想成了沒有超過 首重去了。
—這句話是正確的————————————————
其次其他模版的商品相當于搭載了最貴首重包裹的順風(fēng)車,將多余的重量塞在了最貴首重的包裹里面,獨立商品多出來的部分則獨立計算多余金額。
——————————————————————–
計算公式是
5(首重)+ (4-2)*1(商品A續(xù)重)+ 4*2(商品B續(xù)重)+4*1(商品C續(xù)重) = 19元
筆誤: 5(C的首重)+ (4-2)*1(商品C續(xù)重)+ 4*2(商品B續(xù)重)+4*1(商品A續(xù)重) = 19元
終于更正了…前面這個公式看得我頭很大…
哈哈。很抱歉。
突然想到一個問題,聽聽你的意見
當運費模板是按件數(shù)計價時,會不會也出現(xiàn)這種情況?相同的算法嗎
我覺得按件數(shù)是可以使用同樣的算法。件數(shù)計算更為簡單,不用給每次的SKU單品設(shè)置毛重。
不過很多輕薄的商品比如衣服等一般是按件數(shù)計算。
按件數(shù)算,淘寶的方式也是和按重量一樣設(shè)置,可以選擇首次件數(shù),遞增件數(shù)。
首次件超過的情況如上面轉(zhuǎn)換成件數(shù)
4件 A商品 首次件3件5元,續(xù)1件1元
4件 B商品 首次件3件3元,續(xù)1件2元
4件 C商品 首次件2件5元,續(xù)1件1元
5(C) + 2×1(C) + 4×2(B)+ 4×1(A) = 19元
首次件不超過情況
4件 A商品 首次件3件5元,續(xù)1件1元
4件 B商品 首次件3件3元,續(xù)1件2元
1件 C商品 首次件2件5元,續(xù)1件1元
5(C) + 4×2(B)+ 3×1(A,按順序A有一件被計算到首次件) = 19元
按體積計算,淘寶也是按照重量,件數(shù)設(shè)置。不過就我知道的物流公司,
體積計算方式是直接根據(jù)所有物件的體積相加,然后乘以每立方米的運費值得出。
(長度的長寬高大小是按照最長的那端算)。
上面公式也可以適用,不過所有按體積計算的模板公式都相同,得出的值也相同。
每立方米 5元,續(xù)1立方米 5元。
如有問題,歡迎繼續(xù)討論。
我覺得按件數(shù)是可以使用同樣的算法。件數(shù)計算更為簡單,不用給每次的SKU單品設(shè)置毛重。
不過很多輕薄的商品比如衣服等一般是按件數(shù)計算。
按件數(shù)算,淘寶的方式也是和按重量一樣設(shè)置,可以選擇首次件數(shù),遞增件數(shù)。
首次件超過的情況如上面轉(zhuǎn)換成件數(shù)
4件 A商品 首次件3件5元,續(xù)1件1元
4件 B商品 首次件3件3元,續(xù)1件2元
4件 C商品 首次件2件5元,續(xù)1件1元
5(C) + 2×1(C) + 4×2(B)+ 4×1(A) = 19元
首次件不超過情況
4件 A商品 首次件3件5元,續(xù)1件1元
4件 B商品 首次件3件3元,續(xù)1件2元
1件 C商品 首次件2件5元,續(xù)1件1元
5(C) + 4×2(B)+ 3×1(A,按順序A有一件被計算到首次件) = 19元
按體積計算,淘寶也是按照重量,件數(shù)設(shè)置。不過就我知道的物流公司,
體積計算方式是直接根據(jù)所有物件的體積相加,然后乘以每立方米的運費值得出。
(長度的長寬高大小是按照最長的那端算)。
上面公式也可以適用,不過所有按體積計算的模板公式都相同,得出的值也相同。
每立方米 5元,續(xù)1立方米 5元。
如有問題,歡迎繼續(xù)討論。
筆誤: ?? 5(C) + 4×2(B)+ 3×1(A,按順序A有一件被計算到首次件) = 16元
?? 多謝解答…筆誤小公主
不過我發(fā)現(xiàn)一種情況,當存在續(xù)(重/件)費用比首費用高的情況時,這種算法比各位首續(xù)分開算的方法產(chǎn)生的運費更多
是否 行業(yè)內(nèi)會存在續(xù)費比首費多的情況呢
如果不一定按順序,把一個B算到C的首次件中,那么…
5(C) + 3*2(B,B一件在C首次件中)+ 4*1(A) = 15
??
人人不能自己修改或刪除自己的答案,頭疼。 ??
1)續(xù)費如果比首費高的話,也沒辦法,還是需要按照首費+續(xù)費的公式計算。
2)可以不一定是順著的順序,也可以是按照最優(yōu)的順序。比如再按照上面繼續(xù)遞歸方式計算最貴的每件/每公斤 首重來選出商品也是可以的。
我覺得這個計算也要考慮到計算復(fù)雜度。畢竟可能最終相差不了多少錢,而且,可能商品的模板也不會有這么多。
多謝解答,我又看了一些資料,已經(jīng)差不多弄懂運費邏輯了,再次謝謝 ??
你看到的邏輯也可以分享出來,大家一起學(xué)習(xí)一下。
退貨可能涉及到退運費,所以需要將運費分攤到各個商品上。上述訂單運費是19元,那A B C三個商品的運費分別是7元、8元、4元嗎?求作者指教
還有個問題,如果A B C三個商品的重量分別是0.2、0.3、0.5,加起來都不足2kg,那運費就是首重費5元,那三個商品的運費分別是多少?是按重量分攤嗎?
按照這種計算方式,選擇費用最大的C方案的首重,應(yīng)該只對應(yīng)2千克的貨物,但是ABC三個商品在計算續(xù)重的時候卻各自都減掉了2kg。也就是C方案的2kg的首重,最后卻對應(yīng)了6kg的商品。
應(yīng)該是5(首重)+ 4*1(A商品續(xù)重)+ 4*2(B商品續(xù)重)+ (4-2)*1 (C商品續(xù)重)= 19元 吧
最近也在懟商城的物流費用問題,感覺頭好大 o(╥﹏╥)o
我加了一個偽代碼,你可以理解一下。原來的公式刪除了。