ShopEXERP配送公式说明配送公式是ShopEx系列中比较独特的一个功能,可用于自动计算配送价格,到现在为止还未发现不能用该公式描述的配送方式。配送公式一般参考订单中的商品总价格(p)、订单中商品总重量(w)来按照一定的逻辑自动进行运费的计算。本小节包括5点,通过本部分的操作,您可以根据实际情况,对不同地区设置不同公式,让系统自动计算配送费用。1、配送公式表达式中字母含义、字符含义2、以重量为计算标准的配送公式3、以金额为计算标准的配送公式4、同时以商品重量、订单金额为计算标准的配送公式5、配送公式的验证与使用1、配送公式表达式字母含义、字符含义公式表达式中商品总重量用字母“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多用于给出状态值W的基本单位是克,设置公式时要注意。特别是[]、{}中数值在0这个临界点时的值非常关键,只有这里完全理解了,才会看懂公式的含义,才能写新公式2、以重量为计算标准的配送公式例如:首重1公斤是15元,续重每增加0.5公斤,加5元分析:因为要考虑到货物总重量会少于首重,所以首重要单独考虑续重时考虑商品总重量减去首重后,是续重标准的倍数,是几倍就用倍数乘以续重的标准两者的和即是总的配送费用。结合本例,(w-1000)/500即为商品重量去除首重后对续重的倍数,因此结果不一定为整数,故用[(w-1000)/500]来向上取整两者结合起来,总的公式即为:15+[(w-1000)/500]*5再例如:某种配送方式,要求如下:2公斤以下的包裹按照:首重500克算10元,每续500克按3元计算;大于等于2公斤,小于5公斤的包裹按照:每1公斤6元;(如重5公斤=6×5元=¥30元)大于等于5公斤,小于10公斤的包裹按照:每1公斤5元计算;(如重10公斤=5×10元=50元)大于等于10公斤及以上的包裹按照:每1公斤4元计算;(如重20公斤=4×20元=80元)第一段分析:由字面意思可以看出,包括两个方面,一个是重量范围,小于2公斤;另一个是费用计算的标准。因此,只要货物的重量是在要求范围内,就给出符合要求的标识,这里用1表示;如果不符合就给出0的状态。要求是状态值,考虑用[]或{}。用[]时,当其中的值大于0时,整体值是个大于1的整数值,并不适合用状态标识,所以使用{}。设置为{2000-w},当w2000时{2000-w}值是1,符合要求;当w0时,{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}来进行界定这样当0w2000时,{{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≤w5000这个重量范围。小技巧:至于用0.1还是0.6主要是考虑{}中值为0,而结果为0.5时,这个值属于哪个范围的问题{{w-2000}-0.1}*{{5000-w}-0.6}表示范围2000≤w5000{{w-2000}-0.6}*{{5000-w}-0.6}表示范围2000w5000{{w-2000}-0.6}*{{5000-w}-0.1}表示范围2000w≤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]*43、以金额为计算标准的配送公式例如:订单金额满200元免运费,不满200元加收5元运费分析:本例是以200元为界,低于200元的只要给出个1的状态,然后乘以5即可;而超过200元的,则给出个0状态,这样总值也为0,即符合要求。实际范围是0≤p200;200≤p临界点是200因为只考虑状态,而不考虑具体值,所以用{},不用[];又因为大于200元时值为0,所以有效值用200-p。{200-p},这样当p值小于或大于200元时是给出正常状态的,但要考虑当p恰好等于200元时的情况,所以增加对临界值的判断设置为{{200-p}-0.6},这样,不论什么情况,都只会给出1或0两个状态注:如果是{{200-p}-0.1},则p等于200元时也会收5元最终配送公式:{{200-p}-0.6}*5再例如:200元以下运费乘以12%,200元及以上乘以10%,500元及以上乘以8%,1000元及以上6%,2000元及以上免费分析:关键还是范围的判断与状态的给出实际范围是0≤p200;200≤p500;500≤p1000;1000≤p2000;2000≤p所以只要给出每一个范围的状态,然后乘以金额值即可结合前例,可得出第一个范围的公式:{{200-p}-0.6}*p*0.12最终配送公式:{{200-p}-0.6}*p*0.12+{{p-200}-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.064、同时以商品重量、订单金额为计算标准的配送公式此种方式其实就是上述两种方式的结合例如:订单金额满200元免运费;不满200元时,首重1公斤15元,续重每增加0.5公斤加5元分析:实际是要求两个状态,当金额不足200时给出一个1的状态,此时正常计算;当金额是200元及以上时给出状态0结合前例,不足200元时,公式为:15+[(w-1000)/500]*5然后再加一个限制条件,只要少于200元状态为1,超过200元时状态为0就可以了,此时公式为:{{200-p}-0.6}把这两部分结合在一起,最终公式就是:{{200-p}-0.6}*(15+[(w-1000)/500]*5)5、配送公式的验证与应用添加或修改配送方式时,可以看到使用公式的标识点击使用公式后,出现公式的输入框输入公式后,最好先对公式的可用性进行验证。点击验证公式后,会弹出一个验证框计算时有两个关键值,一个是商品的总重量,一个是订单的总金额,计算时按输入的两个值计算。注意:如果某一项不输入值,则要设置为0,不能为空输入值时,点击计算可以看到验证情况如果结果验证正确,确定后,保存即可生效。说明:如果使用公式时,则每个商品中必须要设置重量才会让公式生效,如果商品重量为空或设置为0,则配送费用会与预期值有比较大的差别