Проверить настройки Skip to content

Удалить товар из корзины (Quote) Magento

Удалить товар из корзины магазина в 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.

Magento 1.*