电商购物车二:购物车数据与实现

购物车的主要作用是临时存储要购买的商品,然后在结算或下订单时删除购物中的所有数据。购物车的主要数据结构包括:用户ID,产品ID,产品规格ID和产品数量。

字段

类型

说明

Shop_item_ID

Varchar2(36)

购物项编号 主键

User_ID

Varchar2(36)

用户编号 外键

ProductID

Varchar2(36)

商品编号 外键

Count

Number(4)

数量

Price

number(8,2)

价格

ProductName

Varchar(30)

商品名

购物车有离线购物车、在线购物车两种。在电子商务产品中,对于是否需要在购物车中同步不同终端的数据,对应两种不同的购物车实现方式:

                                                     1


不需要多终端同步购物车数据,且购物车数据不重要的情况下,可以选择将购物车的所有数据缓存在用户本地Session,如离线购物车。

这种方法的优点在于:

不需要服务器参与,可以减轻服务器压力

在用户体验中,购物车的数据刷新更快。

 

缺点在于:

由于数据不在云服务器上,因此当用户更改终端设备或清除缓存时,购物车中的数据会丢失。

以这种方式实现购物车的场景:

从用户行为的角度来看,当用户想要购买某个商品时,用户将直接下订单进行结算,并且该过程不需要购物车参与;即使用户首先将产品放入购物车中,然后进入购物车进行结算,或者放弃交易。在下次用户再次购买时,先进入购物车购买商品的概率非常低。

通常他还是会选择重新进入产品详细页,再次下订单付款。这种场景下,购物车中的数据并不是非常重要,因此,购物车的数据可以保存在本地缓存。

也许有人会说:现在是大数据环境,谁拥有数据谁就拥有用户和价值。所以,如果购物车存储在本地,那么平台就无法获得这些数据。

可是,我们是否想过,平台需要什么样的用户购物数据?

拿这些用户购物数据做什么呢?

如果用户在购物车中的商品自己都不需要,平台拿到后又能有多少用处呢?

是否需要对用户的订单(付费或待定)数据更重视呢?

以用户的订单数据来分析用户的行为是否更准确,而不需要使用购物车中的数据?

歪楼了,我们继续购物车实现的讨论。

小程序的数据缓存,官方己经声明永久存储。因此,应算是保存在缓存中的购物车数据,只要用户没有主动清理数据或更改手机登录,这些数据就不会丢失。

                                                  2


需要在多终端设备上同步的数据,数据要存储在云服务器上。 

这种方法的缺点在于:

每次进入购物车或进行购物时,都需要加载云服务器,这在一定程度上将增加服务器压力,增加用户的等待时间。

上面的两种方法,每一种都有优点和缺点。实际上,在实施项目时,选择哪种方法是基于产品经理或客户的实际需求。

在方法的使用时,可以不用必须选择某一种方式,完全可以:用户不登录就添加商品到本地购物车;用户登录后,连带用户状态将Session中的信息存入服务器数据库,将购物车内的东西持久化存储。

但要特别说明的是,把购物车数据存入本地时,要注意:

Session:代表一次有效会话(在用户不关闭浏览器的前提下,默认存在30分钟;用户关闭浏览器再次打开后,未登录用户的购物车将清空。)

这时,我们要在需求中明确,如何用Session存储购物车内数据的两个重要问题:

一、如何准确区分不同的商品

二、如何准确标记进入购物车的商品?

区分不同的商品,自然是使用商品ID。通过商品ID,我们可以查询到商品详情,如:价格、名称等等。这样就能够区分出不同用户的购物车数据。

但要准确标记进入购物车的商品,仅仅用商品ID就不够了,必须还要同时记录同一商品的购买数量(购买数量并不存在于商品详情)。这样,才能对进入购物车的商品与货价商品进行区分。

以上都是购物车实现时的细节需求,如有疑问欢迎交流!

发布了210 篇原创文章 · 获赞 14 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/weixin_42058609/article/details/94031578
今日推荐