購物平台配送公式說明,所有問題都可以解決

1970-01-01 08:00:00 john

配送公式說明

公式表達式中

商品總重量用字母“w”表示,

商品總金額用字母“p”表示  

配送公式表達式字母含義、字串含義

公式表達式中符號含義:  
+加號  
-減號  
*乘號
/除號
( )普通的優先計算符號
[ ]:  
當[ ]中的數值>0時整體值向上取整數,如[7+2.2]=10 
當[ ]中的數值=0時整體值取0,如[0]=0 
當[ ]中的數值<0時整體值取0,如[0]=0 
多用於倍數
{ }:  
當{ }中的數值>0時,整體值取1,如{23565}=1、{0.00001}=1 
當{ }中的數值=0時,整體值取0.5,如{0}=0.5 
當{ }中的數值<0時,整體值取0,如{-2255}=0,{-0.002}=0 
多用於狀態值

的基本單位是克,設置公式時要注意。 
特別是[]、{}中數值在0這個臨界點時的值是非常關鍵的,只有這裡完全理解了,才會看懂公式的含義,才能寫新公式

以重量為計算標準的配送公式

例如:首重1公斤是15元,續重每增加0.5公斤,加5元
分析:因為要考慮到貨物總重量會少於首重,所以首重要單獨考慮  
續重時考慮商品總重量減去首重後,是續重標準的倍數,是幾倍就用倍數乘以續重的標準  
兩者的和即是總的配送費用。 
結合本例,(w-1000)/500即為商品重量去除首重後對續重的倍數,因此結果不一定為整數,故用[(w-1000)/500]來向上取整

兩者結合起來,總的公式即為:15+[(w-1000)/500]*5 
當然,目前這樣簡單的功能已經可以在後台通過直接設置單位與數值來實現。

再例如:某種配送方式,要求如下:  
2公斤以下的包裹按照:首重500克?算10元,每續500克按3元計算;  
大於等於2公斤,小於5公斤的包裹按照:每1公斤60元;(如重5公斤=60×5元=300元)  
大於等於5公斤,小於10公斤的包裹按照:每1公斤5元計算;(如重10公斤=5×10元=50元)  
大於等於10公斤及以上的包裹按照:每1公斤4元計算;(如重20公斤=4×20元=80元) 

第一段分析:由字面意思可以看出,包括兩個方面,一個是重量範圍,小於2公斤;另一個是費用計算的標準。  

因此,只要貨物的重量是在要求範圍內,就給出符合要求的標識,這裡用1表示;如果不符合就給出0的狀態。 

要求是狀態值,考慮用[ ]或{ }。用[ ]時,當其中的值大於0時,整體值是個大於1的整數值,並不適合用狀態標識,所以使用{ }。  

設定為{2000-w},當w<2000時{2000-w}值是1,符合要求;當w>0時,{2000-w}值是0,也符合要求。但有個臨界值是要注意的,就是當w恰好等於2000時,{2000-w}結果就為0.5,這不屬於本範圍內,因此,再加個判斷:{{2000-w}-0.6 },即當w等於2000時,{2000-w}-0.6值為負數,{{2000-w}-0.6}}值就為0,則總值為0。  同時還要考慮到w≤0的情況,因此用{{w}-0.1}來進行界定  這樣當0<w<2000時,{{w}-0.1}*{{2000-w}-0.6}給出的值就為1,否則就為0,只有兩個結果。 

金額計算:考慮到商品重量會有小於500克的情況,因此設置默認值10元;仿照上例原理,用[(w-500)/500]得出一個整數,再乘以續重標準就可以了

所以第一段的公式可以設置為:{{w}-0.1}*{{2000-w}-0.6}*(10+[(w-500)/ 500]*3)

其它幾段的設置與之類似,關鍵的地方是重量的臨界值的設置  
如:{{w-2000}-0.1}*{{5000-w}-0.6}?就表示2000≤w<5000這個重量範圍。

小技巧:至於用0.1還是0.6主要是考慮{ }中值為0,而結果為0.5時,這個值屬於哪個範圍的問題 
{{w-2000}-0.1}*{{5000-w}-0.6}表示範圍2000≤w<5000 
{{w-2000}-0.6}*{{5000-w}-0.6}表示範圍2000<w<5000 
{{w-2000}-0.6}*{{5000-w}- 0.1}表示範圍2000<w≤5000 
{{w-2000}-0.1}*{{5000-w}-0.1}表示範圍2000≤w≤5000

同理可得出其它分段公式。

最終配送公式:  
{{w}-0.1}*{{2000-w}-0.6}*(10+[(w-500)/500]*3)+{{w-2000}-0.1}*{{ 5000-w}-0.6}*[w]*6+{{w-5000}-0.1}*{{10000-w}-0.6}*[w]*5+{{w-10000}-0.1}* [w]*4

以金額為計算標準的配送公式

例如:訂單金額滿2000元免運費,不滿2000元加收60元運費  
分析:本例是以2000元為界,低於2000元的只要給出個1的狀態,然後乘以5即可;而超過2000元的,則給出個0狀態,這樣總值也為0,即符合要求。 
實際範圍是0≤p<2000; 2000≤p臨界點是2000
因為只考慮狀態,而不考慮具體值,所以用{ },不用[ ];又因為大於2000元時值為0,所以有效值用2000-p 。 
{2000-p},這樣當p值小於或大於2000元時是給出正常狀態的,但要考慮當p恰好等於2000元時的情況,所以增加對臨界值的判斷  
設置為{{2000-p }-0.6},這樣,不論什麼情況,都只會給出1或0兩個狀態

注:如果是{{2000-p}-0.1},則p等於2000元時也會收5元 

最終配送公式: {{2000-p}-0.6}*5

再例如:2000元以下運費乘以12%,2000元及以上乘以10%,500元及以上乘以8%,1000元及以上6%,2000元及以上免費  
分析:關鍵還是范圍的判斷與狀態的給出  
實際範圍是0≤p<2000; 2000≤p<500;500≤p<1000;1000≤p<2000;2000≤p 
所以只要給出每一個範圍的狀態,然後乘以金額值即可  
結合前例,可得出第一個範圍的公式:{{2000-p}-0.6}*p*0.12

最終配送公式:  
{{2000-p}-0.6}*p*0.12+{{p-2000}-0.1}*{{500-p}-0.6}*p*0.1+{{p-500}-0.1 }*{{1000-p}-0.6}*p*0.08+{{p-1000}-0.1}*{{2000-p}-0.6}*p*0.06

同時以商品重量、訂單金額為計算標準的配送公式

此種方式其實就是上述兩種方式的結合  
例如:訂單金額滿2000元免運費;不滿2000元時,首重1公斤15元,續重每增加0.5公斤加5元  
分析:實際是要求兩個狀態,當金額不足2000時給出一個1的狀態,此時正常計算;當金額是2000元及以上時給出狀態0 
結合前例,不足2000元時,公式為:15+[(w-1000)/ 500]*5 
然後再加一個限制條件,只要少於2000元狀態為1,超過200元時狀態為0就可以了,此時公式為:{{2000-p}-0.6} 
把這兩部分結合在一起,最終公式就是:{{2000-p}-0.6}*(15+[(w-1000)/500]*5)




標籤: 購物說明