Mahmood Rehman
Mahmood Rehman

Reputation: 4331

Clear shopping cart event in magento

Can anyone tell me what is the right event to trigger when the user click clear shopping cart button.I want to remove some information on the basis of that event.Currently I am storing information on add to cart event using observer .Thanks

Upvotes: 1

Views: 5454

Answers (3)

Alexander Stanovoy
Alexander Stanovoy

Reputation: 11

Universal method

config.xml

<events>
    <sales_quote_save_after>
        <observers>
            <module_model_observer>
                <type>singleton</type>
                <class>module/observer</class>
                <method>salesQuoteSaveAfter</method>
            </module_model_observer>
        </observers>
    </sales_quote_save_after>
</events>

Observer.php

public function salesQuoteSaveAfter($observer)
{
    /** @var Mage_Sales_Model_Quote $quote */
    $quote = $observer->getEvent()->getQuote();
    if($quote->getItemsCount() == 0) {
        // your code
    }
}

Upvotes: 1

R T
R T

Reputation: 4549

i recently implemented this in a custom module.

controller_action_predispatch_checkout_cart_updatePost

this event get calls exactly when pressed clear cart.

in the observer you can check if the method was called for empty cart:

$post = Mage::app()->getRequest()->getPost('update_cart_action'); // get value if ($post == 'empty_cart') { // perform logic $quote = Mage::helper('checkout/cart')->getQuote(); //quote $allQuoteItems = $quote->getAllItems(); // quote items // do code }

Hope it helps.

Upvotes: 4

Fabian Blechschmidt
Fabian Blechschmidt

Reputation: 4141

There is no event in 1.7.0.2

// app/code/core/Mage/Checkout/controllers/CartController.php:389
Mage_Checkout_CartController::updatePostAction()

// app/code/core/Mage/Checkout/controllers/CartController.php:441
Mage_Checkout_CartController::_emptyShoppingCart()

// app/code/core/Mage/Checkout/Model/Cart.php:489
Mage_Checkout_Model_Cart::truncate()

// app/code/core/Mage/Sales/Model/Quote.php:837
Mage_Sales_Model_Quote::removeAllItems()

You can listen on checkout_cart_save_before and check wether the cart is empty and your setting is set, if yes, remove it.

Upvotes: 2

Related Questions