Skip to main content
1 of 2
Rick Buczynski
  • 2.7k
  • 15
  • 22

You can try to create an observer in a module, preferrable your own module in the local code pool:

<!-- app/code/local/Mymodule/etc/config.xml -->
...
<global>
    <events>
        ...
        <sales_model_service_quote_submit_after>
            <observers>
                <clear_session>
                    <class>Mymodule_Model_Observer</class>
                    <method>clearCheckoutSession</method>
                </clear_session>
            </observers>
        </sales_model_service_quote_submit_after>
    </events>
</global>
...

Don't know how this works? See here:

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method

Once you declare the observer, build it out:

<?php

// app/code/local/Mymodule/Model/Observer.php

class Mymodule_Model_Observer 
    extends Varien_Event_Observer
{

    public function clearCheckoutSession()
    {
        Mage::getSingleton('core/session')->clear(); // Or whatever you want to clear
    }

}

You'll want to customize this to your needs, obviously. And put some verification checks in there as well.

Something to note is that the event we observe in the config XML, sales_model_service_quote_submit_after, is dispatched out of Mage_Sales_Model_Service_Quote::submitOrder - it is triggered after the order has completed. But, there are other events in there which might fit your need (eg: checkout_type_onepage_save_order).

Rick Buczynski
  • 2.7k
  • 15
  • 22