天天看點

電商購物車二:購物車資料與實作                                                     1                                                  2

購物車的主要作用是臨時存儲要購買的商品,然後在結算或下訂單時删除購物中的所有資料。購物車的主要資料結構包括:使用者ID,産品ID,産品規格ID和産品數量。

字段 類型 說明
Shop_item_ID Varchar2(36) 購物項編号 主鍵
User_ID Varchar2(36) 使用者編号 外鍵
ProductID Varchar2(36) 商品編号 外鍵
Count Number(4) 數量
Price number(8,2) 價格
ProductName Varchar(30) 商品名

購物車有離線購物車、線上購物車兩種。在電子商務産品中,對于是否需要在購物車中同步不同終端的資料,對應兩種不同的購物車實作方式:

                                                     1

不需要多終端同步購物車資料,且購物車資料不重要的情況下,可以選擇将購物車的所有資料緩存在使用者本地Session,如離線購物車。

這種方法的優點在于:

不需要伺服器參與,可以減輕伺服器壓力

在使用者體驗中,購物車的資料重新整理更快。

缺點在于:

由于資料不在雲伺服器上,是以當使用者更改終端裝置或清除緩存時,購物車中的資料會丢失。

以這種方式實作購物車的場景:

從使用者行為的角度來看,當使用者想要購買某個商品時,使用者将直接下訂單進行結算,并且該過程不需要購物車參與;即使使用者首先将産品放入購物車中,然後進入購物車進行結算,或者放棄交易。在下次使用者再次購買時,先進入購物車購買商品的機率非常低。

通常他還是會選擇重新進入産品詳細頁,再次下訂單付款。這種場景下,購物車中的資料并不是非常重要,是以,購物車的資料可以儲存在本地緩存。

也許有人會說:現在是大資料環境,誰擁有資料誰就擁有使用者和價值。是以,如果購物車存儲在本地,那麼平台就無法獲得這些資料。

可是,我們是否想過,平台需要什麼樣的使用者購物資料?

拿這些使用者購物資料做什麼呢?

如果使用者在購物車中的商品自己都不需要,平台拿到後又能有多少用處呢?

是否需要對使用者的訂單(付費或待定)資料更重視呢?

以使用者的訂單資料來分析使用者的行為是否更準确,而不需要使用購物車中的資料?

歪樓了,我們繼續購物車實作的讨論。

小程式的資料緩存,官方己經聲明永久存儲。是以,應算是儲存在緩存中的購物車資料,隻要使用者沒有主動清理資料或更改手機登入,這些資料就不會丢失。

                                                  2

需要在多終端裝置上同步的資料,資料要存儲在雲伺服器上。 

這種方法的缺點在于:

每次進入購物車或進行購物時,都需要加載雲伺服器,這在一定程度上将增加伺服器壓力,增加使用者的等待時間。

上面的兩種方法,每一種都有優點和缺點。實際上,在實施項目時,選擇哪種方法是基于産品經理或客戶的實際需求。

電商購物車二:購物車資料與實作                                                     1                                                  2

在方法的使用時,可以不用必須選擇某一種方式,完全可以:使用者不登入就添加商品到本地購物車;使用者登入後,連帶使用者狀态将Session中的資訊存入伺服器資料庫,将購物車内的東西持久化存儲。

但要特别說明的是,把購物車資料存入本地時,要注意:

Session:代表一次有效會話(在使用者不關閉浏覽器的前提下,預設存在30分鐘;使用者關閉浏覽器再次打開後,未登入使用者的購物車将清空。)

這時,我們要在需求中明确,如何用Session存儲購物車内資料的兩個重要問題:

一、如何準确區分不同的商品

二、如何準确标記進入購物車的商品?

區分不同的商品,自然是使用商品ID。通過商品ID,我們可以查詢到商品詳情,如:價格、名稱等等。這樣就能夠區分出不同使用者的購物車資料。

但要準确标記進入購物車的商品,僅僅用商品ID就不夠了,必須還要同時記錄同一商品的購買數量(購買數量并不存在于商品詳情)。這樣,才能對進入購物車的商品與貨價商品進行區分。

以上都是購物車實作時的細節需求,如有疑問歡迎交流!

繼續閱讀