有没有办法可以从购物车中删除商品。实际上我有动态Grouped产品,我需要允许用户购买分组产品内的项目。现在当有人只选择分组产品下的项目时,它允许购买该产品并需要停止或从购物车中删除组产品。
我曾尝试使用checkout_cart_product_add_after Observer并使用下面的逻辑,但它不能正常工作
$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;
}
}
return;
请帮帮我们。
提前致谢。
答案 0 :(得分:0)
独立示例:
$oCheckout = Mage::getSingleton( 'checkout/session' );
$oQuote = $oCheckout->getQuote();
var_dump( $oQuote );
$oCart = $oQuote->getAllItems();
if( !empty( $oCart ) )
{
foreach ( $oCart as $oItem )
{
// Specify conditionals
if( $oItem->getProduct()->getSku() == 1 )
{
// Note to use Shopping cart id not product id.
$oQuote->removeItem( $oItem->getId() )
->save();
}
}
}
var_dump( $oQuote );
答案 1 :(得分:0)
在观察者中尝试:
$product = $observer->getEvent()->getProduct();
$cart = Mage::getSingleton('checkout/cart');
foreach ($cart->getQuote()->getItemsCollection() as $_item) {
if ($_item->getProductId() == $product->getId()) {
$_item->isDeleted(true);
}
}
}