如何从Magento的报价中删除项目?

Mat*_*ias 3 magento magento-1.4

在结帐过程中,我有时希望以编程方式从会话的引用中删除项目.所以我尝试了这段代码:

$quote = Mage::getSingleton('checkout/session')->getQuote();
$all_quote_items = $quote->getAllItems();
foreach ($all_quote_items as $item) {
    $quote->removeItem($item->getId())->save();
}
Run Code Online (Sandbox Code Playgroud)

但是,在此循环之后,$quote对象中的项目列表仍然相同,即没有项目已被删除.

我在这里缺少什么想法?

使用Magento 1.4.1.1

Ren*_*art 14

尝试

$cartHelper = Mage::helper('checkout/cart');
$items = $cartHelper->getCart()->getItems();        
foreach ($items as $item) 
{
   $itemId = $item->getItemId();
   $cartHelper->getCart()->removeItem($itemId)->save();
} 
Run Code Online (Sandbox Code Playgroud)

http://www.magentocommerce.com/boards/viewthread/30113/

  • 这不是每次迭代都保存购物车吗?为什么要这么做?删除迭代中的项目并将购物车保存在其外部. (4认同)

小智 7

Magento 1.7.0.0版本中,您可以使用:

Mage::getSingleton('checkout/cart')->truncate()->save();
Run Code Online (Sandbox Code Playgroud)