View
247
Download
3
Embed Size (px)
Citation preview
第 15 章 建立網路商店• 15-1 網路商店的基礎• 15-2 網路商店的信用卡檢查• 15-3 網路商店的廣告管理• 15-4 網路商店的產品目錄• 15-5 資料庫版的購物車• 15-6 網路商店的訂單處理
15-1 網路商店的基礎• 15-5-1 什麼是網路商店• 15-1-2 網路上的付錢方式
15-1 網路商店的基礎• 網路商店是在 Internet 開一家虛擬店面,
網路商店的目的和一般商店相同,都是開店作生意,不過網路商店沒有實際的店面,只是模擬現實生活的方式讓使用者採購商品。
15-5-1 什麼是網路商店 - 商品目錄( Catalog)
• 網路商店沒有實際賣場的架位,也不會將商品實際的上架,它提供的是商品目錄,讓消費者瀏覽商品或查詢商品,然後檢視產品的詳細資料,以便模擬現實賣場架上的商品。
• 當然在網路商店並不能將商品真的放上網頁,取而代之的是顯示銷售商品的圖片,並且提供快速的商品查詢功能,使用商品分類目錄和關鍵字搜尋功能,以便消費者能夠快速瀏覽或找到所需的商品。
15-5-1 什麼是網路商店 - 購物車( Shopping Cart)
• 購物車的英文為 Shopping Cart ,有些國內網站稱為購物袋,也就是在現實賣場或超級市場採購時,方便儲存選購商品的那輛購物車。
• 網路商店依然保留現實生活中的那輛車,可以讓消費者在網路商店將選購的商品丟入車中,只是並非將商品拿起來放入購物車,而是將商品資料和數量記錄下來,然後提供功能隨時可以檢示選購商品的清單,這個功能稱為網路商店的購物車。
15-1-2 網路上的付錢方式• 在規劃網路商店的開店計劃時,需要考
慮如何從網路上收到客戶付款,這種網路上的金錢交易稱為電子商務,因為網路並沒有辦法使用現金交易,目前電子交易的主要方式是採用信用卡付款。– SET 電子交易– SSL( Secure Socket Layer )交易方式
15-2 網路商店的信用卡檢查• 信用卡的卡號並非流水號碼,它是特殊規則和演算法產
生的一組號碼,從卡號就可以判斷信用卡種類,是否為合法發出的信用卡卡號,信用卡的相關資料,如下所示:– 信用卡種類:卡號的前四碼就可以判斷出屬於 Visa、Master
Card、Discovery或American Express 等信用卡。– 信用卡卡號:程式可以使用數學公式檢查 16 碼的卡號是否為
合法的卡號。– 有效期限:信用卡擁有發卡銀行指定的有效期限,即 GOOD
THRU 字串後的日期,一張有效的信用卡刷卡日期並不能超過卡上的日期。
15-3 網路商店的廣告管理• 15-3-1 AdRotator 控制項的網頁廣告• 15-3-2 資料庫監控的網路廣告
15-3-1 AdRotator 控制項的網頁廣告 - 說明
• AdRotator 控制項是 ASP.NET 程式的橫幅廣告管理元件,這是一種 Web 控制項,屬於 System.Web.UI.WebControls 名稱空間。 AdRotator 控制項使用亂數隨機選擇顯示的廣告圖片,每一張圖片是一個圖片超連結連結到目的網址。
15-3-1 AdRotator 控制項的網頁廣告 -XML 設定檔
• AdRotator 控制項使用 XML 文件檔案記錄顯示圖片和超連結等相關資訊,其內容如下所示:<?xml version="1.0" encoding="Big5"?><Advertisements> <Ad> <ImageUrl>images/banner1.gif</ImageUrl> <NavigateUrl>http://www.hinet.net</NavigateUrl> <AlternateText> 中華電信 </AlternateText> <Keyword>ISP</Keyword> <Impressions>5</Impressions> </Ad>……………………</Advertisements>
15-3-1 AdRotator 控制項的網頁廣告 -AdRotator 控制項的使用
• 在 ASP.NET 程式只需使用 AdRotator 控制項標籤和設定相關屬性,就可以在網頁顯示 AdRotator 控制項的網頁廣告,如下所示:<asp:AdRotator id="AdRotator1" runat="Server"
KeywordFilter="ISP"
AdvertisementFile="Ch15-3-1.xml"
OnAdCreated="AdCreated_Event"
BorderWidth="2"/>
15-3-2 資料庫監控的網路廣告 - 說明
• AdRotator 控制項只能以亂數隨機選擇顯示的廣告圖片,並沒有辦法記錄顯示廣告圖片的次數,或是多少位使用者曾按下圖片超連結和限制廣告圖片的顯示期限。
• 只需使用資料表儲存廣告圖片的資料,並且新增欄位記錄圖片顯示和按下的次數,這是一種資料庫監控的廣告圖片管理。
15-3-2 資料庫監控的網路廣告 - Banners 資料表
欄位名稱 資料類型 大小 說明
ID 自動編號 廣告圖片的編號
URL 文字 50 圖片超連結的網址
CurrDisplays 數字 目前顯示圖片的次數
MaxDisplays 數字 圖片最大的顯示次數
CurrClicks 數字 圖片超連結按一次的次數
MaxClicks 數字 圖片超連結最大允許按一次的次數
EndDate 日期/時間 圖片顯示的期限
URLName 文字 50 超連結的名稱
FigureName 文字 50 廣告圖片的網址
15-4 網路商店的產品目錄• 15-4-1 分類顯示產品目錄• 15-4-2 分頁顯示產品目錄
15-4 網路商店的產品目錄• 在網路商店只需使用 Data Binding技術,就可
以在 ASP.NET 程式建立 DropDownList 控制項的產品目錄選單,內含產品目錄分類,選擇分類就可以顯示各分類的產品資料。
• 如果想在網路商店建立產品目錄,我們需要建立產品目錄資料表 Catalogs ,其欄位如下:
欄位名稱 資料類型 大小 說明
CatalogID 文字 3 產品目錄的編號
CatalogName 文字 30 產品目錄的名稱
15-4-1 分類顯示產品目錄 - 分類
• 分類和查詢功能都是使用 buildSQL函數建立 SQL指令字串,如下所示:
Function buildSQL() As String Dim strSQL, catalogID, keyWord As String catalogID = DropDownList1.SelectedItem.Value keyWord = search.Text If keyWord = "" Then If catalogID <> "000" Then strSQL = "SELECT * FROM Products WHERE CatalogID='" & _ catalogID & "'" Else strSQL = "SELECT * FROM Products" End If
15-4-1 分類顯示產品目錄 - 查詢
• 如果消費者輸入查詢的關鍵字,此時的 SQL 指令是使用LIKE運算子同時查詢 ProductName、 ProductNo和ProductNote欄位,如下所示:
Else strSQL = "SELECT * FROM Products WHERE (ProductName LIKE '%" & _ keyWord & "%' OR " strSQL = strSQL & "ProductNo LIKE '%" & keyWord & "%' OR " strSQL = strSQL & "ProductNote LIKE '%" & keyWord & "%') " If catalogID <> "000" Then strSQL = strSQL & " AND CatalogID='" & catalogID & "'" End If End If Return strSQLEnd Function
15-4-2 分頁顯示產品目錄• 如果網路商店目錄的商品眾多,需要分
頁顯示時,我們可以改用 DataSet 物件建立 Data Binding ,然後啟動 DataGrid 控制項的分頁顯示功能,以分頁方式顯示目錄的圖書資料。
15-5 資料庫版的購物車• 15-5-1 將選購的商品存入購物車• 15-5-2 檢視購物車的內容• 15-5-3 刪除和更新購物車的商品
數量
15-5 資料庫版的購物車 -Items資料表
• 在建立網路商店的商品目錄功能,當使用目錄或查詢功能找到有興趣的商品後,可以使用資料庫將選購商品儲存起來,每一筆選購的商品就是一筆記錄。欄位名稱 資料類型 大小 說明
ItemNo 自動編號 選購商品的項目編號
UserID 文字 10 使用者編號
ProductNo 文字 6 產品編號
ItemName 文字 30 選購商品的名稱
ItemPrice 數字 選購商品的定價
ItemQuantity 數字 訂購數量
15-5-1 將選購的商品存入購物車
• DataGrid 控制項新增 ButtonColumn 控制項的超連結,按一下觸發 ItemCommand事件執行 AddToCart事件處理程序,將產品放入購物車,如下所示:
Sub AddToCart(sender As Object, e As DataGridCommandEventArgs) If e.CommandSource.CommandName = "addToCart" Then Dim order, no , name, price, strSQL As String ' 取得訂單資料 no=DataGrid1.DataKeys.Item(e.Item.ItemIndex).ToString() name=DataGrid1.Items(e.Item.ItemIndex).Cells(1).Text price=DataGrid1.Items(e.Item.ItemIndex).Cells(2).Text.Substring(3) ' 取得訂單號碼 Dim Cookie As HttpCookie = Request.Cookies("ShoppingCart") ' 建立 SQL新增資料表記錄………………… End IfEnd Sub
15-5-2 檢視購物車的內容• 資料庫版的購物車只是使用 DataGrid 控制項以表格顯示 Items 資料表的記錄資料。
• ASP.NET 程式使用 DataSet 物件建立 DataGrid 控制項的 Data Binding ,使用迴路計算購物車選購商品的總價,如下所示:
For Each objDataRow in objDataSet.Tables("ShoppingCart").Rows
Total += objDataRow("ItemPrice") * objDataRow("ItemQuantity")
Next
15-5-3 刪除和更新購物車的商品數量 - 說明
• 在購物車顯示的選購商品,如果不想購買,只需勾選核取方塊,如果想多買幾本,只需重新輸入數量,當按上方【更新 】 圖 片 按 鈕 後 , 就 可 以 執 行UpdateShoppingCartDatabase 程序更新資料表 Items 的記錄資料。
15-5-3 刪除和更新購物車的商品數量 -更新
• UpdateShoppingCartDatabase 程序使用更新DataSet 物件的方法來更新 Items 資料庫,使用迴路比對DataSet 物件和 DataGrid 控制項Data Binding 的資料,如下所示:For i = 0 To DataGrid1.Items.Count - 1 Dim objQuantity As TextBox = DataGrid1.Items(i).FindControl("quantity") Dim objRemove As CheckBox = DataGrid1.Items(i).FindControl("remove") Dim quantity as Integer Try ' 錯誤處理 quantity = Convert.ToInt32(objQuantity.Text) If quantity <> Convert.ToInt32(DataGrid1.DataKeys(i)) OR _ objRemove.Checked = True Then …………….. Catch msg.Text = "資料輸入錯誤 ........" End TryNext
15-6 網路商店的訂單處理• 網路商店購物車的訂單處理部分可以分成兩個部分,
在第一個部分是輸入付款和選擇送貨方式,也就是信用卡檢查。
• 第二個部分是產生訂單,也就是新增一筆資料表的訂單資料,此時需要一個訂單編號,以上一節資料庫版的購物車為例,建議只是將 Items 資料表當作暫存資料表,以使用者編號為主鍵儲存選購的商品。
• 等到消費者結帳時,表示準備下訂單後才產生訂單編號,將選購商品由 Items 資料表新增到訂單資料表。