Удалить товар из корзины магазина в CMS Magento (Мадженто), можно просто нажав на значок “удалить товар” в корзине (Shopping Cart) в окне браузера.
Но что делать, если надо удалить товар из корзины Magento при каком то действии пользователя, удалить через код.
Пример, как можно просто сделать в Magento.
$session= Mage::getSingleton('checkout/session');
$quote = $session->getQuote();
$cart = Mage::getModel('checkout/cart');
$cartItems = $cart->getItems();
foreach ($cartItems as $item)
{
$quote->removeItem($item->getId())->save();
}
Как видно из примера, для начала получаем все товары которые сейчас находятся в корзине Magento,
и удаляем из Quote (Текущей сессии покупателя).
Но удаляем все продукты, а что делать если нам надо удалить только продукт с определенным ID.
Пример, как удалить продукт из корзины с ID – 900.
$session= Mage::getSingleton('checkout/session');
$quote = $session->getQuote();
$cart = Mage::getModel('checkout/cart');
$cartItems = $cart->getItems();
foreach ($cartItems as $item)
{
if($item->getProductId()==900) {
$quote->removeItem($item->getId())
}
}
$quote->save();
Особенность корзины Magento в том, что в ней хранится несколько ID, есть ID товара в корзине (внутренний ID корзины Magento), и есть ID товара который был добавлен в корзину (по этому ID мы можем найти реально существующий товар в Magento).
Больше информации про удаление товаров из корзины в Magento, можно найти в классе Mage_Checkout_CartController контроллера app/code/core/Mage/Checkout/controllers/CartController.php