《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 电子商务网站中购物车的实现
电子商务网站中购物车的实现
来源:微型机与应用2011年第17期
王勇杰
(山西大学 商务学院,山西 太原 030031)
摘要: 购物车模块是电子商务网站主要的核心模块。介绍了常用的购物车的设计技术,运用ASP中的Session对象实现购物车的功能,并给出了重要部分的源代码。
Abstract:
Key words :

摘  要: 购物车模块是电子商务网站主要的核心模块。介绍了常用的购物车的设计技术,运用ASP中的Session对象实现购物车的功能,并给出了重要部分的源代码。
关键词: 购物车;Cookie对象;Session对象

1 购物车简介
 购物车是电子商务网站与用户交互的重要模块,购物网站要完成购买转化率,除了要有丰富、适合消费者需求的产品外,对于购物车的设计也要做到操作简便、流程清晰、付款方便等特点。它的主要作用是临时存放用户的购物信息,用户可以随时增加商品、修改数量、删除商品等操作。购物车设计得好与坏,直接决定了用户购买的积极性,对于网站转化率而言具有举足轻重的意义。
2 购物车设计方法
 购物车的内容其实就是客户的订单的信息存放在哪里,用什么技术来进行存放?一般购物车的设计方法有以下三种:
 (1)Cookie对象设计方法
 Cookie是通过服务器端CGI、脚本或者客户端脚本把信息保存在客户机上,以便为服务器或客户机再次使用这些信息提供方便。使用Cookie来保存购物车信息的优点是:即使当用户不小心关闭了浏览器窗口,购物车中的信息也不会丢失,并且它占用很少的服务器端资源。缺点是:必须要求用户端浏览器支持Cookie并且打开它,如果用户端浏览器不支持Cookie或者没有打开Cookie,则购物功能就不能实现。
 (2)Session对象设计方法
 Session对象用于存储特定用户会话所需的信息。Session对象是在每一位访问者从Web站点或Web应用程序中首次请求一个ASP页时创建的,它将保留到默认的期限结束或通过脚本设置中止的期限。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。利用Session的功能,可以将购物信息(商品ID和购买数量)存储到Session变量中。
 (3)数据库的应用设计方法
 将用户的购物信息存入临时表单的临时文件中,当用户下订单时再删除临时记录并将信息保存在数据库中。但这种方法需要频繁地与数据库或文件进行数据交换,占用了大量的系统资源,对于大型网站,服务器的负担过重,显然这种办法不合适。
以上三种购物车的设计方法,各有利弊,本文重点介绍Session实现“购物车”设计与实现。
3 Session购物车设计与实现

 


 (1)显示购物车
 ①判断购物车是否为空。为空结束,不为空则调用数据库,在数据库中显示保存在Session中变量商品ID的数量、价格等。
 <%
 Set rs=Server.CreateObject("ADODB.RecordSet")
 strsql="select * from shangpin where ID in ("&Session("ProductList")&") order by ID"′查询保存在Session里的变量 ProductList(商品ID)
 rs.open strsql,conn,1,1
 %>
 ②判断该客户是否为第一次购物。根据从表单接收的商品数量是否为0来判定。
 Quatity=Request.Form("Q_"& rs("ID"))    ′接收表单提交的商品数量
    下面表单部分介绍使用这种接收方法的目的:
    If Quatity <= 0 Then    ′判断是否第一次购物
    (商品数量为什么会小于零,前面不是定义商品数量初始值为1了吗?这是变量 Quatity 重复赋值的问题)
    ′虽然定义过商品的数量,但是若又接收表单提交的商品数量,如果是第一次购买商品的话,变量Quatity不会在接收表单时被赋予任何值
    ′Quatity=Session(rs("ID"))′对应变量Quatity
进行赋值(以前存储的商品数量)
        If Quatity<=0 Then Quatity=1′  如果该商品是用户第一次购买,数量为1
    End If
    Session(rs("ID"))=Quatity′将商品数量存入Session里
    Sum=Sum+rs("huiyuan")*Quatity′累加器的效果
 (新价格总记=旧价格总记+商品价格×商品数量)
 (2)购物车中的商品及数量的修改
 设计一变量Productlist,将多个商品ID以逗号分隔,组成一个字符串存放在变量中,运用Vbscript中的函数 Split,对字符串进行拆分。
 ProductList=Session("ProductList")′取得Session中的值(N个商品ID)赋值给变量ProductList
 Products=Split(Request("Prodid"),",")′以逗号分割,赋值给变量Products(此时变量Products以数组形式存在)
 For I=0 To UBound(Products)  ′按数组的最大下标进行循环
 PutToShopBag Products(I),ProductList′ 调用过程并返回参数(商品ID,保存商品ID的变量 ProductList)
 Next
 Session("ProductList")=ProductList′ 将处理后的变量 ProductList的值写入到Session中
 Sub PutToShopBag(Prodid,ProductList)
 ′定义过程,只有调用时才可以使用
 If Len(ProductList)=0 Then′
 如果变量ProductList的值长度为0(等同与值为空)
 ProductList=Prodid′将变量ProductList赋值为商品ID,
 也就是第一次购物的记录
 ElseIf InStr(ProductList,Prodid)<=0 Then′  判断变量ProductList里面是否有商品ID的存在
 ProductList=ProductList&","&Prodid &""′多次购物,将多个商品ID以逗号分隔组成一个字符串赋值给变量 ProductList
 End If
 End Sub
 If Request(“update”) then
 Productlist=””‘清空购物车
 Products=split(Request(“Prodid”),”’,”)′  取得表单提交的商品ID并赋值
 对产生的数组Products运用循环,将多个商品ID以逗号分隔,组成一串字符串赋值给变量Productlist。
 Session(“Productlist”)=Productlist
 End if
 购物车程序是网站商城的一个小模块,也是必不可少的模块。对于电子商务网站来说,购物车的实现需要根据实际情况使用不同的技术。购物车其实就是简单的技术和复杂的过程所构成的,一定要在思路上理顺关系,然后运用技术解决。
参考文献
[1] 邹天思,孙明丽.ASP数据库系统开发完全手册[M].北京:人民邮电出版社,2006.
[2] 白金荣,邹国忠,沐士光.购物车功能的实现[J].科技信息,2009(15).
[3] 田晓玲.基于Session技术的购物车的设计与实现[J].北京化工职业技术学院学报,2009(1).

此内容为AET网站原创,未经授权禁止转载。