互联网和产品 · 2020年11月18号 0

详解订单多商品多运费模板的运费计算规则

对于电商系统来说,配送方式和运费配置无疑是订单闭环中重要的模块之一。

现主流的电商平台大部分商品都是采用全国(港澳台除外)包邮,你没听错,偏远地区有些商家也采用包邮模式(里面我就看破,不说破,哈哈~)。

当然,电商系统后台肯定会支持商家自行配置运费模板,当商户在上传商品的时候,需要选择或新建运费模板;然后用户将商品加入购物车进行结算时,系统自动计算出运费多少。

这时候就会引发一个问题:当用户结算多件商品,其捆绑了不同的运费模板,比如有按件计费、按重量计费,甚至同种类型模板也有不同配置参数;此时这么运费该如何做合理的计算,肯定不能简单运费添加的,那如何做到一个商家和用户比较均衡,尽量让双方都不吃亏呢?

因此,我特意研究了淘宝的运费配置,总结其运费计算方式;本文主要针对按件计费、按重量计费方式,对运费计算进行详细说明,按体积计费大家可按照本文说明,同理可得,自行研究。

一般在电商后台设置运费模板时,会涉及到以下几个参数:配送区域、计价规则、首费标准、首费(元)、增费标准、增费(元)、免邮条件等等。

自动草稿

开始我咨询淘宝客户:“一个订单里包含多个商品多个运费模板,运费是怎么计算?”

客服反馈如下:

如一个订单里包含多个商品多个运费模板时,运费计算逻辑是:根据首费最高、增费最低的原则选择首费模板,其余的商品只计算增费。

举一个例子:

自动草稿

第一步:商品按照运费模板分组,三个商品分数不同的的运费模板,所以共三个计算分组。

第二步:计算首费,从三个分组里根据首费最高增费最低原则,选择A的运费模板作为首费,所以首费为5元。

第三步:计算增费,遍历这三个分组计算增费;A的增费——因为A满足首费,需要扣除首费资源后在计算增费,其增费为(ceil(double(3-2)/2))x1 = 1;B的增费为1×2=2元;C满足包邮条件,也需要扣除资源,其增费为(6-5)x2=2元。

总运费=首费+增费:5+1+2+2 = 10元

好了,官方例子大家可能朦朦胧胧的看明白,也有可能云里雾里的,其中还是涉及到好多细节没有讲到,接下来我们一起来深扒深扒。

运费计算步骤:

步骤一:按照运费模板不同进行分组:其中相同商品同一个模板也应归为一组,后面计算增费均以分组维度来计算的。

步骤二:计算首费:根据首费最高,增费最低的原则,选择首费模板:

  • 首先排除运费为0,包邮的分组,其不参与被选择;
  • 若存在两组首费和增费一样的分组,按默认顺序选择其中一组作为首费模板;
  • 排除包邮的分组后,只剩下一组分组时,直接按默认运费计算规则计算,无需选择首费模板,也没有步骤三的操作。

步骤三:计算增费:遍历不同分组,计算各自增费。

  • 首费所在分组计算增费,需要考虑收费标准;
  • 增费数量(超出部分需要缴纳的邮费的件数或者重量)公式如下,且增费数量计算结果要向上取整。

自动草稿

每一分组子订单运费公式:子订单运费 = 增费数量 * 增费(元)

计算运费的前,应考虑以下重要两点:

  • 分组所在的运费模板是否是首费模板;
  • 分组内是否满足免邮条件;

按件计费和按重量计费各有差异,请继续往下看。

按件计费:

  • 有满n件免邮条件,购买件数大于等于n,免邮,运费为 0;
  • 有满n件免邮条件,购买件数小于n,不免邮;

若分组所在运费模板是首费模板,增费数量公式如下:

自动草稿

公式1

注意:不免邮情况下,此时包邮数量取值为 0。

若不是首费模板的时候,购买件数无需和首费标准件数相比较,增费数量公式如下:

自动草稿

公式2

注意:此时首重标准、包邮数量均取值为 0。

无免邮条件,计算增费数量时,增费数量如下情况:

  • 若分组所在运费模板是首费模板,增费数量公式如(公式1);
  • 若不是首费模板的时候,购买件数无需和首费标准件数相比较,增费数量公式如(公式2);

按重量计费:

  • 有在 n (KG)内免邮条件,购买商品重量小于等于n,免邮;
  • 有在 n (KG)内免邮条件,购买商品重量大于等于n,n 部分免邮;大于n部分按增费计算;

若分组所在运费模板是首费模板,增费数量公式如下:

自动草稿

公式3

注意:符合免邮条件情况下,此时首费标准取值为 0。

不是首费模板的时候,增费数量公式如(公式3)

无免邮条件,购买商品重量 m。

若分组所在运费模板是首费模板,增费数量公式如下:

自动草稿

公式4

注意:无免邮条件情况下,此时包邮重量取值为 0。

不是首费模板的时候,增费数量公式如下:

自动草稿

公式5

注意:无免邮条件情况下,此时首费标准、包邮重量取值为 0。

步骤四:总运费 = 首费 + 分组子订单增费合计

举个例子

例子1:多个商品,存在相同运费模板(按件),且满足免邮条件:

自动草稿

按照步骤一规则运费模板分组:A、B同一组,C一组。

计算首费:

  • 按照首费最高,增费最低的原则,有包邮分组要先剔除掉;
  • 显然A、B同一模板,合为一组,总计 5 件,满足免邮条件,因此A、B运费为 0,剔除选首费模板资格;
  • 目前只留守C组这一个分组,按照规则该订单无需选择首费模板,按照默认规则计算运费即可;

计算运费:

C 购买重量 7 KG,满足免邮条件,因此 5 KG 无需手续费用,增费为:

自动草稿

总运费 = 4 元

例子2:多个商品,存在相同运费模板(按重量),且不满足免邮条件

自动草稿

  • 按照步骤一规则运费模板分组:A、B一组,C一组;
  • 计算首费:按照步骤二规则选择A、B分组运费模板a作为首费,首费为5元;

计算增费:

A、B同一模板,合为一组,总计 4 件,不满足免邮条件,且为首费模板,因此利用公式1计算A、B分组增费:

自动草稿

C分组购买的商品重量为3千克,符合包邮条件, 增费为0。

总运费 = 5 + 1 +0 = 6 元

例子3:多个商品,不同运费模板:

自动草稿

  • 按照步骤一规则运费模板分组:A一组、B一组,C一组;
  • 计算首费:按照步骤二规则选择A分组运费模板a作为首费,首费为5元;

计算增费:

A分组商品购买3件,不满足免邮条件,且为首费模板,因此利用公式1计算其增费:

自动草稿

B分组商品购买1件,无免邮条件,利用公式2计算其增费:

自动草稿

C分组商品重量为6千克,满足包邮有条件,5千克无需付邮费,超出的1千克,利用公式3:

自动草稿

总运费 = 5 + 1 + 2 + 2 = 10 元。

运费模板组合的方式远远不止上面3种,其他的组合大家可以按照上述运费计算步骤自己去研究技术,不过这可能也增加了技术伙伴的开发难度;但是合理、贴切真实的运费计算规则,在用户购买多件商品时,不会造成运费过高导致用户的流失,