从购物车中删除给定产品ID的商品

use*_*789 1 magento-1.4 magento-1.5 magento-1.6 magento-1.7

我是magento的新手我试图在调用此事件时删除购物车中的商品checkout_cart_product_add_after当我尝试此代码时,没有什么可以做.任何身体帮助我.谢谢.

$myProductId=20;
$product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($myProductId);
$quote =  Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getItemByProduct($product);
if ($cartItems) {  $quote->removeItem($cartItems->getId())->save();}
Run Code Online (Sandbox Code Playgroud)

Sun*_*rma 6

ItemId(购物车中商品的ID)与其代表的产品的ProductId不同.尝试迭代购物车中的商品,直到找到包含要删除的ProductId的商品:

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

请尝试如上所述.