网上购物车
出自 MBA智库百科(https://wiki.mbalib.com/)
- 网上购物车(Shopping Cart)
目录 |
什么是网上购物车[1]
网上购物车是顾客在进行网上购物时所必须使用的购物工具。它用来临时存储用户选择的商品,协助顾客从虚拟商场中选取商品、携带商品,并到虚拟的收银台结账。
网上购物车的功能[2]
- 允许购物者可以随时更新购物车中的商品,包括修改商品的数量或者删除某种己选择的商品等,同时所涉及的相关商品的信息也应该同步被修改。
- 自动累积客户购物的总金额,并按消费者选择的送货方式和资金结算方式计算相应的服务费用,最后显示该客户本次消费的总金额。
- 完成对数据的校验、确认,并将订单存档,同时对数据库进行实时更新。
- 完成和支付网关(paymentpteway)接口的接通。
- 作为网上电子商厦的购物车,由于整个电子商厦有几十甚至上百家网上商店,这些商店共用网站提供的同一个电子购物车软件系统,而且每个网上商店又都有各自的结算方式和支付方式,因而购物车还要求能根据不同的网上商店生成相应的订单,其中包括不同的支付方式、送货方式和规定的所购商品的送货区域等,具体表现为由若干张小订单构成一张商厦级的大订单。
- 由于电子商厦中还有如网上宾馆和饭店的预定业务等其他内容,所以,除了开展网上购物之外,还包括网上定餐和网上定房等,因而要求购物车能同时支持网上定餐和网上定房等业务。比如,针对客户消费者在网上定餐,购物车至少还应包含吃饭的人数、时间和地点等内容,对网上定房应包含客房标准、人数、时间、天数等;其他的业务还要视具体情况而定。
- 根据同一消费者在本商厦的不同网上商店购买的商品,还要按不同商店的规定分别进行核算和支付。
- 具有良好的扩展性和接口,以支持以后可能新开展的网上业务。
网上购物车的实现困难[3]
网上购物车的实现并非像以上解释的那样简单,实际上,网上购物车脚本是较难建立的脚本。究其原因,得先看看一个基本的Web浏览事务后面的支持机制。其一,Web的设计是无状态的,即所有Web服务器以同样方式处理URL请求,与前面的任何请求无关;其二,浏览器也是以无状态方式操作,采用与前面请求无关的方法来处理新的URL。例如,当用户启动自己的浏览器并请求一个URL(或者是一个HTML页面,或是一个CGI脚本)时,浏览器会找到服务器,建立一个连接,然后请求该URL,服务器处理浏览器请求并返回所需信息后断开连接,就会忘记刚才用户访问的情况。用户与服务器联系时,就像从没访问过服务器一样,并且每个请求都有一个应答,这就是无状态连接(Stateless Connection)。服务器不会记住用户,并且不能识别这是用户第1次访问还是第1000次访问。这种无状态连接的方式使得Web服务器处理得更快、更有效,也不需要维护请求URL的浏览器的信息,但也会导致许多令人讨厌的问题——网上购物车就是一个主要的例子。当顾客选中某个商品,将它放人自己的虚拟网上购物车时必须记住是什么商品,最后到虚拟收银台时,才知道应付多少钱。由于服务器不会记住这些信息,同样也不能让用户每次看见一个新页面时都重新输入已选择商品的信息,只能让脚本自己记录所有前面用户选择的商品信息。
网上购物车的实现技术[1]
为了实现网上购物车系统,解决Web应用程序的无状态连接,从而保存浏览器端的Web页面状态信息(网上购物车内商品信息),目前已经有隐式窗体字段方式和HTTP协议使用的Cookie方式等多种实现方法。
- (1)隐式窗体字段方式
网上购物车类型的脚本可通过隐式字段来解决无状态连接问题。这样当用户再次调用浏览器时,就能获得从上次调用后的隐藏信息。网上购物车中的所有商品都有三个属性:数量、价格和描述。当选中两斤橘子,每斤橘子1.5元,网上购物车将把“2/1.5/Orange;”字符串写入隐式字段,分号标志记录的结束,记录中的字段之间用斜杠分开,而且允许任意数量的记录汇集成一个长字符串。需要分离信息时,网上购物车简单地搜索分号和斜杠即可分解出选中商品的信息。隐式字段是不显示、用户无法修改的字段,网上购物车隐式字段窗体是由CGI程序处理其他窗体提交数据时动态创建的。服务器向浏览器发送信息时,CGI程序将所有商品信息以隐式字段方式写入脚本,用户提交包含隐式字段的窗体时,字段中原先存放的商品信息返回服务器,服务器分解出隐式字段中存放的商品信息,从而保存了用户网上购物车内的商品信息。
- (2)Cookie方式
Cookie是持续保存状态信息和其他信息的一种方式,信息在不同浏览器对话期间保存。Cookie由响应浏览器URL请求的服务器程序发送的信息组成,根据CGI程序的URL,发送的Cookie将信息保存在浏览器本地的Cookies.txt文件中,这个URL可以根据Cookie中包含的其他信息进行统一化。浏览器从Web服务器请求一个URL时,浏览器检索Cookies.真xt文件,查看某个Cookie的URL请求是否符合请求的URL。然后,浏览器在URL请求中发送符合请求的Cookie中包含的信息给Web服务器。在网上购物车的实现过程中,当用户选择了要购买的商品并放入网上购物车时,系统采用Cookie方式处理,将选择商品的信息以文本串的形式写入浏览器本地机的Cookies.txt中,当下一次激活网上购物车时,Cookie方式会从浏览器本地机的Cookies.txt中读取相应文本串的信息,从而获得了购物车中已选择商品的信息。