Where can I find a complete list of Magento events?

There is not a list of all magento events, because most of the events are dynamically named.

If you ask me, knowing these key events (and the consequences) is a good starting point (beside the list from nick):

Every Object extended from Mage_Core_Model_Abstract dispatches a lot events around loading, saving and deleting:

app/code/core/Mage/Core/Model/Abstract.php:255
Mage::dispatchEvent($this->_eventPrefix.'_load_before', $params);
// e.g. sales_order_load_before, checkout_cart_load_before

For example to add checks, after the object was loaded

app/code/core/Mage/Core/Model/Abstract.php:267
Mage::dispatchEvent($this->_eventPrefix.'_load_after', $this->_getEventData());
// e.g. cms_page_load_after

to add additional data to the object before it is saved

app/code/core/Mage/Core/Model/Abstract.php:391
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
// e.g. catalog_product_save_before

To save other models after the "parent" was saved

app/code/core/Mage/Core/Model/Abstract.php:466  
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
// e.g. catalogrule_rule_save_after

clean up, before the model is deleted

app/code/core/Mage/Core/Model/Abstract.php:501
Mage::dispatchEvent($this->_eventPrefix.'_delete_before', $this->_getEventData());
// e.g. store_delete_before

clean up, before the model is deleted - or maybe afterwards? You are here still in the transaction!

app/code/core/Mage/Core/Model/Abstract.php:529
Mage::dispatchEvent($this->_eventPrefix.'_delete_after', $this->_getEventData());
// e.g. website_delete_after

If you want to be sure the entity was deleted

app/code/core/Mage/Core/Model/Abstract.php:541
Mage::dispatchEvent($this->_eventPrefix.'_delete_commit_after', $this->_getEventData());
// e.g. customer_delete_commit_after

The collections extended from Mage_Core_Model_Resource_Db_Collection_Abstract have a two generic events too:

For example: to change the SQL to load the collection:

app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:588
Mage::dispatchEvent($this->_eventPrefix.'_load_before', array(
    $this->_eventObject => $this
));
// e.g. sales_order_status_history_collection_load_before

For example: to add additional data to the objects:

app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:637
Mage::dispatchEvent($this->_eventPrefix.'_load_after', array(
    $this->_eventObject => $this
));
// e.g. sales_order_shipment_collection_load_after

Do the bloody grep 'Mage::dispatchEvent' app/ -rsn This will provide you with a list of events specific to your installation as the list of events may vary depending on Magento version, customizations and extensions installed.


I use this as a nice cheat sheet http://www.nicksays.co.uk/magento-events-cheat-sheet-1-7/. It has all the events that that can be called in 1.7.