产品设计反思 价目表视图
TMS中有一个让人又爱又恨的功能,叫tariff pivotal view,爱的基本上是BA,因为它可以通过配置是价目表的长相和用户熟悉的excel一致,方便用户使用。恨得主要是开发和测试,因为用户的excel千变万化,所以这个pivotal越来越复杂,复杂意味着容易出错,也意味着性能容易出现问题。
所以最近几周一直在反思这个功能的设计,希望能通过减枝精简逻辑,达到双赢。
先看看价目表的一条记录是什么样的,通常是一组计费条件,比如运费的起点,终点,车型,重量,体积等。加上计费内容比如xx钱一公斤,最少收xx钱。然后可能需要有个有效期,有一些用户自己家的备注之类的。
把上面这些内容归归类,分成了三部分。
第一部分叫计费条件,它用来匹配当前的订单是否适用这条计费条目。我们把他称为dimension维度。维度里有基本的维度,比如车型,运输方式,业务模式等等。然后有特别一点的维度,比如地点,这里面有一个包含关系,然后有更特别一点的维度,比如范围的维度,比如1-3千克,4-5千克等等;然后还有更特殊一点的维度,比如有效期。小结一下,所有影响到这条价目表能不能被特定订单使用的属性都称为维度。维度的字段可以有非常多。
第二部分叫计费方式,这部分相对固定,常见的是计费单位,单价,最低价,封顶价,货币等等。
第三部分叫其他,这部分没有什么系统层面的作用,给用户自己肉眼看看,做些必要的备注。
理清了一个价目表条目的信息,然后看看pivotal view的本质,本质就是将仅有个别维度不同的价格合并到一行中显示。举个例子,比如上海到杭州的集卡运输,可能在其他条件相同的情况下,20gp,40dp,45hq三种箱型的运费分别是200,300,400。没有其他的维度,那么用户希望看到的是一行里面包含有20,40,45三个价格。而不是看到三行价格。
那么用户就可以设定一个视图,这个视图规定了在只有特定维度存在差异的价目表合并成一行,然后将特定维度的单价平铺在一行上。
好了,看上去挺简单的,但是还有一些细节没有考虑,前面说的价目表里除了计费条件外,还有两类,一个叫备注,一个叫计费方式,这两个要不要参与分组呢,也就是说备注不同的两条记录是不是应该被合并到一行里呢?建议不要合并,因为这样会造成备注的合并,只看没问题,但是修改了再保存就需要特别处理,没有必要。计费方式也类似,其中的单价,计费单位和货币可以放到对应的可以价格格子里,其他的信息,如果有差异,也建议不合并。
基于上面这个原则,tariff pivotal的复杂度基本还是可控的,感觉也能满足用户的需要了。
还有一点点处理的细节,明天继续想想。