我试图多次将某个项目添加到购物车,但添加的项目doe不会出现在购物车中(如果已经在其中)。
在CI购物车中这是正常的,还是我搞砸了什么?
如何解决这个问题?
我希望多次添加相同的商品,以便更改第二件(特价商品)的价格。
我的cart_add函数在codeigniter手册中看起来像是示例,我认为不需要包含代码。
我在购物车类代码中发现,购物车行标识符($rowid
)是从id
和options
生成的md5校验和。我暂时向options
数组添加了这样的内容:
'options' => array('rid' => mt_rand(), ...)
但有更好的方法吗?我觉得我做错了。
答案 0 :(得分: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);
}
}