2015-10-13 67 views
2

我想从购物车中的所有产品获取数组。我想从购物车中删除所有产品。在此之后,我想根据一些条件再次在购物车中添加相同数量和选项的产品,这些数量和选项由客户再次选择。我做了以下。Magento:如何从购物车获取产品并再次添加它

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]); 

回答

1

试试这个:

$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); 
+0

哇,这是工作的罚款谢谢:)。但只有一个问题:(所有订单的订单总额相同,所有订单产品的产品价格均为“0.00”),您能帮我解决这个问题吗? –

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);

相关问题