购物车设计的两种方案

购物车主要功能是临时存放欲购买的商品,然后在结算或下订单时,把购物里面的数据全部移除。其数据结构主要包含的字段有:用户ID、商品ID、商品规格ID、商品数量。


在移动端的电商系统里,根据是否需要在不同终端同步数据以及对购物车数据的重要程度,实现购物车功能有两种方式可选:
【1】对于不需要在多终端同步购物车数据,以及购物车数据不太重要的情况下,可以选择把购物车的数据全部缓存在用户本地终端。

这种方式的优点是:

(1)不需要服务参与,即减少了对服务的压力

(2)同时,在用户体验上,购物里的数据刷新速度回更快
缺点是:
由于数据不在云端服务器上,所以,用户在换一个终端设备,或者清除本进程缓存时,购物车里的数据都会丢失。

采用这种方式实现购物车的场景是:从用户的行为上来看,用户在欲购买某件商品时会直接对其进行下单结算,这个过程都不需要购物车参与;同时,即使用户先把商品放入购物车,之后用户要么进入购物车进行结算,要么就置购物车而不顾,放弃交易。但是,用户下次再次发生购买时,从进入购物车进行现代购买的概率会极低,他会选择有重新进入商品详情进行下单付款,所以此时购物车里的数据对用户来说并不是那么重要,因此可以把购物车的数据设计在本地进行缓存起来。

有人也许又会说,现在在大数据环境下,谁拥有数据,谁就拥有用户和价值,所以,如果购物车存储在本地的话,那么公司就没有了这块数据了!但是,反过来问,公司企业需要用户的购物数据吗?需要用来干嘛?同时,因为用户购物车数据最终是转成订单(支付或待付),所以公司企业只需要订单数据即可分析用户的行为,而不需要使用购物车里的数据。
同时,尤其对小程序来说,缓存在小程序里的数据官网说明的是永久存储,所以只要用户不主动清理数据,或换手机登录的话,这个数据就一直在用户设备中不易丢失。


【2】对于需要在多终端设备上同步数据,这种情况下就需要把数据存储在云端服务器上了。

这种方式的缺点是每次进入购物车,或对购物进行操作时,都需要云端服务器参与,某种程度上就增加了服务器的压力,以及会增加用户的等待时间。


对于这两种方式各有优缺点,实际在实施工程时,根据产品经理或客户的实际需求进行选择。


但是,我个人更倾向于把购物车的数据存储在本地的,原因就是我上面说的那些。


目前我们开发的两款电商小程序中,一款是把购物车数据存储在本地,一款是存储在云端服务器,体验效果:


购物车存储在本地:

购物车存储在云端: