购物车
购物车是电子商城必备的功能,属于一种有状态的数据。一个完善的电子商城网站,其购物车的设计是至关重要的。
1、简介
电子商务是指在互联网上销售产品、商品和服务的商业过程。它最简单的形式就是允许将产品目录放置在互联网服务器上,以便让客户和潜在客户访问你的站点,然后发出订单。
购物车图案
一般来说,必须使用电子商务站点满足符合客户的传统购物习惯需求。即当人们需要通过电子商务站点购买物品时,需要提供建立他们想要的商品和服务的列表,通常这个列表就被称为购物车。
2、购物车的功能
在电子商城中,客户应该可以在浏览商品目录时,将要买的商品放进“购物车”中,或者将“购物车”中的商品取出来,最后推着“购物车”去结账。所以,购物车实现的主要功能包括:显示、统计“购物车”中的商品,可在“购物车”中添加、删除商品,清空购物车以及修改购买物品的数量。
3、设计目标
允许查看、修改的对象;
持续性,应记住前一次会话的内容;
与客户相对应;
允许商品加入购物车或从购物车中删除;
可容纳很多甚至无限多的商品。
4、购物车的程序设计
明确订单数据存放的位置
第一,将这些数据存放在服务器上的某个文件中,或者数据库中的某一张表里面;
第二,将这些数据存放在服务器的内存中;
第三,将数据存放在客户端,等到客户确认订单后,再将存储在上述未知的数据写入数据库中。
以上三种方法各有利弊:第一种方法简单直观,但是频繁存取文件、读取修改数据库服务器资源消耗大,速度慢(数据库的连接和操作是相当耗费系统资源的)。第二种方法对服务器配置要求较高,尤其是内存,如果服务器的内存充足,那么速度极快;但是如果客户访问量比较大,即使服务器的内存再大,也不能满足实际要求。第三种方法对服务器的资源消耗最小,但是由于需要在服务器和客户端来回传递数据。速度也很慢,而且购物车的内容保存在客户端,可能存在安全问题。
Session对象的使用
在动态网页技术中,Session对象是用来定义、声明、设计用户层(SessionScope)的变量、对象和事件处理函数,并且Session对象的信息只是用于同一位用户。可以利用Session对象定义用户层的变量、声明用户层的对象、设计用户层的事件处理函数等。为了将每一位客户的购物车数据保存在不同的服务器内存空间中,理想的方式就是使用Session对象。
Session对象可以存储特定用户的用户会话所需的信息,它的一个突出的优点就是可以跨页面使用任何变量,当用户在应用程序的页面之间跳转,存储在Session对象中的变量不会清除。绝大多数情况下,可以使用Session对象作为全局变量如果该用户还没有会话,则Web服务器将自动创建一个Session对象。当会话过期或者被放弃时,服务器将终止该会话。电子商城中用户可以在不同页面选择不同的商品,所有的商品编号、名称、价格等信息都可以保留在Session对象中,知道用户去交款购买物品或者取消购物清单,Session对象中的数据才被消除或者设置为超时状态。在一个新用户会话建立之前,服务器将创建一个Session对象。该对象在用户机器上创建一个唯一的标识符,以之区别个用户的会话。该标识符按照COOKIE方式通过服务器端CGI、脚本、或者客户端脚本把信息保存在客户机上的,以便为服务器或客户机再次使用这些信息提供方便。即使当用户不小心关闭了浏览器窗口,购物车中的信息也不会丢失,并且它占用很少的服务器资源,但用户浏览器属性必须设置为支持Cookie才能使用Session对象存储信息。
设置购物车保存界限
如果仅仅用Session对象保存购物车内容,Session对象保存的数据在服务器的内存中;当访问量比较大的时候就会消耗掉服务器内存,所以,需要设置购物车保存的界限,当超过这个界限时,就需要将这些数据存放到文件或数据库中,存放到文件还是数据库需要根据这个系统的访问量,当访问量中等时,建议采用文件存放数据,文件的特点是当数据量不是特别大的时候,存取速度比较快,添加、删除、检索都比较方便,特别是当采用XML这种结构良好的文件来保存数据,XML文件的结构比较规范、清晰,却存取XML文件的应用程序接口比较多,比使用普通文件的存取速度要快很多,使用通用的应用程序接口对XML文件进行存取不会破坏文件的结构,当采用自己编写的程序来存取普通文件时,速度较慢,却可能破坏文件的结构,造成数据丢失;但是,当访问量特别大时,用文件存放购物车状态就比较慢了,这时用数据库来存放购物车状态较好,用数据库存放的特点是,采用了很多存取访问的优化,却数据的存取、查找速度较快,数据的结构比使用XML文件更规范、清晰,对存取的数据有着严格的格式控制。用数据库存放数据存在的问题就是存取数据之前要连接数据库,存取完成后要是发那个连接,这都比较消耗时间,若每次存取都如此,那么存取的速度就是个大问题了,但是现在的很多数据库访问技术都提供了连接池技术,使用连接池每次访问数据库不需要先连接,然后释放,可以直接使用连接池里的数据连接,这时的使用数据库存放购物车状态的存取速度也比较快。目前很多主流的购物网站都是采用Session对象和数据库来保存购物车的状态。
5、专利保护
美专利商标局将确认亚马逊1-Click专利
2010年3月12日凌晨消息,据国外媒体报道,美国专利商标局将确认亚马逊颇具争议的“1-Click”专利。在过去几年时间里,亚马逊的“1-Click”专利一直都面临诸多批评,许多业界人士质疑如此广泛的技术是否应被允许申请专利。这项专利的内容是,网络购物者在输入支付及送货信息后,仅需点击一下鼠标就可进行购买活动。
专利商标局对亚马逊“1-Click”专利的复审始于2006年,当时新西兰的一位演员对这项专利提出了质疑。在复审过程中,该局曾否决了亚马逊有关该专利的多种主张,但据日期标注为3月2日的“颁发复审凭证意愿通知书”文件显示,专利商标局对亚马逊在2007年提交的修正案感到满意,这一修正将“购物车模式”作为许多有关该专利之主张的基础。密苏里大学法学院教授、专利法博客Patently-O编辑丹尼斯•克罗齐(DennisCrouch)则指出,亚马逊“修正后的专利仍相当广泛——尤其是由于领先的零售商业模式仍在使用购物车。”他表示,经亚马逊修正后的“1-Click”专利是“一个略微缩窄的版本,但从根本上来说仍与修正前版本相同”。
亚马逊在1997年申请注册“1-Click”专利,称其为一个“经由通信网络下购买订单的方法和系统”,并将公司创始人兼CEO杰夫•贝佐斯(JeffBezos)列为发明人之一。此前,亚马逊曾利用这项专利对图书零售商Barnes&Noble提出起诉,并授权许可苹果使用该专利。这项专利定于2017年到期。
苹果的"购物车"成专利流氓新目标
2013年11月22日消息,PatentlyApple报道表示,德州专利流氓eDekka以一纸诉讼将苹果公司告上法庭,称苹果公司侵犯了他们的专利6,266,674。eDekka在诉讼文件中表示,苹果公司在网站上使用的“购物车”功能是他们的技术。和其他专利流氓一样,eDekk在同一天分别将赛门铁克公司(SymantecCorporation)以及*互动传媒公司(LibertyInteractive)告上了法庭。
2011年的一项研究显示,因为专利流氓各科技公司蒙受了290亿美元的损失,而2012年专利流氓诉讼的问题已经严重到难以控制的地步。迄今苹果公司仍然是专利流氓的头号目标。就在本周早些时候,TLICommunications就将苹果告上了法庭,称苹果旗下的iCloud、iPhoto、iMovie以及照片流服务侵犯了他们的持有专利。
美国最高法院:不再受理互联网购物专利案
2014年1月14日,据路透社网站报道,美国最高法院表示,将不再受理互联网购物技术专利案件。一系列案件因“购物车专利”而起,而这一专利本身的发明创造性并不明显,故美国法院最初了这一决定。
一些案件备受关注,包括软件公司Soverain指控在线购物网站Newegg,侵犯其三个与“购物车专利”相关专利。总部位于芝加哥的Soverain公司,与许多公司有相似的法律诉讼,这其中还包括J.Crew集团(J.CrewGroup),梅西百货(Macy'sInc)威廉姆斯•索诺玛公司(Williams-Sonoma)。
Soverain在美国德州东部地区法院,赢得了对Newegg的诉讼,但在美国联邦巡回上诉法院裁定中败北——被判三项在线购物专利无效。
在向美国最高法院提交的文件中,Newegg认为,应当对联邦巡回法院的决定予以支持,并称:“‘购物车专利’只是将购物车的常识概念应用于互联网。”