How to delete a quote in Magento?

If you’re using an external site with Magento as a backend for e-commerce functionality, you will notice that the shopping cart items doesn’t get deleted after you checkout. Actually in Magento, a shopping cart is a quote. So to remove everything in the shopping cart, you must delete the quote currently used by the user. To do this, follow the code below:

First, insert the Magento app snippets which can be found here

then use the code below to delete a quote:

<?php
$quoteID = Mage::getSingleton("checkout/session")->getQuote()->getId();

if($quoteID)
{
    try {
        $quote = Mage::getModel("sales/quote")->load($quoteID);
        $quote->setIsActive(false);
        $quote->delete();

        return "cart deleted";
    } catch(Exception $e) {
        return $e->getMessage();
    }
}else{
    return "no quote found";
}

About the author

Richard Feraro is a Magento Enterprise Certified developer from Manila, Philippines with 14 years of solid open-source development experience using Linux, Apache, MySQL & PHP.

Leave a Reply

  1. Is there anyway to just make a simple button on top that says “Empty Cart” that will empty the cart once clicked?

    I know to get to those links (on the top right) you need to go to app/code/core/Mage/Checkout/Block/Links.php but I am struggling finding a solution that works in v1.4.

    • Hello Kris!

      Someone named Peaker did the same thing in my WordPress using Magento session article. Check it out here

      I hope it will help you get started with your programming task.

      Regards

  2. Hello Richard,
    One minor bug:
    getQuote is a function so it should use braces like this: getQuote()

    Thanks for sharing this code.

    • Hi Corey, the code above assumes that you’re using Magento’s Mage.php file to an external site, so it could be any file actually πŸ™‚

  3. Thanks Richard.

    This is the perfect and simple solution to empty the cart.

    Instead of doing like this given below

    foreach ($this->_getQuote()->getAllItems() as $item) :
    $this->_getCart()->removeItem($item->getId())->save();
    endforeach;

  4. My shopping cart items doesn’t get deleted after you checkout and I’m not using an external site. This only happens when there is a registered user, but when a guest places and order the items get deleted. Thanks For the help

  5. How to get quote id on magento backend. I need all quoted items / product list at the time of order creation from magento backend