1

いくつかのアイテムをカートに複数回追加しようとしていますが、追加されたアイテムがカートにすでに含まれている場合、カートに表示されません。

これはCIカートでは正常ですか、それとも何かを台無しにしましたか?

これを回避する方法は?

2枚目の価格を変更するために、同じアイテムを複数回追加したい(特別オファー)。

私のcart_add関数はcodeigniterマニュアルの例のように見えますが、コードを含める必要はないと思います。

カートのクラスコードで、カートの行識別子()はとから生成されたmd5チェックサムであることがわかりまし$rowidた。私は一時的に次のようなものを配列に追加しました:idoptionsoptions

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

しかし、もっと良い方法はありますか?私はそれを間違っていると感じています。

4

1 に答える 1

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。より明確にするには、この記事を参照してください。

ここで、カートアイテムを更新することができます。

foreach($this->cart->contents() as $item){
    if($item['id'] == 'your_product_id'){
        $item['qty'] = 3;
        $this->cart->update($item);
    }
}
于 2012-12-08T13:10:44.770 に答える