电商后台设计:运费系统设计
对于入驻商家而言,不完善的运费设计往往也并不实用,大概率直接放弃使用,反而用商品补邮费差价这种“原始”形式。
运费是电商的基础功能模块之一,承担着商品运输费计算的作用。运费算不算的明白直接影响价格,自己见过多款初期电商产品因为不完善的运费设计,导致商品在列表页的标价过高,或者在订单中重复计算或少计算运费。无论以上何种情况,都直接影响电商产品的核心体验-购买。对于入驻商家而言,不完善的运费设计往往也并不实用,大概率直接放弃使用,反而用商品补邮费差价这种“原始”形式。
运费的常规设计方式有两种:
- 商品运费设计:对每个商品设置单独的运费;
- 店铺运费设计:按店铺的维度计算运费。
两者各有优劣,但是总体上按商品维度计算运费的设计能运用更多的场景。
和生活中快递商品类似,选择一家快递公司后,快递公司根据邮寄物品的重量和距离(目的地)计算运费。下图为顺丰的收费标准:
上图引出几个概念:
- 首重;首重表示快递的货物在首重范围之内,都是收取固定的首重运费。
- 续重:超出首重的快递物品,按每超出1Kg增加续重费用计算。
那么运费的计算公式=首重费用+(实际邮寄重量-首重)/续重*续重费用。以江浙沪皖同省跨市件为例,首重1kg,首重费用为10元,在50kg内,每增加1kg,则需要增加2元的运费。那么快递3.5kg的物品的运费=10+(3.5-1)/1*2=16(运费需要向上取整,3.5Kg按4kg计算)。
同理,运费后台就是设定好运费的计价规则,然后让商品选择邮费模板,设定物流参数(例如重量,体积)。消费者在客户端选择购买数量和收货地址后,就完整地获得了运送的物品重量和目的地,从而计算出邮费。
上图淘宝邮费模板的创建,包含的关键信息如下:
- 是否包邮:包邮的话则无需设置后续参数,所有邮费由卖家承担。
- 计价方式:分为“按件数”,“按重量”,“按体积”三种。运费模板和商品关联后,则依据商品设置的重量或体积,或者本身的件数。用户在客户端选择购买数量后,可以获得该次运送的总物流重量/体积/件数。
- 运送方式:对应线下的业务,分为“快递”,“EMS”和”平邮“三种。可多选,每种运送方式都有单独的计价规则。
上图为”快递“运送方式的计价规则设置,分为两部分,默认运费设置和指定区域运费设置。该设置可以满足为不同的区域设置首重运费和续重运费的规则。同理,”EMS“和”平邮“的计价规则设置也是如此。
”指定条件包邮”可以很好地满足促销运营的需求,其设置如下:
可以设置不同的运送方式,在达到一定重量(物流参数)或者金额后免邮费。
设置好运费模板好,再在创建商品时选择合适的运费模板,填写物流参数,即可完成整个运费的设置。
小结如下:运费在选择好基础计算单位后,可以针对不同地区设置首重,首重费用,续重单位,和续重费用后(这里可以替换不同的计价方式),从而设置好运费的基础功能,同时也支持设置包邮促销业务。最后再在创建商品的时候,选择合适的运费模板,填写物流参数。完成整个运费的设置。
完成以上设计后,试想一个问题,假如一家文具店,笔的运费是第一支笔是8元,每再购买一支笔,需要续费2元运费。橡皮的运费计算公式是第一块橡皮的运费是10元,每再购买一块橡皮的运费是3元。如果不做处理按之前的计价公式,那么某位用户购买该店铺两支笔,两块橡皮的运费=8+2+10+3=23元。而真实的业务是,对于运输公司,首重只会计算一次,实际的运费更接近于10+2+3=15元,即首重只在多件商品的首重选择最大值计算,余下按续重计算。
还有一种情况是,一家卖明信片的店铺如果卖2张明信片即可包邮,他可以设置买某张第一张明信片的第一张运费为6元,购买该商品2张即可包邮。其他种类的明信片的运费也是设置如此。那么他实际上想要达到的效果是用户只要购买两张明信片即可包邮(不同种类的也可以)。按上述设置,怎么都会存在6元的运费,这时候就需要通过修改订单运费来解决。
以上,可以看到按商品设置运费尽管满足大多数运费计算场景,但是仍旧有少部分场景不能满足。
简述邮费有“店铺运费”和“商品运费”两种设计。所以诞生了“满就送”营销工具。
以店铺维度,设置购买满多少元就免邮费的营销工具,一定程度上弥补了按商品设置邮费带来的促销不便利的不足。
按店铺维度设置运费,实际上就是把运费模板的绑定关系由商品变更为店铺。对于大多数店铺而言,这种设置更合理,像上面提到的明信片问题,在店铺维度设置运费的设计里就不存在。但是,相对应的这种设置灵活性就很差。
本文由 @白熊 原创发布于人人都是产品经理。未经许可,禁止转载。
请教各位 :如果商品重量有小数(比如上文的3.5kg),是先取整再减首重还是先减首重再取整?
先减首重再取整,而且这两种方式很多时候算出来是一样的。
文章只讲到后台操作的层面,能不能讲讲数据库的设计,以及结算层面?
如果买家购买了两个不同运费模板的商品,例如:商品A使用的按件收运费,商品B使用的是按体积收运费,那运费如何计算?
首先判断是否设置了单品运费优先店铺运费,如果没有设置,默认采用店铺运费,若达到店铺运费包邮,则免运费;若达不到店铺运费包邮规则,采用单品运费;单品运费分别计算A、B的计算规则,根据后台设定看采用叠加还是取高值;若设置单品邮费优先,则直接采用单品邮费计算。
采用叠加还是取高值这两者有什么优缺点
取高值是淘宝的做法,叠加是有赞的做法,取高值实际收取的运费会比叠加略低些,更合理,也更容易被用户接受,只是开发的同学需要多跑几行代码了。
我测试过淘宝的运费规则,不是按照叠加的方式。而是按照:取首件/首重金额最大的运费模板,计算关联该模板的所有商品运费,其他模板的商品都按照续件/续费金额来计算。举例:
运费模板M:首重0.5KG,10元,续重1Kg ,5元(不足1kg,按1kg计算);
运费模板N:首件1件,5元,续件1件,4元;
运费模板T:首件1件,4元,续件1件,4元。
商品A(0.5kg)关联运费模板M, 商品B关联运费模板N,商品C关联运费模板T;
现购买商品A,4件,商品B,2件,商品C,3件;则最终的运费为:23元;
计算公式为:
商品C购买3件,满足包邮条件,则商品C的运费为0;
商品A、B按运费计算规则计算为:
取首件/首重金额最大的运费模板,计算关联该模板的所有商品运费
商品A=10+(0.5*4-1)*5 =15元;
其他模板的商品都按照续件/续费金额来计算
商品B=2*4=8元;
总运费=商品A+商品B+商品C =15+8+0=23元
对比下来,这种计算方式最为复杂,但是平台和用户而言,算是最合理的一种方式。
商品A=10+(0.5*4-1)*5 =15元 这个有问题吧,首重是0.5kg啊,应该是:
商品A=10+ceil(0.5*4-0.5)*5 =20元
确实应该是20元,多谢指正
这个是什么电商后台
淘宝