胡必波 王素芳 .廣州工商職業技術學院 50850;.廣東白云學院 50450
基于.NET電子商務網站購物車功能設計與實現
胡必波1王素芳21.廣州工商職業技術學院 510850;2.廣東白云學院 510450
本文結合ASP.NET 2.0技術提供的個性化用戶配置功能,剖析了實現電子商務網站中購物車功能關鍵技術,介紹實現該功能設計方法與技巧。
電子商務;購物車;個性化用戶配置
電子商務是指整個事務活動和貿易活動的電子化,它通過先進的信息網絡,將事務活動和貿易活動中發生關系的各方有機地聯系起來。電子商務網站實際上就是銷售企業為消費者提供的網上購物商城,在該網站中用戶可以購買任何商品,而管理員可以對商品和訂單等信息進行管理。購物車功能的實現是電子商務網站的關鍵,這里結合ASP.NET 2.0技術分析電子商務網站中購物車功能設計技巧。
電子商務網站最常見的是購物車功能。只要用戶按照提示輸入用戶名和密碼,就能夠登錄站點。當用戶登錄站點之后,應用程序將顯示待銷售商品列表和購物車信息。如圖1所示,左半部分顯示的是待銷售商品列表,右半部分顯示的購物車信息。用戶可以單擊待銷售商品列表中的“購買”按鈕,將商品添加到購物車中。同時,也可以單擊購物車信息列表中的“清除”按鈕來刪除其中的商品。購物車可以對商品總價進行計算。當關閉應用程序并重新登錄站點時,頁面將顯示用戶上次訪問應用程序時購物車操作的結果。

圖1 購物車功能演示

圖2 購物車類圖
實現購物車功能。由應用程序需求可知,購物車主要具有添加和刪除商品信息、計算車內商品總價等功能。這些功能只需要一些簡單的方法就能夠實現。訪問、存儲和顯示購物車數據的機制。我們在web.config的<profile>配置節為應用程序定義了一個用戶配置屬性,其名稱為ShoppingCart,數據類型為ShoppingCart。類型ShoppingCart是一個復雜數據類型,它的主體是購物車類。另外購物車是一個自定義數據類型,為了能夠實現存儲,必須注意設置該類實例對象的序列化。這樣,購物車中的數據將通過Profile屬性得以訪問和存儲。例如,訪問ShoppingCart屬性數據,可以調用Profile. ShoppingCart。待售商品列表數據來自SQL Serevr 2000示例數據庫Northwind的數據表Products。可以使用簡單的SQL語句結合數據源控件SqlDataSource來獲取數據。然后,將這些數據集合綁定到GridView數據綁定控件上顯示出來。為了顯示購物車數據,必須使其具備與數據綁定控件集成的能力,同時要考慮如何才能更容易地實現添加、刪除數據等功能。這里使用了哈希表(HashTable)來存儲購物車內數據。哈希表是System.Collections名字空間提供的一個容器,用于處理類似key/value的鍵值對。該類提供了簡單的添加、刪除和檢索數據方法。使用哈希表的另一原因是使用Hashtable類的Values屬性可以返回ICollection類型的數據集合(也就是購物車中存儲的商品數據)。該數據集合可以輕松與GridView控件綁定在一起,并將數據顯示出來。
ShoppingCart.cs的文件定義類的類圖如圖2所示。
CartItem類以面向對象的方式構建了購物車中的單條商品對象。該類包括4個屬性和一個構造函數。這四個屬性分別是ID、Name、Price和Quantity。前三個屬性分別對應Products數據表中的ProductID、Product Name和UnitPrice列,另外一個屬性Quantity表示用戶購買該商品的數量。利用CartItem類構造函數能夠生成一個表示某商品的對象實例。
ShoppingCart類主要實現購物車中商品數據的添加和刪除功能。該類包括一個Hashtable類型的字段_ _CartItems,以哈希表方式存儲購物車內所有商品數據。ShoppingCart類還包括兩個屬性,一個是表示返回購物車所有商品數據的ICollection類型的CartItems屬性,另一個是用于獲得商品總價的屬性Total。另外,該類還實現了兩個方法,一個是向購物車中添加商品數據的方法AddItem,另一個是從購物車中刪除指定商品的方法RemoveItem,分別使用了Hashtable類提供的Add和Remove方法。
當匿名用戶訪問某電子商務網站時,應用程序首先不是為用戶展示琳瑯滿目的商品,而是硬生生的顯示用戶注冊界面。那么某些用戶不會在選擇商品之前,花費寶貴的時間和經歷來注冊。即使每個匿名用戶都注冊并登錄站點了,也并非所有注冊用戶都會購買商品。這種情況的發生,不僅需要應用程序處理大量的用戶注冊任務,而且必然在數據庫中產生大量無用數據。解決以上問題的理想方式是,首先,站點允許匿名用戶登錄,并使用購物車功能選擇商品,然后,用戶可以進行注冊并使用注冊帳號登錄站點。這時候,購物車中顯示的是用戶在匿名方式下所選擇商品的列表。換句話說,匿名用戶購物車中的商品列表,在從匿名用戶轉向注冊用戶的過程中,平穩的轉移到了注冊用戶的購物車中。如圖3所示。

圖3 匿名用戶購買商品
由于允許匿名用戶訪問,必須在在web.config配置文件中啟用應用程序的匿名驗證功能,即將anonymousIdentification屬性設為true。然后在ShoppingCart用戶配置屬性中設置allowAnonymous="true"。這樣應用程序就會存儲匿名用戶的ShoppingCart屬性數據。
在應用程序中可以增加Global.asax文件,相關代碼如下。

//獲取匿名用戶的Profile對象

這里關鍵是實現ProfileModule類中的MigrateAnonymous事件。該事件在包含用戶配置屬性數據的匿名用戶登錄時發生,對應的事件處理程序是Profile_ MigrateAnonymous。與其他事件處理程序不同的是,該事件處理程序必須在Global.asax文件中定義。這里該事件主要實現了3個任務:一是從匿名用戶的Profile屬性中復制相關信息,并將其存儲到注冊用戶的Profile屬性中;二是為減少冗余數據,刪除aspnetdb數據庫中存儲的匿名用戶的用戶配置;三是刪除匿名用戶標識,以避免再次為已經登錄的用戶激發MigrateAnonymous事件。
購物車技術是電子商務網站關鍵技術之一,其功能設計實質上是使用ASP. NET 2.0提供的個性化用戶配置功能,將配置信息與單個用戶關聯,并采用持久化方式存儲信息。配置信息可以是任何與用戶相關的信息,所存儲的配置信息可以是任何數據類型的對象,單個用戶可以是注冊用戶,也可以是匿名用戶,持久化存儲采用SQL Server數據庫方式,并且無需自行創建和維護該數據庫,由ASP.NET 2.0自動完成。
[1]包空軍,劉海燕.ASP.NET電子商務系統設計與實現[J]. 福建電腦,2007,02
[2]羅愛群,熊麗婷,張永紅. 基于Web的電子商務開發技術及系統設計[J].商場現代化,2008,10
[3]張應征, 成新紅.電子商務網站中購物車及訂單管理功能設計研究[J]. 企業技術開發,2010,11
10.3969/j.issn.1001-8972.2012.07.054