it's my blog anyway
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";
}
This is a programmer's blog. Whenever I encounter a difficult coding task, I make sure that I'll be able to share it here in the hope that others may find it useful. It's my way of giving back to the open source community who have been a great help to me as well.
10 Responses to How to delete a quote in Magento?
Kris
April 22nd, 2010 at 1:20 am
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.
Richard Feraro
April 22nd, 2010 at 3:48 pm
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
ruurdz
September 1st, 2010 at 6:36 pm
Hello Richard,
One minor bug:
getQuote is a function so it should use braces like this: getQuote()
Thanks for sharing this code.
Richard Feraro
September 1st, 2010 at 7:38 pm
Oops! Didn’t see that one. Thanks for the note
Corey
December 20th, 2010 at 2:21 pm
What files is the code placed in Magento? I really need to get the cart emptied.
Kristy
December 20th, 2010 at 2:42 pm
What Magento file do you place the above code in? I’m using 1.4.1.1
Richard Feraro
December 20th, 2010 at 4:33 pm
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
Richard Feraro
December 20th, 2010 at 4:34 pm
Same as my reply above to Corey
Jerome Dennis D
September 28th, 2011 at 3:50 pm
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;
Richard Feraro
September 29th, 2011 at 1:15 am
You’re welcome Jerome