如何设计电商的运费模块

本文转载自公众号一鸣说 作者一鸣 十二赞产品经理
在网购中,买家经常会问卖家:包不包邮啊?运费多少啊?运费问题一向是买家和卖家都比较关注的一个问题。很多卖家为了提升商品的竞争力,往往会直接包邮,虽然这部分实际的运费被包含到了商品的价格中,但是至少让买家觉得很爽。根据数据分析,淘宝上(包含天猫)90%的订单均为「包邮」(即运费为0元)的情况。但是在某些情况下,卖家不愿意将运费计入商品价格,或者价格体系较为复杂,此时就需要对运费体系进行升级优化,以便满足复杂多变的需求环境。

运费的出发点是网购时,卖家将商品使用「快递」的方式寄送给买家,卖家需要向快递公司缴纳「运费」。运费的价格根据运输的方式、距离、重量、体积等一般都不同,而且每家快递公司对于同一情况的商品寄送价格也不一样。如果根据实际情况进行设计,无疑这将使整个运费体系复杂难用。对于一个确定的商品,我们将运费影响环节抽象成2个因素:重量、距离。对于距离我们进一步抽象,在卖家的发货地明确的情况下,只需要定义收货地,再根据收货地不同采用不同的运费策略。

对于确定的商品,重量也是确定的,因此重量可以进一步抽象成「按件数」。实际上,我们一般会采用「按件数」和「按重量」并行的模式。快递中还存在一个「首重」和「续重」的概念,对应到件数,可以抽象为「首件数」和「续件数」的概念。

我们定义「运费模板」。一个运费模板可以关联到多个商品,当这些商品下单时,按照运费模板的规则计算运费。一个标准的运费模板包含以下几部分。

(1)运费模板名称:用于卖家查找并关联运费模板。

(2)计价方式:按件数、按重量。更复杂的还有按体积,但是并不常见。

(3)计算规则:如果是按件数,则为「n件x元,每增加m件,运费增加y元」。如果是按重量,则为「n千克内x元,每增加m千克,运费增加y元」。设定默认项以及特定地区运费。

在买家下单计算运费时,首先匹配到买家所在地区,按照该地区的规则进行计算。如果一个订单中的商品关联了多个运费模板,就只取最大的「首件数」费或「首重」费,其余商品均定义为「续件」或「续重」。

发表评论