网上点餐系统中购物车的设计与实现
在网上点餐系统中,购物车模块的开发是非常重要的一部分,本文从实际出发,给出了点餐系统购物车的功能描述,运用PHP中session变量实现购物车功能,并且给出了部分重要的源代码。
【关键词】购物车PHP Session
1 引言
随着互联网技术的飞速发展,电子商务越来越多地应用到人们的日常生活中。而购物车是电子商务网站中最关键的功能之一,就如在大型超市中购物,在进入超市时,往往都是先推上一辆购物车,在超市中选购商品时,有看中喜欢的就直接可以把它们放进购物车中。
网上点餐系统中的购物车亦是如此,它是点餐时使用的一个临时保存菜品的“车辆”,有了购物车,点餐用户将得到极大的方便,不用担心一次选中多个菜品而需要提交多次结算操作,只需要添加全部菜品进购物车后一次结算即可,是点餐系统必不可少的功能。
2 购物车功能设计
客户浏览并选择好喜欢的菜品,下单付款,完成一个流畅的点餐过程,实现更多的交易量是点餐系统设计的宗旨,因此设计一个界面美观友好、功能完善、使用方便的购物车在整个点餐系统中十分关键。
经过对点餐用户的需求分析,本文购物车的主要功能包括:添加菜品、删除菜品、更改菜品数量、菜品金额、清空购物车,提交订单等。其功能结构图如图1所示。
3 购物车的实现
购物车实现的办法很多,可以使用XML来存储临时数据,还可以使用Session或者Cookie来存储点餐者的选购信息,这些方法各有优缺点,XML办法将会加大服务器的运行负担,Cookie容易因为客户端浏览器设置的关系而失效。而Session与Cookie不同的是Session将信息存放于Server端,当用户浏览器关闭时,Session也随着消失。因此本文系统采用了Session来设计购物车。
(1)Session购物车的创建。Session购物车主要用Session变量来实现,通过session_register()函数创建2个Session变量就是所谓的购物车,其中food_id存储菜品的ID,cartCount存储菜品的数量。Session购物车创建的代码如下:
<?PHP session_start();
session_register("food_id");
session_register("cartCount");
?>
(2)判断购物车是否已存在指定菜品。为了避免在购物车中出现菜品重复添加的现象,要对添加的菜品与购物车中已经存储的菜品做比较判断。一般可以使用explode()函数或者is_array()函数来判断,本文采用explode()函数来判断,将food_id变量中存储的字符串以@为分隔符转换到数组中。
(3)菜品添加功能的实现。添加菜品功能的实现原理是:首先创建一个购物车,然后在菜品分类中点击菜品添加至购物车,并且不允许重复添加,本文系统购物车是利用cart变量(Varchar类型)来存储点餐的临时数据的,保存在Session中,将菜品信息添加到购物车里面的时候,有两种情况:当变量cart 为NULL时,即当用户下单时向购物车里面添加第一个菜品时,需要建立一个变量cart,然后将菜品信息存储到cart中;当变量cart不为NULL时,说明购物车里面已存在一个或多个想预订的菜品了,这时,不需要重建创建,而是直接向cart中继续增加信息即可。
(4)购物车中删除菜品功能的实现。购物车中删除菜品的操作是根据“删除该项”超链接中传递菜品ID($_GET[id])传递的值,执行删除菜品的操作。应用explode()函数,将Session变量中存储的菜品ID和数量写入数组中,并以|作为分隔符,然后用array_search() ,获取数组中指定ID菜品的键名,将对应的数据赋值为空,最后将数组中重新赋值的空数据写进购物车,从而完成删除购物车中菜品的功能。
4 购物车开发遇到的问题
在用Session变量来实现购物车功能时,出现了这样一个错误:无论添加多少菜品到购物车,购物车里面都提示暂时没有菜品信息,最后经过排查,发现是因为Session变量没有初始化所导致,Session变量未初始化,就获取不到Session变量中存储的数据,从而导致购物车不能显示菜品信息。正确的使用方法是在开始之前就要初始化变量Session,然后再进行其他操作。
5 结语
网上点餐系统最终的目标是让更多的用户及时下单增加餐饮销售额,而购物车是整个下订单过程中非常关键的一个环节。购物车的设计既要方便点餐用户的使用又要考虑商家的经济成本,所以要求购物车兼顾功能完善和页面美观友好,本文主要研究了购物车相关功能的设计,并给出了部分功能的源代码,具有一定的参考价值。
参考文献
[1]韦伟.ASP中购物车的简单设计实现[J].软件工程师,2014,17(10):14-15.
[2]吴代文,林关成.基于ASP购物车的设计与实现[J].信息技术,2012(03):49-50.
[3]张志刚.购物车技术研究及改进方法[J].计算机应用与软件,2010(03):68-70.
作者单位
无锡职业技术学院图书馆 江苏省无锡市 214121