互联网产品设计原则有一条很重要的原则——「在合适的时间、合适的地点、让合适的人、做合适的事儿」。
当然,「合适」这个词儿,不好定义。
以电商网站中的“登录”节点举个栗子,何时需要登录这个问题值得考量。
目前各大电商网站最大的区别在于——用户在加入商品到购物车这个动作的时候是否需要登录,转换一下问题也就是说,是否将登录前置到加入购物车时,或者后置到购物车提交订单时。
那么这就涉及到「合适」的定义了。不管你用哪种方式,你都能找出一堆理由来支撑你的观点,是个仁者见仁智者见智的问题。
大家都知道,用户在电商网站购物时,要完成整个交易是需要登录的,不登录无法确认用户账号信息,商品订单数据和配送地址等。
当然订单环节是一定要登录的。
承接上面栗子中的问题。用户将商品加入购物车时是否需要登录,还是在购物车环节提交订单时才提示用户需要登录态?
不同的网站有不同的处理方式,实际情况也确实是有两套不同的解决方案:
方案一:加入购物车时就要求用户登录。(比如某猫)
- 优点:可以记录到是哪个用户将哪个商品加入了购物车。
- 缺点:将用户操作成本硬生生前置了,提高了获客门槛,对于一部分新用户甚至是冗余操作,体验不够友好。
方案二:当用户将商品加入购物车,实际提交订单(或去结算)的时候再提示用户需要登录态。(比如某东)
- 优点:降低用户心理预期,此时用户购物目的已经相当明确清晰,此时(合适的时机)提示用户登录,抗拒感接近于0。
- 缺点:若没有登录态,我们就不知道这个商品是哪个用户加入了购物车。
说完以上两种方案各自的优缺点后,我们再来探讨一下「当用户将商品加入购物车,实际提交订单的时候再提示用户需要登录态」这种方案在具体应用中会碰到的问题。
背景介绍
如果加入购物车时不需要登录,这时我们需要先认识一个概念——「离线购物车」。
所谓离线购物车,是指用户在非登录态下将商品加入购物车的场景。通过设备号来记录哪个商品加入了哪个设备的购物车,等到用户在离线购物车真正提交订单的时候再提示需要登录。
这是一种比较好的体验。
那么问题是?
如果支持离线购物车——即用户在离线态下加入一批商品到车内,而后又在登录态下加入一批商品到车内,此时会碰到一个问题——离线购物车与在线购物车如何合并的问题。
举个栗子,
- 场景一:十三,2017年6月6日,在X猫网站购物,在未登录网站的情况下,加入了 A/B/C 共 3 件商品到购物车;
- 场景二:十三,2017年6月7日,在X猫网站购物,在登录网站的情况下,加入了 D/E/F 共 3 件商品到购物车。
那么十三登录后,需要将他在未登录态下加车的 A/B/C 3件商品与登录态下加车的 D/E/F 3件商品进行合并,此时十三的车内总共应该有 A/B/C/D/E/F 共 6 件商品。
具体怎么做呢?
具体做法是,在用户登录后,程序会去判断该设备下是否有离线购物车的数据。
如果有离线购物车数据,我们就认为他在离线状态下有加入商品到购物车,此时会将离线购物车与在线购物车数据进行合并,一起展示在在线购物车内。
说完了数据合并的问题,还有一个数据删减的问题。
什么意思呢?
即我在登录态下,将离线购物车的数据删掉了,再退出登录(即回到离线态下),离线购物车数据是否还在呢?
举个栗子,
用户场景:十三,2017年6月6日,在某东购物时,在未登录网站的情况下,加入了 A/B/C 共 3 件商品到购物车;
他登录后购物车内有 A/B/C 3件商品,删掉 A和B,然后退出登录,此时离线购物车是有 A/B/C 3件商品,还是只有 C 这 1 件商品呢?
某东的做法是,按照上述方式操作后,最后只有 C 这 1 件商品。
我也稍微请教了一下我司开发,从技术实现和逻辑规则上看,所有支持离线购物车的电商网站应当都是这样的。
具体为什么,我突然有事忘记细问了,不过可能开发也不是特别清楚