2012-12-08 67 views
1

我試圖多次添加一些項目到購物車,但添加項目doe的不出現在購物車,如果它已經在它。Codeigniter購物車 - 添加項目多次不增加數量

這是在CI車正常嗎,或者我搞砸了什麼?

如何解決此問題?

我想多次添加相同的商品,以便更改第二件商品的價格(特價商品)。

我的cart_add函數看起來像codeigniter手冊中的例子,我認爲沒有必要包含代碼。

我在購物車類代碼中發現,該購物車行標識符($rowid)是從idoptions生成的md5校驗和。我暫時在options陣列中添加了如下內容:

'options' => array('rid' => mt_rand(), ...) 

但是有沒有更好的方法?我覺得我做錯了。

回答

2

據我所知,你不能直接添加/更新購物車多次,使其數量增加。您需要通過對購物車內容進行循環來進行購物車更新。這是因爲CI總是會在插入的產品/物品上創建唯一的row_id。 The reason a unique ID is created is so that identical products with different options can be managed by the cart。爲了更清楚你可以參考這個article

在這裏,你可以做到及時更新您的購物車中物品:

foreach($this->cart->contents() as $item){ 
    if($item['id'] == 'your_product_id'){ 
     $item['qty'] = 3; 
     $this->cart->update($item); 
    } 
} 
+0

感謝澄清,但經過CI車類代碼分析,我把隨機數到選項數組迫使每個項目的「實例」的唯一標識符添加。我認爲這種方法會更快(無循環),並且無論如何我需要重複項目才能處理特價(同一產品的價格超過1)。 – Kamil

+0

@Kamil對於遲到的回覆感到抱歉。確實,使用你的方法會更快,因爲CI只會將它作爲不同的產品添加(儘管只有不同的選項)。這是基於你的需要。歡迎您:) – SubRed

相關問題