Remover todos os itens do carrinho Magento 2

Como remover todos os itens do carrinho no 2

Utilizando Object Manager

 $checkoutSession = $this->_objectManager->create('Magento\Checkout\Model\Session');

$allItems = $checkoutSession->getQuote()->getAllVisibleItems();

foreach ($allItems as $item) {
  $itemId = $item->getItemId();
  $cart->removeItem($itemId)->save();
}

Por Meio de um Controller

use Magento\Checkout\Model\Cart;
use Magento\Checkout\Model\Session as CheckoutSession;
use Magento\Framework\App\Action\Action;
class Clearcart extends Action
{
 protected  $_modelCart;
 protected $ checkoutSession;
 public function __construct(CheckoutSession $checkoutSession,Cart $modelCart)
        {
         $this->checkoutSession = $checkoutSession;
         $this->_modelCart = $modelCart;
        }
 public function execute()
        {
 $cart = $this->_modelCart;
 $quoteItems = $this->checkoutSession->getQuote()->getItemsCollection();
 foreach($quoteItems as $item)
 {
 $cart->removeItem($item->getId())->save(); 
 }
 }
}

Removendo por meio de uma Classe Model

namespace Vendor\Extension\Controller\Index;
use Magento\Checkout\Model\Session as CheckoutSession;
use Magento\Quote\Model\Quote\Item
 
class Clearcart extends Action
{
	protected  $modelCartItem;
	protected $checkoutSession;

	public function __construct(CheckoutSession $checkoutSession,Item $modelCartItem)
        {
        	$this->checkoutSession = $checkoutSession;
                $this->_ modelCartItem = $modelCartItem;
        }

	public function execute()
	{
    		$checkoutSession = $this->getCheckoutSession();
		$allItems = $checkoutSession->getQuote()->getAllVisibleItems();
		foreach ($allItems as $item) 
		{
    			$cartItemId = $item->getItemId();
        		$itemObj=$this->getItemModel()->load($cartItemId);
       			$itemObj->delete();
		}
  	}
}

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *