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

摘  要: 購物車模塊是電子商務(wù)網(wǎng)站主要的核心模塊。介紹了常用的購物車的設(shè)計技術(shù),運用ASP中的Session對象實現(xiàn)購物車的功能,并給出了重要部分的源代碼。
關(guān)鍵詞: 購物車;Cookie對象;Session對象

1 購物車簡介
 購物車是電子商務(wù)網(wǎng)站與用戶交互的重要模塊,購物網(wǎng)站要完成購買轉(zhuǎn)化率,除了要有豐富、適合消費者需求的產(chǎn)品外,對于購物車的設(shè)計也要做到操作簡便、流程清晰、付款方便等特點。它的主要作用是臨時存放用戶的購物信息,用戶可以隨時增加商品、修改數(shù)量、刪除商品等操作。購物車設(shè)計得好與壞,直接決定了用戶購買的積極性,對于網(wǎng)站轉(zhuǎn)化率而言具有舉足輕重的意義。
2 購物車設(shè)計方法
 購物車的內(nèi)容其實就是客戶的訂單的信息存放在哪里,用什么技術(shù)來進(jìn)行存放?一般購物車的設(shè)計方法有以下三種:
 (1)Cookie對象設(shè)計方法
 Cookie是通過服務(wù)器端CGI、腳本或者客戶端腳本把信息保存在客戶機上,以便為服務(wù)器或客戶機再次使用這些信息提供方便。使用Cookie來保存購物車信息的優(yōu)點是:即使當(dāng)用戶不小心關(guān)閉了瀏覽器窗口,購物車中的信息也不會丟失,并且它占用很少的服務(wù)器端資源。缺點是:必須要求用戶端瀏覽器支持Cookie并且打開它,如果用戶端瀏覽器不支持Cookie或者沒有打開Cookie,則購物功能就不能實現(xiàn)。
 (2)Session對象設(shè)計方法
 Session對象用于存儲特定用戶會話所需的信息。Session對象是在每一位訪問者從Web站點或Web應(yīng)用程序中首次請求一個ASP頁時創(chuàng)建的,它將保留到默認(rèn)的期限結(jié)束或通過腳本設(shè)置中止的期限。這樣,當(dāng)用戶在應(yīng)用程序的Web頁之間跳轉(zhuǎn)時,存儲在Session對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。利用Session的功能,可以將購物信息(商品ID和購買數(shù)量)存儲到Session變量中。
 (3)數(shù)據(jù)庫的應(yīng)用設(shè)計方法
 將用戶的購物信息存入臨時表單的臨時文件中,當(dāng)用戶下訂單時再刪除臨時記錄并將信息保存在數(shù)據(jù)庫中。但這種方法需要頻繁地與數(shù)據(jù)庫或文件進(jìn)行數(shù)據(jù)交換,占用了大量的系統(tǒng)資源,對于大型網(wǎng)站,服務(wù)器的負(fù)擔(dān)過重,顯然這種辦法不合適。
以上三種購物車的設(shè)計方法,各有利弊,本文重點介紹Session實現(xiàn)“購物車”設(shè)計與實現(xiàn)。
3 Session購物車設(shè)計與實現(xiàn)

 


 (1)顯示購物車
?、倥袛噘徫镘囀欠駷榭铡榭战Y(jié)束,不為空則調(diào)用數(shù)據(jù)庫,在數(shù)據(jù)庫中顯示保存在Session中變量商品ID的數(shù)量、價格等。
 <%
 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
 %>
?、谂袛嘣摽蛻羰欠駷榈谝淮钨徫铩8鶕?jù)從表單接收的商品數(shù)量是否為0來判定。
 Quatity=Request.Form("Q_"& rs("ID"))    ′接收表單提交的商品數(shù)量
    下面表單部分介紹使用這種接收方法的目的:
    If Quatity <= 0 Then    ′判斷是否第一次購物
    (商品數(shù)量為什么會小于零,前面不是定義商品數(shù)量初始值為1了嗎?這是變量 Quatity 重復(fù)賦值的問題)
    ′雖然定義過商品的數(shù)量,但是若又接收表單提交的商品數(shù)量,如果是第一次購買商品的話,變量Quatity不會在接收表單時被賦予任何值
    ′Quatity=Session(rs("ID"))′對應(yīng)變量Quatity
進(jìn)行賦值(以前存儲的商品數(shù)量)
        If Quatity<=0 Then Quatity=1′  如果該商品是用戶第一次購買,數(shù)量為1
    End If
    Session(rs("ID"))=Quatity′將商品數(shù)量存入Session里
    Sum=Sum+rs("huiyuan")*Quatity′累加器的效果
 (新價格總記=舊價格總記+商品價格×商品數(shù)量)
 (2)購物車中的商品及數(shù)量的修改
 設(shè)計一變量Productlist,將多個商品ID以逗號分隔,組成一個字符串存放在變量中,運用Vbscript中的函數(shù) Split,對字符串進(jìn)行拆分。
 ProductList=Session("ProductList")′取得Session中的值(N個商品ID)賦值給變量ProductList
 Products=Split(Request("Prodid"),",")′以逗號分割,賦值給變量Products(此時變量Products以數(shù)組形式存在)
 For I=0 To UBound(Products)  ′按數(shù)組的最大下標(biāo)進(jìn)行循環(huán)
 PutToShopBag Products(I),ProductList′ 調(diào)用過程并返回參數(shù)(商品ID,保存商品ID的變量 ProductList)
 Next
 Session("ProductList")=ProductList′ 將處理后的變量 ProductList的值寫入到Session中
 Sub PutToShopBag(Prodid,ProductList)
 ′定義過程,只有調(diào)用時才可以使用
 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并賦值
 對產(chǎn)生的數(shù)組Products運用循環(huán),將多個商品ID以逗號分隔,組成一串字符串賦值給變量Productlist。
 Session(“Productlist”)=Productlist
 End if
 購物車程序是網(wǎng)站商城的一個小模塊,也是必不可少的模塊。對于電子商務(wù)網(wǎng)站來說,購物車的實現(xiàn)需要根據(jù)實際情況使用不同的技術(shù)。購物車其實就是簡單的技術(shù)和復(fù)雜的過程所構(gòu)成的,一定要在思路上理順關(guān)系,然后運用技術(shù)解決。
參考文獻(xiàn)
[1] 鄒天思,孫明麗.ASP數(shù)據(jù)庫系統(tǒng)開發(fā)完全手冊[M].北京:人民郵電出版社,2006.
[2] 白金榮,鄒國忠,沐士光.購物車功能的實現(xiàn)[J].科技信息,2009(15).
[3] 田曉玲.基于Session技術(shù)的購物車的設(shè)計與實現(xiàn)[J].北京化工職業(yè)技術(shù)學(xué)院學(xué)報,2009(1).

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。

相關(guān)內(nèi)容