2010-12-18 31 views
1

在構建電子商務平臺時,我遇到了設計問題。我正在使用內置的CodeIgniter的cart類。它會將所有購物車信息存儲在會話中。假設購物車已經充滿了產品和用戶點擊結帳。我應該何時在數據庫中存儲訂單?在那之後,點擊或經過幾個步驟收集信息並在會話中停留?如何處理其他功能,如不同的運輸方式?我應該先將它添加到籃子並獲得更多(禮品地址)進行會話嗎?我不想將它存儲在數據庫中,因爲禮品地址和訂單之間的關係是需要的,因爲我不知道訂單的ID是什麼。我感到困惑:)另外,我認爲保持購物車意識到運輸方式和額外購買的服務(通過選擇禮品地址有額外的費用)至關重要,因爲購物車的內容就像收件人一樣?基於CodeIgniter的電子商店,運輸和禮品地址設計問題

簡而言之,處理結帳的最佳做法是什麼?

回答

3

您可以使用"options" value of the cart將附加屬性添加到您的購物車項目(如發貨選項)。

$data = array(
      'id'  => 'sku_123ABC', 
      'qty'  => 1, 
      'price' => 39.95, 
      'name' => 'T-Shirt', 
      'options' => array('shipId' => '1234abcd5678efghi') 
     ); 

$this->cart->insert($data); 

請記住,您不需要數據庫中的增量ID;您可以使用uniqid()com_create_guid()創建唯一的ID。

由於您要求意見...您應該將不同的送貨地址存儲在與用戶相關的單獨地址簿表格中,而不是加入訂單。當您最終創建訂單作爲結賬的一部分時,您應該將所有數據(地址數據和相關產品數據)複製到單獨的訂單表中,因爲產品數據和地址簿數據可能會更改;訂單數據應該只寫一次,從不更新,除了狀態。訂單保存後,您可以刪除會話數據。

相關問題