Magento:如何从购物车中获取产品并重新添加

时间:2015-10-13 07:19:44

标签: php magento product cart

我想从数组中购买购物车中的所有产品。我想从购物车中删除所有产品。之后,我想根据某些条件添加相同数量的产品和客户在购物车中再次选择的相同产品。我做了以下事情。

1)将所有产品保存在购物车中可用的阵列中。使用以下代码。

$quote = $this->getQuote();

$i=0;

foreach ($quote->getAllItems() as $item) {
        $bufferItems[$i] = $item;
        $i++;
}

2)使用以下代码从购物车中删除所有产品。

foreach ($quote->getAllItems() as $item) {
        $quote->getItemsCollection()->removeItemByKey($item->getId());
}

到目前为止一切正常。

现在我不知道如何将产品添加回购物车......任何人都可以帮助我。

我做了以下无法正常工作。

1) $quote->addProduct($bufferItems[1]);
2) $quote->addItem($bufferItems[1]);

2 个答案:

答案 0 :(得分:2)

试试这个:

$cartItems = Mage::getModel("checkout/cart")->getItems();

$cart = Mage::getModel('checkout/cart');

$cart->init();

 foreach($cartItems as $item) {
   $_product = Mage::getModel('catalog/product')->load($item->getProductId());
   $cart->addProduct($_product, array('qty' => $item->getQty()));
 }

 $cart->save();
 Mage::getSingleton('checkout/session')->setCartWasUpdated(true);

答案 1 :(得分:1)

请在您的代码中尝试以下代码

$params = array(
    'product' => 164,
    'qty' => 2,
);
 
$cart = Mage::getSingleton('checkout/cart');
 
$product = new Mage_Catalog_Model_Product();
$product->load(164);
 
$cart->addProduct($product, $params);
$cart->save();
 
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
 
$message = $this->__('Custom message: %s was successfully added to your shopping cart.', $product->getName());
Mage::getSingleton('checkout/session')->addSuccess($message);