This page has moved and will be redirected soon. See Migrated topics for the complete list.

List of events

This is the list of event names ordered alphabetically. Each event contains a short description and a list of supported arguments.

abstract_search_result_load_after

Use cases

To modify product stock items and stock statuses.

Origins

\Magento\Framework\Data\AbstractSearchResult:

1
2
3
protected function afterLoad()
{
   $this->eventManager->dispatch('abstract_search_result_load_after', ['collection' => $this]);
  • collection is an object of \Magento\Framework\Data\AbstractSearchResult

Examples of classes that raise the event

  • \Magento\CatalogInventory\Model\ResourceModel\Stock\Collection
  • \Magento\CatalogInventory\Model\ResourceModel\Stock\Item\Collection
  • \Magento\CatalogInventory\Model\ResourceModel\Stock\Status\Collection

abstract_search_result_load_before

Use cases

To modify product stock items and stock statuses.

Origins

\Magento\Framework\Data\AbstractSearchResult:

1
2
3
protected function beforeLoad()
{
$this->eventManager->dispatch('abstract_search_result_load_before', ['collection' => $this]);
  • collection is an object of \Magento\Framework\Data\AbstractSearchResult

Classes raising the event

  • \Magento\CatalogInventory\Model\ResourceModel\Stock\Collection
  • \Magento\CatalogInventory\Model\ResourceModel\Stock\Item\Collection
  • \Magento\CatalogInventory\Model\ResourceModel\Stock\Status\Collection

adminhtml_block_eav_attribute_edit_form_init

Use cases

To modify backend attribute edit page form.

Origins

\Magento\Eav\Block\Adminhtml\Attribute\Edit\Main\AbstractMain:

1
2
3
protected function _initFormValue()
{
$this->eventManager->dispatch('adminhtml_block_eav_attribute_edit_form_init', ['form' => $this->getForm()]);
  • form is an object of \Magento\Framework\Data\Form

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Main

adminhtml_block_html_before

Origins

  • \Magento\Backend\Block\Template::_toHtml():

    1
    2
    3
    
    protected function _toHtml()
    {
    $this->_eventManager->dispatch('adminhtml_block_html_before', ['block' => $this]);
    
  • \Magento\Customer\\Block\Adminhtml\Edit\Tab\Carts::_toHtml():

    1
    2
    3
    
    protected function _toHtml()
    {
    $this->_eventManager->dispatch('adminhtml_block_html_before', ['block' => $this]);
    
  • block is an object of \Magento\Framework\View\Element\Template

Classes raising the event

  • \Magento\AdminNotification\Block\System\Messages
  • \Magento\AdobeIms\Block\Adminhtml\SignIn

Use cases

To modify backend block contents.

adminhtml_block_promo_widget_chooser_prepare_collection

Use cases

To modify collection of shopping cart rules used in a chooser widget.

Origins

\Magento\SalesRule\Block\Adminhtml\Promo\Widget\Chooser::_prepareCollection():

1
2
3
4
5
6
7
protected function _prepareCollection()
{
...
$this->_eventManager->dispatch(
         'adminhtml_block_promo_widget_chooser_prepare_collection',
         ['collection' => $collection]
);
  • collection is an object of \Magento\SalesRule\Model\ResourceModel\Rule\Collection

Classes raising the event

  • \Magento\SalesRule\Block\Adminhtml\Promo\Widget\Chooser

adminhtml_block_salesrule_actions_prepareform

Use cases

To modify sales rule actions form.

Origins

\Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Actions::addTabToForm():

1
2
3
4
5
6
7
8
protected function addTabToForm($model
                              , $fieldsetId = 'actions_fieldset'
                              , $formName = 'sales_rule_form')
{
...
$this->_eventManager->dispatch('adminhtml_block_salesrule_actions_prepareform'
      , ['form' => $form]);
);
  • form is an object of \Magento\Framework\Data\Form

Classes raising the event

  • \Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Actions

adminhtml_cache_flush_all

Use cases

To perform actions before all cache is flushed.

Origins

  • \Magento\Backend\Controller\Adminhtml\Cache\FlushAll::execute():

    1
    2
    3
    
    public function execute()
    {
    $this->_eventManager->dispatch('adminhtml_cache_flush_all');
    
  • \Magento\Backend\Console\Command\CacheFlushCommand::performAction():

    1
    2
    3
    
    protected function performAction(array $cacheTypes)
    {
    $this->eventManager->dispatch('adminhtml_cache_flush_all');
    

Classes raising the event

  • \Magento\Backend\Controller\Adminhtml\Cache\FlushAll
  • \Magento\Backend\Console\Command\CacheFlushCommand

adminhtml_cache_flush_system

Use cases

To perform actions when system cache is cleaned.

Origins

  • \Magento\Translation\Model\Inline\CacheManager::updateAndGetTranslations():

    1
    2
    3
    
    public function updateAndGetTranslations()
    {
    $this->eventManager->dispatch('adminhtml_cache_flush_system');
    
  • \Magento\Backend\Controller\Adminhtml\Cache\FlushSystem::execute():

    1
    2
    3
    4
    
    public function execute()
    {
    ...
    $this->_eventManager->dispatch('adminhtml_cache_flush_system');
    
  • \Magento\Backend\Console\Command\CacheCleanCommand::performAction()

1
2
3
  protected function performAction(array $cacheTypes)
  {
  $this->eventManager->dispatch('adminhtml_cache_flush_system');

Classes raising the the event

  • \Magento\Translation\Model\Inline\CacheManager
  • \Magento\Backend\Controller\Adminhtml\Cache\FlushSystem
  • \Magento\Backend\Console\Command\CacheCleanCommand

adminhtml_cache_refresh_type

Use cases

  • To perform actions before Full Page Cache is cleared.
  • To perform actions after Configuration Cache is cleared.

Origins

  • \Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification::execute():

    1
    2
    3
    
    public function execute()
    {
    $this->_eventManager->dispatch('adminhtml_cache_refresh_type', ['type' => 'config']);
    
    • type for cache type cleared
  • \Magento\PageCache\Model\Cache\Type::clean():

    1
    2
    3
    
    public function clean($mode = \Zend_Cache::CLEANING_MODE_ALL, array $tags = [])
    {
    $this->eventManager->dispatch('adminhtml_cache_refresh_type');
    

Classes raising the the event

  • \Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification
  • \Magento\PageCache\Model\Cache\Type

adminhtml_catalog_category_tree_can_add_root_category

Use cases

To change availability of adding root category.

Origins

\Magento\Catalog\Block\Adminhtml\Category\Tree::canAddRootCategory():

1
2
3
4
5
6
7
public function canAddRootCategory()
{
  $options = new \Magento\Framework\DataObject(['is_allow' => true]);
  $this->_eventManager->dispatch(
      'adminhtml_catalog_category_tree_can_add_root_category',
      ['category' => $this->getCategory(), 'options' => $options, 'store' => $this->getStore()->getId()]
  );
  • category - product category
  • options - \Magento\Framework\DataObject(['is_allow' => true])
  • store - current store ID

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Category\Checkboxes\Tree
  • \Magento\Catalog\Block\Adminhtml\Category\Widget\Chooser

adminhtml_catalog_category_tree_can_add_sub_category

Use cases

To change availability of adding a subcategory.

Origins

\Magento\Catalog\Block\Adminhtml\Category\Tree::canAddSubCategory():

1
2
3
4
5
6
7
public function canAddSubCategory()
{
      $options = new \Magento\Framework\DataObject(['is_allow' => true]);
      $this->_eventManager->dispatch(
         'adminhtml_catalog_category_tree_can_add_sub_category',
         ['category' => $this->getCategory(), 'options' => $options, 'store' => $this->getStore()->getId()]
      );
  • category - product category
  • options - \Magento\Framework\DataObject(['is_allow' => true])
  • store - current store ID

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Category\Checkboxes\Tree
  • \Magento\Catalog\Block\Adminhtml\Category\Widget\Chooser

adminhtml_catalog_category_tree_is_moveable

Use cases

To change moveability of a category.

Origins

\Magento\Catalog\Block\Adminhtml\Category\Tree::_isCategoryMoveable():

1
2
3
4
5
protected function _isCategoryMoveable($node)
{
      $options = new \Magento\Framework\DataObject(['is_moveable' => true, 'category' => $node]);

      $this->_eventManager->dispatch('adminhtml_catalog_category_tree_is_moveable', ['options' => $options]);
  • options - \Magento\Framework\DataObject(['is_moveable' => true, 'category' => $node])

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Category\Checkboxes\Tree
  • \Magento\Catalog\Block\Adminhtml\Category\Widget\Chooser

adminhtml_catalog_product_attribute_edit_frontend_prepare_form

Use cases

To customize a product attribute edit form.

Origins

\Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front::_prepareForm():

1
2
3
4
5
6
7
protected function _prepareForm()
{
...
$this->_eventManager->dispatch(
         'adminhtml_catalog_product_attribute_edit_frontend_prepare_form',
         ['form' => $form, 'attribute' => $attributeObject]
);
  • form is an object of \Magento\Framework\Data\Form
  • attribute is an object of \Magento\Catalog\Model\Entity\Attribute

Classes raising the event

\Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Front

adminhtml_catalog_product_attribute_set_main_html_before

Use cases

To customize the adminhtml catalog attribute set main block.

Origins

\Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Main::_toHtml():

1
2
3
4
5
6
   protected function _toHtml()
   {
      $this->_eventManager->dispatch(
         'adminhtml_catalog_product_attribute_set_main_html_before',
         ['block' => $this]
      );
  • block is an object of \Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Main

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Main

adminhtml_catalog_product_attribute_set_toolbar_main_html_before

Use cases

To customize the adminhtml catalog attribute set toolbar main block.

Origins

\Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Toolbar\Main::_toHtml():

1
2
3
4
5
6
   protected function _toHtml()
   {
      $this->_eventManager->dispatch(
         'adminhtml_catalog_product_attribute_set_toolbar_main_html_before',
         ['block' => $this]
      );
  • block is an object of \Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Toolbar\Main

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\Set\Toolbar\Main

adminhtml_catalog_product_edit_element_types

Use cases

To add or customize additional element types for catalog product edit attributes tab.

Origins

  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes::_getAdditionalElementTypes():

    1
    2
    3
    4
    5
    
     protected function _getAdditionalElementTypes()
     {
     ...
     $this->_eventManager->dispatch('adminhtml_catalog_product_edit_element_types',
        ['response' => $response]);
    
  • response is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Bundle\Block\Adminhtml\Catalog\Product\Edit\Tab\Attributes
  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes

adminhtml_catalog_product_edit_prepare_form

Origins

  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes::_prepareForm():

    1
    2
    3
    4
    5
    6
    7
    
     protected function _prepareForm()
     {
     ...
             $this->_eventManager->dispatch(
                 'adminhtml_catalog_product_edit_prepare_form',
                 ['form' => $form, 'layout' => $this->getLayout()]
             );
    
  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\NewAttribute\Product\Attributes::_prepareForm():

    1
    2
    3
    4
    5
    6
    
     protected function _prepareForm()
     {
     ...
         $this->_eventManager->dispatch('adminhtml_catalog_product_edit_prepare_form',
             ['form' => $form]
         );
    
  • form is an object of \Magento\Framework\Data\Form
  • layout is an object of \Magento\Framework\View\LayoutInterface

There are only three classes that raise this event:

  • \Magento\Bundle\Block\Adminhtml\Catalog\Product\Edit\Tab\Attributes
  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes
  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\NewAttribute\Product\Attributes

Use cases

To customize catalog product edit attribute tab form

adminhtml_catalog_product_edit_tab_attributes_create_html_before

Origins

  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes\Create::_toHtml():

    1
    2
    3
    4
    5
    6
    7
    
     protected function _toHtml()
     {
         $this->setCanShow(true);
         $this->_eventManager->dispatch(
             'adminhtml_catalog_product_edit_tab_attributes_create_html_before',
             ['block' => $this]
         );
    
  • block is an object of \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes\Create

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Tab\Attributes\Create

Use cases

To customize catalog product edit create attribute block

adminhtml_catalog_product_form_prepare_excluded_field_list

Origins

  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Action\Attribute\Tab\Attributes::_prepareForm():

    1
    2
    3
    4
    5
    6
    7
    
     protected function _prepareForm(): void
     {
         $this->setFormExcludedFieldList($this->excludeFields);
         $this->_eventManager->dispatch(
             'adminhtml_catalog_product_form_prepare_excluded_field_list',
             ['object' => $this]
         );
    
  • object is an object of \Magento\Catalog\Block\Adminhtml\Product\Edit\Action\Attribute\Tab\Attributes

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Edit\Action\Attribute\Tab\Attributes

Use cases

To customize catalog product edit attribute tab block

adminhtml_catalog_product_grid_prepare_massaction

Use cases

To customize Mass Actions of a catalog product grid backend block.

Origins

  • \Magento\Catalog\Block\Adminhtml\Product\Grid::_prepareMassaction():

    1
    2
    3
    4
    5
    6
    7
    8
    
     protected function _prepareMassaction()
     {
      ...
    
      $this->_eventManager->dispatch('adminhtml_catalog_product_grid_prepare_massaction',
                                     ['block' => $this]);
      return $this;
     }
    
  • block is an object of \Magento\Catalog\Block\Adminhtml\Product\Grid

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Grid
  • \Magento\UrlRewrite\Block\Catalog\Product\Grid

adminhtml_cmspage_on_delete

Origins

  • \Magento\Cms\Controller\Adminhtml\Page\Delete::execute():

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
     protected function execute()
     {
      ...
                 $this->_eventManager->dispatch('adminhtml_cmspage_on_delete', [
                     'title' => $title,
                     'status' => 'success'
                 ]);
    
                 return $resultRedirect->setPath('*/*/');
             } catch (\Exception $e) {
                 $this->_eventManager->dispatch(
                     'adminhtml_cmspage_on_delete',
                     ['title' => $title, 'status' => 'fail']
                 );
      ...
     }
    
  • title is a string, title of a cms page
  • status is a string, ‘success’ or ‘fail’

Classes raising the event

  • \Magento\Cms\Controller\Adminhtml\Page\Delete

Use cases

To perform actions on either successful or unsuccessful cms page removal

adminhtml_controller_catalogrule_prepare_save

Origins

  • \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog\Save::execute():

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
     protected function execute()
     {
      ...
             try {
                 $this->_eventManager->dispatch(
                     'adminhtml_controller_catalogrule_prepare_save',
                     ['request' => $this->getRequest()]
                 );
      ...
     }
    
  • request is a page request object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog\Save

Use cases

To alter how a catalog price rule is being saved

adminhtml_controller_salesrule_prepare_save

Origins

  • \Magento\SalesRule\Controller\Adminhtml\Promo\Quote\Save::execute():

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
     protected function execute()
     {
      ...
             try {
                 ...
                 $this->_eventManager->dispatch(
                     'adminhtml_controller_salesrule_prepare_save',
                     ['request' => $this->getRequest()]
                 );
      ...
     }
    
  • request is a page request object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\SalesRule\Controller\Adminhtml\Promo\Quote\Save

Use cases

To alter how a cart price rule is being saved

adminhtml_customer_orders_add_action_renderer

Origins

  • \Magento\Sales\Block\Adminhtml\Reorder\Renderer\Action::render():

    1
    2
    3
    4
    5
    6
    7
    
     public function render(\Magento\Framework\DataObject $row)
     {
         ...
         $this->_eventManager->dispatch(
             'adminhtml_customer_orders_add_action_renderer',
             ['renderer' => $this, 'row' => $row]
         );
    
  • renderer is an object of \Magento\Sales\Block\Adminhtml\Reorder\Renderer\Action
  • row is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Sales\Block\Adminhtml\Reorder\Renderer\Action

Use cases

To modify the way action sales admin reorder block is rendered

adminhtml_customer_prepare_save

Use cases

To modify a customer object before it is saved in admin panel.

Origins

\Magento\Customer\Controller\Adminhtml\Index\Save::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
               $this->_eventManager->dispatch(
                  'adminhtml_customer_prepare_save',
                  ['customer' => $customer, 'request' => $this->getRequest()]
               );
  • customer is an object of \Magento\Customer\Api\Data\CustomerInterface
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Customer\Controller\Adminhtml\Index\Save

adminhtml_customer_save_after

Use cases

To modify a customer object after it is saved in admin panel.

Origins

\Magento\Customer\Controller\Adminhtml\Index\Save::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
               $this->_eventManager->dispatch(
                  'adminhtml_customer_save_after',
                  ['customer' => $customer, 'request' => $this->getRequest()]
               );
  • customer is an object of \Magento\Customer\Api\Data\CustomerInterface
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Customer\Controller\Adminhtml\Index\Save

adminhtml_product_attribute_types

Use cases

To modify the way product attributes are processed.

Origins

  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Main::execute():

    1
    2
    3
    4
    
     private function processFrontendInputTypes(): void
     {
     ...
     $this->_eventManager->dispatch('adminhtml_product_attribute_types', ['response' => $response]);
    
  • \Magento\Catalog\Model\Product\Attribute\Source\Inputtype::toOptionArray():

    1
    2
    3
    4
    
    public function toOptionArray()
    {
    ...
    $this->_eventManager->dispatch('adminhtml_product_attribute_types', ['response' => $response]);
    

response is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Attribute\Edit\Tab\Main
  • \Magento\Catalog\Model\Product\Attribute\Source\Inputtype

adminhtml_promo_quote_edit_tab_coupons_form_prepare_form

Use cases

To modify the admin coupon code form is generated.

Origins

\Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Form::_prepareForm():

1
2
3
4
5
6
   protected function _prepareForm()
   {
      $this->_eventManager->dispatch(
         'adminhtml_promo_quote_edit_tab_coupons_form_prepare_form',
         ['form' => $form]
      );
  • form is an object of \Magento\Framework\Data\Form

Classes raising the event

  • \Magento\SalesRule\Block\Adminhtml\Promo\Quote\Edit\Tab\Coupons\Form

adminhtml_sales_order_create_process_data

Use cases

To modify an order after it gets processed.

Origins

\Magento\Sales\Controller\Adminhtml\Order\Create::_processActionData():

1
2
3
4
5
6
7
8
9
   protected function _processActionData()
   {
   ...
      $eventData = [
         'order_create_model' => $this->_getOrderCreateModel(),
         'request' => $this->getRequest()->getPostValue(),
      ];

      $this->_eventManager->dispatch('adminhtml_sales_order_create_process_data', $eventData);
  • order_create_model is an object of \Magento\Sales\Model\AdminOrder\Create
  • request is an array of POST values

Classes raising the event

  • \Magento\Sales\Controller\Adminhtml\Order\Create\Cancel
  • \Magento\Sales\Controller\Adminhtml\Order\Create\ProcessData

adminhtml_sales_order_create_process_data_before

Use cases

To modify an order before it gets processed.

Origins

\Magento\Sales\Controller\Adminhtml\Order\Create::_processActionData():

1
2
3
4
5
6
7
8
9
   protected function _processActionData()
   {
      $eventData = [
         'order_create_model' => $this->_getOrderCreateModel(),
         'request_model' => $this->getRequest(),
         'session' => $this->_getSession(),
      ];

      $this->_eventManager->dispatch('adminhtml_sales_order_create_process_data_before', $eventData);
  • order_create_model is an object of \Magento\Sales\Model\AdminOrder\Create
  • request_model is an object of \Magento\Framework\App\RequestInterface
  • session is an object of \Magento\Backend\Model\Session\Quote

Classes raising the event

  • \Magento\Sales\Controller\Adminhtml\Order\Create\Cancel
  • \Magento\Sales\Controller\Adminhtml\Order\Create\ProcessData

adminhtml_sales_order_create_process_item_after

Use cases

To modify an order item after it gets processed.

Origins

\Magento\Sales\Controller\Adminhtml\Order\Create::_processActionData():

1
2
3
4
5
6
7
8
9
   protected function _processActionData()
   {
      $eventData = [
         'order_create_model' => $this->_getOrderCreateModel(),
         'request_model' => $this->getRequest(),
         'session' => $this->_getSession(),
      ];
   ...
      $this->_eventManager->dispatch('adminhtml_sales_order_create_process_item_after', $eventData);
  • order_create_model is an object of \Magento\Sales\Model\AdminOrder\Create
  • request_model is an object of \Magento\Framework\App\RequestInterface
  • session is an object of \Magento\Backend\Model\Session\Quote

Classes raising the event

  • \Magento\Sales\Controller\Adminhtml\Order\Create\Cancel
  • \Magento\Sales\Controller\Adminhtml\Order\Create\ProcessData

adminhtml_sales_order_create_process_item_before

Use cases

To modify an order item before it gets processed.

Origins

\Magento\Sales\Controller\Adminhtml\Order\Create::_processActionData():

1
2
3
4
5
6
7
8
9
   protected function _processActionData()
   {
      $eventData = [
         'order_create_model' => $this->_getOrderCreateModel(),
         'request_model' => $this->getRequest(),
         'session' => $this->_getSession(),
      ];
   ...
      $this->_eventManager->dispatch('adminhtml_sales_order_create_process_item_before', $eventData);
  • order_create_model is an object of \Magento\Sales\Model\AdminOrder\Create
  • request_model is an object of \Magento\Framework\App\RequestInterface
  • session is an object of \Magento\Backend\Model\Session\Quote

Classes raising the event

  • \Magento\Sales\Controller\Adminhtml\Order\Create\Cancel
  • \Magento\Sales\Controller\Adminhtml\Order\Create\ProcessData

adminhtml_sales_order_creditmemo_register_before

Use cases

To modify a credit memo before it gets saved in the registry.

Origins

  • \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader::load():

    1
    2
    3
    4
    5
    6
    7
    
     public function load()
     {
     ...
         $this->eventManager->dispatch(
             'adminhtml_sales_order_creditmemo_register_before',
             ['creditmemo' => $creditmemo, 'input' => $this->getCreditmemo()]
         );
    
  • creditmemo is an object of \Magento\Sales\Model\Order\Creditmemo
  • input is a data array

Classes raising the event

  • \Magento\Sales\Controller\Adminhtml\Order\CreditmemoLoader

adminhtml_store_edit_form_prepare_form

Use cases

To a store edit form before it gets rendered.

Origins

\Magento\Backend\Block\System\Store\Edit\AbstractForm::_prepareForm():

1
2
3
4
   protected function _prepareForm()
   {
   ...
      $this->_eventManager->dispatch('adminhtml_store_edit_form_prepare_form', ['block' => $this]);
  • block is an object of \Magento\Backend\Block\System\Store\Edit\AbstractForm

Classes raising the event

  • \Magento\Backend\Block\System\Store\Edit\Form\Website
  • \Magento\Backend\Block\System\Store\Edit\Form\Group
  • \Magento\Backend\Block\System\Store\Edit\Form\Store

adminhtml_system_config_advanced_disableoutput_render_before

Use cases

To alter modules list before they get displayed.

Origins

\Magento\Config\Block\System\Config\Form\Fieldset\Modules\DisableOutput::render():

1
2
3
4
5
6
7
8
   protected function render()
   {
   ...
      $dispatchResult = new \Magento\Framework\DataObject($modules);
      $this->_eventManager->dispatch(
         'adminhtml_system_config_advanced_disableoutput_render_before',
         ['modules' => $dispatchResult]
      );
  • modules is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Config\Block\System\Config\Form\Fieldset\Modules\DisableOutput

adminhtml_widget_grid_filter_collection

Use cases

To alter report collection or filter values.

Origins

\Magento\Reports\Block\Adminhtml\Grid::_prepareCollection():

1
2
3
4
5
6
7
   protected function _prepareCollection()
   {
   ...
         $this->_eventManager->dispatch(
               'adminhtml_widget_grid_filter_collection',
               ['collection' => $this->getCollection(), 'filter_values' => $this->_filterValues]
         );
  • collection is an object of \Magento\Reports\Model\ResourceModel\Report\Collection
  • filter_values is a value array

Classes raising the event

  • \Magento\Reports\Block\Adminhtml\Grid

admin_permissions_role_prepare_save

Use cases

To alter the role object before it is saved.

Origins

\Magento\User\Controller\Adminhtml\User\Role\SaveRole::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
         $this->_eventManager->dispatch(
               'admin_permissions_role_prepare_save',
               ['object' => $role, 'request' => $this->getRequest()]
         );
  • object is an object of \Magento\Authorization\Model\Role
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\User\Controller\Adminhtml\User\Role\SaveRole

admin_system_config_changed_section_currency

Use cases

To perform actions after currency symbol is set in admin panel.

Origins

\Magento\CurrencySymbol\Model\System\Currencysymbol::setCurrencySymbolsData():

1
2
3
4
5
6
7
   public function setCurrencySymbolsData($symbols = [])
   {
   ...
      $this->_eventManager->dispatch(
         'admin_system_config_changed_section_currency',
         ['website' => $this->_websiteId, 'store' => $this->_storeId]
      );
  • website is a website ID
  • store is a store ID

Classes raising the event

  • \Magento\CurrencySymbol\Model\System\Currencysymbol

admin_system_config_changed_section_currency_before_reinit

Use cases

To perform actions before admin configuration reinitialized.

Origins

\Magento\CurrencySymbol\Model\System\Currencysymbol::setCurrencySymbolsData():

1
2
3
4
5
6
7
   public function setCurrencySymbolsData($symbols = [])
   {
   ...
      $this->_eventManager->dispatch(
         'admin_system_config_changed_section_currency_before_reinit',
         ['website' => $this->_websiteId, 'store' => $this->_storeId]
      );
  • website is a website ID
  • store is a store ID

Classes raising the event

  • \Magento\CurrencySymbol\Model\System\Currencysymbol

admin_system_config_changed_section_design

Use cases

To perform actions after admin design section saved or deleted.

Origins

  • \Magento\Theme\Model\Design\Config\Plugin::afterSave():
    1
    2
    3
    4
    5
    6
    7
    
     public function afterSave(DesignConfigRepository $subject, DesignConfigInterface $designConfig)
     {
     ...
         $this->eventManager->dispatch(
             'admin_system_config_changed_section_design',
             ['website' => $website, 'store' => $store]
         );
    
  • \Magento\Theme\Model\Design\Config\Plugin::afterDelete():
    1
    2
    3
    4
    5
    6
    7
    
     public function afterDelete(DesignConfigRepository $subject, DesignConfigInterface $designConfig)
     {
     ...
         $this->eventManager->dispatch(
             'admin_system_config_changed_section_design',
             ['website' => $website, 'store' => $store]
         );
    
  • website is an object of \Magento\Store\Api\Data\WebsiteInterface
  • store is an object of \Magento\Store\Api\Data\StoreInterface

Classes raising the event

  • \Magento\Theme\Model\Design\Config\Plugin

admin_system_config_save

Use cases

To perform actions after admin configuration is saved.

Origins

\Magento\Config\Controller\Adminhtml\System\Config\Save::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
         $this->_eventManager->dispatch(
               'admin_system_config_save',
               ['configData' => $configData, 'request' => $this->getRequest()]
         );
  • configData is a data array
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Config\Controller\Adminhtml\System\Config\Save

admin_user_authenticate_after

Use cases

To perform actions after a user is authenticated.

Origins

  • \Magento\User\Model\User::authenticate():
    1
    2
    3
    4
    5
    6
    7
    
     public function authenticate($username, $password)
     {
     ...
             $this->_eventManager->dispatch(
                 'admin_user_authenticate_after',
                 ['username' => $username, 'password' => $password, 'user' => $this, 'result' => $result]
             );
    
  • \Magento\User\Model\User::performIdentityCheck():
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    public function performIdentityCheck($passwordString)
    {
    ...
         $this->_eventManager->dispatch(
             'admin_user_authenticate_after',
             [
                 'username' => $this->getUserName(),
                 'password' => $passwordString,
                 'user' => $this,
                 'result' => $isCheckSuccessful
             ]
         );
    
  • username is a username string
  • password is a password string
  • user is an object of \Magento\User\Model\User
  • result is a boolean value

Classes raising the event

  • \Magento\User\Model\User

admin_user_authenticate_before

Use cases

To perform actions before a user is authenticated.

Origins

\Magento\User\Model\User::authenticate():

1
2
3
4
5
6
7
   public function authenticate($username, $password)
   {
   ...
         $this->_eventManager->dispatch(
               'admin_user_authenticate_before',
               ['username' => $username, 'user' => $this]
         );
  • username is a username string
  • user is an object of \Magento\User\Model\User

Classes raising the event

  • \Magento\User\Model\User

amazon_customer_authenticated

Use cases

To perform actions before an Amazon user is authenticated.

Origins

\Amazon\Login\Helper\Session::dispatchAuthenticationEvent():

1
2
3
4
   protected function dispatchAuthenticationEvent()
   {
      $this->eventManager->dispatch('amazon_customer_authenticated');
   }

Used in functions:

1
2
3
4
5
6
7
8
9
   public function loginById($customerId)
   {
      $this->dispatchAuthenticationEvent();
   ...

   public function login(CustomerInterface $customerData)
   {
      $this->dispatchAuthenticationEvent();
   ...

Classes raising the event

  • \Amazon\Login\Helper\Session

amazon_login_authorize_error

Use cases

To handle an Amazon login exception.

Origins

\Amazon\Login\Controller\Login\Authorize::execute():

1
2
3
4
5
   public function execute()
   {
   ..
      $this->_eventManager->dispatch('amazon_login_authorize_error', ['exception' => $e]);
   }
  • exception is an object of Magento\Framework\Exception\ValidatorException or \Exception

Classes raising the event

  • \Amazon\Login\Controller\Login\Authorize

amazon_login_authorize_validation_error

Use cases

To handle a ValidatorException Amazon login exception.

Origins

\Amazon\Login\Controller\Login\Authorize::execute():

1
2
3
4
5
   public function execute()
   {
   ..
      $this->_eventManager->dispatch('amazon_login_authorize_validation_error', ['exception' => $e]);
   }
  • exception is an object of Magento\Framework\Exception\ValidatorException

Classes raising the event

  • \Amazon\Login\Controller\Login\Authorize

amazon_payment_authorize_before

Use cases

To perform actions before Amazon authorizes a payment.

Origins

\Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder::build():

1
2
3
4
5
6
7
8
9
10
11
12
13
   public function build(array $buildSubject)
   {
   ..
         $transport = new DataObject($data);
         $this->eventManager->dispatch(
               'amazon_payment_authorize_before',
               [
                  'context' => 'authorization',
                  'payment' => $paymentDO->getPayment(),
                  'transport' => $transport
               ]
         );
   }
  • context is a string authorization
  • payment is an object of Magento\Payment\Model\InfoInterface
  • transport is a DataObject object

Classes raising the event

  • \Amazon\Payment\Gateway\Request\AuthorizationRequestBuilder

amazon_payment_pending_authorization_hard_decline_after

Use cases

To perform actions before a hard decline of Amazon payment.

Origins

\Amazon\Payment\Model\PaymentManagement\Authorization::hardDeclinePendingAuthorization():

1
2
3
4
5
6
7
8
9
10
11
   protected function hardDeclinePendingAuthorization(...)
   {
   ..
      $this->eventManager->dispatch(
         'amazon_payment_pending_authorization_hard_decline_after',
         [
               'order' => $order,
               'pendingAuthorization' => $pendingAuthorization,
         ]
      );
   }
  • order is an object of \Magento\Sales\Api\Data\OrderInterface
  • pendingAuthorization is an object of \Amazon\Payment\Api\Data\PendingAuthorizationInterface

Classes raising the event

  • \Amazon\Payment\Model\PaymentManagement\Authorization

amazon_payment_pending_authorization_soft_decline_after

Use cases

To perform actions before a soft Amazon payment decline.

Origins

\Amazon\Payment\Model\PaymentManagement\Authorization::softDeclinePendingAuthorization():

1
2
3
4
5
6
7
8
9
10
11
   protected function softDeclinePendingAuthorization(...)
   {
   ..
      $this->eventManager->dispatch(
         'amazon_payment_pending_authorization_soft_decline_after',
         [
               'order' => $order,
               'pendingAuthorization' => $pendingAuthorization,
         ]
      );
   }
  • order is an object of \Magento\Sales\Api\Data\OrderInterface
  • pendingAuthorization is an object of \Amazon\Payment\Api\Data\PendingAuthorizationInterface

Classes raising the event

  • \Amazon\Payment\Model\PaymentManagement\Authorization

assigned_theme_changed

Use cases

To perform actions after an assigned theme changed.

Origins

\Magento\Theme\Observer\CheckThemeIsAssignedObserver::execute():

1
2
3
4
5
   public function execute(EventObserver $observer)
   {
   ..
      $this->eventDispatcher->dispatch('assigned_theme_changed', ['theme' => $theme]);
   }
  • theme is an object of \Magento\Framework\View\Design\ThemeInterface

Classes raising the event

  • \Magento\Theme\Observer\CheckThemeIsAssignedObserver

assign_theme_to_stores_after

Use cases

To perform actions after a new theme is assigned to a store.

Origins

\Magento\Theme\Model\Config::assignToStore():

1
2
3
4
5
6
7
8
   public function assignToStore(...)
   {
   ..
      $this->_eventManager->dispatch(
         'assign_theme_to_stores_after',
         ['stores' => $stores, 'scope' => $scope, 'theme' => $theme]
      );
   }
  • stores is an array of stores
  • scope - scope value defined in \Magento\Store\Model\ScopeInterface
  • theme is an object of \Magento\Framework\View\Design\ThemeInterface

Classes raising the event

  • \Magento\Theme\Model\Config

backend_auth_user_login_failed

Use cases

To perform actions after a backend login attempt has failed.

Origins

\Magento\Backend\Model\Auth::login():

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   public function login($username, $password)
   {
   ..
      } catch (PluginAuthenticationException $e) {
         $this->_eventManager->dispatch(
               'backend_auth_user_login_failed',
               ['user_name' => $username, 'exception' => $e]
         );
         throw $e;
      } catch (\Magento\Framework\Exception\LocalizedException $e) {
         $this->_eventManager->dispatch(
               'backend_auth_user_login_failed',
               ['user_name' => $username, 'exception' => $e]
         );
   }
  • user_name - username string
  • exception is an object of \Magento\Framework\Exception\LocalizedException or \Magento\Framework\Exception\Plugin\AuthenticationException

Classes raising the event

  • \Magento\Backend\Model\Auth

backend_auth_user_login_success

Use cases

To perform actions after a successful backend login attempt.

Origins

\Magento\Backend\Model\Auth::login():

1
2
3
4
5
6
7
8
   public function login($username, $password)
   {
   ..
               $this->_eventManager->dispatch(
                  'backend_auth_user_login_success',
                  ['user' => $this->getCredentialStorage()]
               );
   }
  • user is an object of \Magento\Backend\Model\Auth\Credential\StorageInterface

Classes raising the event

  • \Magento\Backend\Model\Auth

backend_block_widget_grid_prepare_grid_before

Use cases

To perform actions before a backend grid is prepared.

Origins

\Magento\Backend\Block\Widget\Grid::_prepareGrid():

1
2
3
4
5
6
7
   protected function _prepareGrid()
   {
      $this->_eventManager->dispatch(
         'backend_block_widget_grid_prepare_grid_before',
         ['grid' => $this, 'collection' => $this->getCollection()]
      );
   }
  • this is an object of \Magento\Backend\Block\Widget\Grid
  • collection is an object of \Magento\Framework\Data\Collection

Classes raising the event

  • \Magento\AdvancedSearch\Block\Adminhtml\Search\Grid
  • \Magento\Newsletter\Block\Adminhtml\Subscriber\Grid

braintree_googlepay_update_quote_after

Use cases

To perform actions after braintree updates a quote.

Origins

\PayPal\Braintree\Model\GooglePay\Helper\QuoteUpdater::updateQuote():

1
2
3
4
5
6
7
8
   private function updateQuote(Quote $quote, array $details)
   {
   ...
      $this->eventManager->dispatch('braintree_googlepay_update_quote_after', [
         'quote' => $quote,
         'googlepay_response' => $details
      ]);
   }
  • quote is an object of \Magento\Quote\Model\Quote
  • googlepay_response is a response array

Classes raising the event

  • \PayPal\Braintree\Model\GooglePay\Helper\QuoteUpdater

braintree_googlepay_update_quote_before

Use cases

To perform actions before braintree updates a quote.

Origins

  • \PayPal\Braintree\Model\GooglePay\Helper\QuoteUpdater::updateQuote():

    1
    2
    3
    4
    5
    6
    7
    
     private function updateQuote(Quote $quote, array $details)
     {
         $this->eventManager->dispatch('braintree_googlepay_update_quote_before', [
             'quote' => $quote,
             'googlepay_response' => $details
         ]);
     }
    
  • quote is an object of \Magento\Quote\Model\Quote
  • googlepay_response is a response array

Classes raising the event

  • \PayPal\Braintree\Model\GooglePay\Helper\QuoteUpdater

braintree_paypal_update_quote_after

Use cases

To perform actions after Braintree updates a quote.

Origins

\PayPal\Braintree\Model\Paypal\Helper\QuoteUpdater::updateQuote():

1
2
3
4
5
6
7
8
   private function updateQuote(Quote $quote, array $details)
   {
   ...
      $this->eventManager->dispatch('braintree_paypal_update_quote_before', [
         'quote' => $quote,
         'paypal_response' => $details
      ]);
   }
  • quote is an object of \Magento\Quote\Model\Quote
  • paypal_response is a response array

Classes raising the event

  • \PayPal\Braintree\Model\Paypal\Helper\QuoteUpdater

braintree_paypal_update_quote_before

Use cases

To perform actions before Braintree updates a quote.

Origins

\PayPal\Braintree\Model\Paypal\Helper\QuoteUpdater::updateQuote():

1
2
3
4
5
6
7
   private function updateQuote(Quote $quote, array $details)
   {
      $this->eventManager->dispatch('braintree_paypal_update_quote_before', [
         'quote' => $quote,
         'paypal_response' => $details
      ]);
   }
  • quote is an object of \Magento\Quote\Model\Quote
  • paypal_response is a response array

Classes raising the event

  • \PayPal\Braintree\Model\Paypal\Helper\QuoteUpdater

catalogrule_dirty_notice

Use cases

To perform actions when some catalog rules have changed but changes have not been applied yet.

Origins

\Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog\Index::execute():

1
2
3
4
5
6
7
8
   public function execute()
   {
      $dirtyRules = $this->_objectManager->create(\Magento\CatalogRule\Model\Flag::class)->loadSelf();
      $this->_eventManager->dispatch(
         'catalogrule_dirty_notice',
         ['dirty_rules' => $dirtyRules, 'message' => $this->getDirtyRulesNoticeMessage()]
      );
   }
  • dirty_rules is an object of \Magento\CatalogRule\Model\Flag
  • message is a message string

Classes raising the event

  • \Magento\CatalogRule\Controller\Adminhtml\Promo\Catalog\Index

catalogsearch_reset_search_result

Use cases

To perform actions when search results are reset.

Origins

  • \Magento\CatalogSearch\Model\ResourceModel\Fulltext::resetSearchResults():
    1
    2
    3
    4
    5
    6
    
     public function resetSearchResults()
     {
     ...
         $this->_eventManager->dispatch('catalogsearch_reset_search_result');
         return $this;
     }
    
  • \Magento\CatalogSearch\Model\ResourceModel\Fulltext::resetSearchResultsByStore():
    1
    2
    3
    4
    5
    
     public function resetSearchResultsByStore($storeId)
     {
     ...
         $this->_eventManager->dispatch('catalogsearch_reset_search_result', ['store_id' => $storeId]);
    
    

store_id is a store identifier.

Classes raising the event

  • \Magento\CatalogSearch\Model\ResourceModel\Fulltext

catalogsearch_searchable_attributes_load_after

Use cases

To perform actions after searchable attributes get loaded.

Origins

\Magento\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider::getSearchableAttributes():

1
2
3
4
5
6
7
8
   public function getSearchableAttributes($backendType = null)
   {
   ...
         $this->eventManager->dispatch(
               'catalogsearch_searchable_attributes_load_after',
               ['engine' => $this->engine, 'attributes' => $attributes]
         );
   }
  • engine is an object of \Magento\CatalogSearch\Model\ResourceModel\EngineInterface
  • attributes is an array of attributes

Classes raising the event

  • \Magento\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider

catalog_block_product_list_collection

Use cases

To perform actions with a product collection after it is initialized.

Origins

\Magento\Catalog\Block\Product\ListProduct::initializeProductCollection():

1
2
3
4
5
6
7
8
   private function initializeProductCollection()
   {
   ...
      $this->_eventManager->dispatch(
         'catalog_block_product_list_collection',
         ['collection' => $collection]
      );
   }
  • collection is an object of \Magento\Eav\Model\Entity\Collection\AbstractCollection

Classes raising the event

  • \Magento\Catalog\Block\Product\ProductList\Random
  • \Magento\Catalog\Block\Product\ProductList\Promotion

catalog_block_product_status_display

Use cases

To perform actions when the displayProductStockStatus() function is called.

Origins

\Magento\Catalog\Block\Product\AbstractProduct::displayProductStockStatus():

1
2
3
4
5
6
7
   public function displayProductStockStatus()
   {
      $statusInfo = new \Magento\Framework\DataObject(['display_status' => true]);
      $this->_eventManager->dispatch('catalog_block_product_status_display'
                                    , ['status' => $statusInfo]);
      return (bool) $statusInfo->getDisplayStatus();
   }
  • status is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Reports\Block\Product\Compared
  • \Magento\Reports\Block\Product\Widget\Viewed\Item

catalog_category_change_products

Use cases

To perform actions after new products get assigned to a category. Assigned products get unassigned, or positions of assigned products are changed.

Origins

\Magento\Catalog\Model\ResourceModel\Category::_saveCategoryProducts():

1
2
3
4
5
6
7
8
   protected function _saveCategoryProducts($category)
   {
   ...
         $this->_eventManager->dispatch(
               'catalog_category_change_products',
               ['category' => $category, 'product_ids' => $productIds]
         );
   }
  • category is an object of \Magento\Catalog\Model\Category
  • product_ids is a product IDs array

Classes raising the event

  • \Magento\Catalog\Model\ResourceModel\Category

catalog_category_delete_after_done

Use cases

To perform actions after a category gets deleted.

Origins

  • \Magento\Catalog\Model\ResourceModel\Category::delete():

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
     public function delete($object)
     {
         $this->getEntityManager()->delete($object);
         $this->_eventManager->dispatch(
             'catalog_category_delete_after_done',
             ['product' => $object, 'category' => $object]
         );
         return $this;
     }
    
  • product is an object of \Magento\Catalog\Model\Category
  • category is an object of \Magento\Catalog\Model\Category

Classes raising the event

  • \Magento\Catalog\Model\ResourceModel\Category

catalog_category_flat_loadnodes_before

Use cases

To modify a select object before category flat nodes are loaded.

Origins

\Magento\Catalog\Model\ResourceModel\Category\Flat::_loadNodes():

1
2
3
4
5
   protected function _loadNodes($parentNode = null, $recursionLevel = 0, $storeId = 0, $skipMenuFilter = false)
   {
   ...
      $this->_eventManager->dispatch('catalog_category_flat_loadnodes_before'
                                    , ['select' => $select]);
  • select is an object of Zend_Db_Select

Classes raising the event

  • \Magento\Catalog\Model\ResourceModel\Category\Flat

catalog_category_prepare_save

Use cases

To modify a category before it is saved.

Origins

\Magento\Catalog\Controller\Adminhtml\Category\Save::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
               $this->_eventManager->dispatch(
                  'catalog_category_prepare_save',
                  ['category' => $category, 'request' => $this->getRequest()]
               );
  • category is an object of \Magento\Catalog\Model\Category
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Catalog\Controller\Adminhtml\Category\Save

catalog_category_tree_init_inactive_category_ids

Use cases

To add more inactive category IDs.

Origins

  • \Magento\Catalog\Model\ResourceModel\Category\Tree::_initInactiveCategoryIds()
  • \Magento\Catalog\Model\ResourceModel\Category\Flat::_initInactiveCategoryIds():
    1
    2
    3
    4
    5
    6
    
     protected function _initInactiveCategoryIds()
     {
         $this->_inactiveCategoryIds = [];
         $this->_eventManager->dispatch('catalog_category_tree_init_inactive_category_ids', ['tree' => $this]);
         return $this;
     }
    

tree is an object of \Magento\Catalog\Model\ResourceModel\Category\Tree or \Magento\Catalog\Model\ResourceModel\Category\Flat

Classes that raise the event

  • \Magento\Catalog\Model\ResourceModel\Category\Tree
  • \Magento\Catalog\Model\ResourceModel\Category\Flat

catalog_controller_category_delete

Use cases

To perform actions before a category gets deleted.

Origins

\Magento\Catalog\Controller\Adminhtml\Category\Delete::execute():

1
2
3
4
   public function execute()
   {
   ...
               $this->_eventManager->dispatch('catalog_controller_category_delete', ['category' => $category]);
  • category is an object of \Magento\Catalog\Model\Category

Classes raising the event

  • \Magento\Catalog\Controller\Adminhtml\Category\Delete

catalog_controller_category_init_after

Use cases

To perform actions after a category gets initialized.

Origins

\Magento\Catalog\Controller\Category\View::_initCategory():

1
2
3
4
5
6
7
   protected function _initCategory()
   {
   ...
         $this->_eventManager->dispatch(
               'catalog_controller_category_init_after',
               ['category' => $category, 'controller_action' => $this]
         );
  • category is an object of \Magento\Catalog\Model\Category
  • controller_action is an object of \Magento\Catalog\Controller\Category\View

Classes raising the event

  • \Magento\Catalog\Controller\Category\View

catalog_controller_product_init_after

Use cases

To perform actions after a product gets initialized.

Origins

\Magento\Catalog\Helper\Product::initProduct():

1
2
3
4
5
6
7
   public function initProduct($productId, $controller, $params = null)
   {
   ...
         $this->_eventManager->dispatch(
               'catalog_controller_product_init_after',
               ['product' => $product, 'controller_action' => $controller]
         );
  • product is an object of \Magento\Catalog\Model\Product
  • controller_action is an object of \Magento\Framework\App\Action\Action

Classes raising the event

  • \Magento\Catalog\Helper\Product

catalog_controller_product_init_before

Use cases

To perform actions before a product gets initialized.

Origins

\Magento\Catalog\Helper\Product::initProduct():

1
2
3
4
5
6
7
   public function initProduct($productId, $controller, $params = null)
   {
   ...
      $this->_eventManager->dispatch(
         'catalog_controller_product_init_before',
         ['controller_action' => $controller, 'params' => $params]
      );
  • params is an object of \Magento\Framework\DataObject
  • controller_action is an object of \Magento\Framework\App\Action\Action

Classes raising the event

  • \Magento\Catalog\Helper\Product

catalog_controller_product_view

Use cases

To perform actions before a product page is displayed on the frontend.

Origins

\Magento\Catalog\Helper\Product\View::prepareAndRender():

1
2
3
4
   public function initProduct($productId, $controller, $params = null)
   {
   ...
      $this->_eventManager->dispatch('catalog_controller_product_view', ['product' => $product]);
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Catalog\Helper\Product\View

catalog_prepare_price_select

Use cases

To modify the way prices are added to a select statement.

Origins

\Magento\Catalog\Model\ResourceModel\Product\Collection::_preparePriceExpressionParameters():

1
2
3
4
5
6
7
8
9
10
11
12
   protected function _preparePriceExpressionParameters($select)
   {
   ...
      $eventArgs = [
         'select' => $select,
         'table' => $table,
         'store_id' => $this->getStoreId(),
         'response_object' => $response,
      ];

      $this->_eventManager->dispatch('catalog_prepare_price_select', $eventArgs);

  • select is an object of \Magento\Framework\DB\Select
  • table is a table name
  • store_id is a store ID
  • response_object is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Reports\Model\ResourceModel\Product\Lowstock\Collection
  • \Magento\Reports\Model\ResourceModel\Product\Downloads\Collection

catalog_product_attribute_update_before

Use cases

To perform actions before a product attribute(s) gets updated.

Origins

\Magento\Catalog\Model\Product\Action::updateAttributes():

1
2
3
4
5
6
   public function updateAttributes($productIds, $attrData, $storeId)
   {
      $this->_eventManager->dispatch(
         'catalog_product_attribute_update_before',
         ['attributes_data' => &$attrData, 'product_ids' => &$productIds, 'store_id' => &$storeId]
      );
  • attributes_data is a data array
  • product_ids is a product IDs array
  • store_id is a store ID

Classes raising the event

  • \Magento\Catalog\Model\Product\Action

catalog_product_collection_apply_limitations_after

Use cases

To perform actions after product collection limitations have been applied.

Origins

\Magento\Catalog\Model\ResourceModel\Product\Collection::_applyProductLimitations():

1
2
3
4
5
6
7
   protected function _applyProductLimitations()
   {
   ...
      $this->_eventManager->dispatch(
         'catalog_product_collection_apply_limitations_after',
         ['collection' => $this]
      );
  • collection is an object of \Magento\Catalog\Model\ResourceModel\Product\Collection

Classes raising the event

  • \Magento\Reports\Model\ResourceModel\Product\Downloads\Collection
  • \Magento\Reports\Model\ResourceModel\Product\Lowstock\Collection

catalog_product_collection_before_add_count_to_categories

Use cases

To perform actions before category counts get added to a product collection.

Origins

  • \Magento\Catalog\Model\ResourceModel\Product\Collection::addCountToCategories():

    1
    2
    3
    4
    5
    6
    7
    
     public function addCountToCategories($categoryCollection)
     {
     ...
             $this->_eventManager->dispatch(
                 'catalog_product_collection_before_add_count_to_categories',
                 ['collection' => $this]
             );
    
  • collection is an object of \Magento\Catalog\Model\ResourceModel\Product\Collection

Classes raising the event

  • \Magento\Reports\Model\ResourceModel\Product\Downloads\Collection
  • \Magento\Reports\Model\ResourceModel\Product\Lowstock\Collection

catalog_product_collection_load_after

Use cases

To perform actions after a product collection gets loaded.

Origins

\Magento\Catalog\Model\ResourceModel\Product\Collection::_afterLoad():

1
2
3
4
   protected function _afterLoad()
   {
   ...
   $this->_eventManager->dispatch('catalog_product_collection_load_after', ['collection' => $this]);
  • collection is an object of \Magento\Catalog\Model\ResourceModel\Product\Collection

Classes raising the event

  • \Magento\Reports\Model\ResourceModel\Product\Downloads\Collection
  • \Magento\Reports\Model\ResourceModel\Product\Lowstock\Collection

catalog_product_compare_add_product

Use cases

To perform actions after a product gets added to a compare list.

Origins

\Magento\Catalog\Controller\Product\Compare\Add::execute():

1
2
3
4
   public function execute()
   {
   ...
   $this->_eventManager->dispatch('catalog_product_compare_add_product', ['product' => $product]);
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Catalog\Controller\Product\Compare\Add

catalog_product_compare_item_collection_clear

Use cases

To perform actions after a compare list collection gets cleared.

Origins

\Magento\Catalog\Model\ResourceModel\Product\Compare\Item\Collection::clear():

1
2
3
4
5
   public function clear()
   {
      $this->_catalogProductCompareItem->clearItems($this->getVisitorId(), $this->getCustomerId());
      $this->_eventManager->dispatch('catalog_product_compare_item_collection_clear');
   ...

Classes raising the event

  • \Magento\Catalog\Model\ResourceModel\Product\Compare\Item\Collection

catalog_product_compare_remove_product

Use cases

To perform actions after a product gets removed from a compare list.

Origins

\Magento\Catalog\Controller\Product\Compare\Remove::execute(): d

1
2
3
4
5
6
7
8
   public function execute()
   {
   ...
                  $this->_eventManager->dispatch(
                     'catalog_product_compare_remove_product',
                     ['product' => $item]
                  );
   ...
  • product is an object of \Magento\Catalog\Model\Product\Compare\Item

Classes raising the event

  • \Magento\Catalog\Controller\Product\Compare\Remove

catalog_product_delete_after_done

Use cases

To perform actions after a product gets deleted.

Origins

\Magento\Catalog\Model\ResourceModel\Product::delete():

1
2
3
4
5
6
7
8
   public function delete($object)
   {
      $this->getEntityManager()->delete($object);
      $this->eventManager->dispatch(
         'catalog_product_delete_after_done',
         ['product' => $object]
      );
   ...
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Catalog\Model\ResourceModel\Product
  • \Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModel

catalog_product_edit_action

Use cases

To perform actions after a product gets edited in admin panel.

Origins

\Magento\Catalog\Controller\Adminhtml\Product\Edit::execute():

1
2
3
4
   public function execute()
   {
   ...
      $this->_eventManager->dispatch('catalog_product_edit_action', ['product' => $product]);
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Downloadable\Controller\Adminhtml\Downloadable\Product\Edit\Edit
  • \Magento\Bundle\Controller\Adminhtml\Bundle\Product\Edit\Edit

Use cases

To modify the way a product admin gallery block layout is rendered.

Origins

\Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Gallery\Content::_prepareLayout():

1
2
3
4
   protected function _prepareLayout()
   {
   ...
      $this->_eventManager->dispatch('catalog_product_gallery_prepare_layout', ['block' => $this]);
  • block is an object of \Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Gallery\Content

Classes raising the event

  • \Magento\Catalog\Block\Adminhtml\Product\Helper\Form\Gallery\Content

Use cases

To perform an action after product gallery image gets uploaded.

Origins

\Magento\Catalog\Controller\Adminhtml\Product\Gallery\Upload::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
         $this->_eventManager->dispatch(
               'catalog_product_gallery_upload_image_after',
               ['result' => $result, 'action' => $this]
         );
  • result is an array of uploader save data
  • action is an object of \Magento\Catalog\Controller\Adminhtml\Product\Gallery\Upload

Classes raising the event

  • \Magento\Catalog\Controller\Adminhtml\Product\Gallery\Upload

catalog_product_get_final_price

Use cases

To alter the way the final product price is generated.

Origins

  • \Magento\Catalog\Model\Product\Type\Price::getFinalPrice():
    1
    2
    3
    4
    
     public function getFinalPrice($qty, $product)
     {
     ...
      $this->_eventManager->dispatch('catalog_product_get_final_price', ['product' => $product, 'qty' => $qty]);
    
  • \Magento\Bundle\Pricing\Price\BundleSelectionPrice::getValue():
    1
    2
    3
    4
    5
    6
    7
    
    public function getValue()
    {
    ...
                 $this->eventManager->dispatch(
                     'catalog_product_get_final_price',
                     ['product' => $product, 'qty' => $this->bundleProduct->getQty()]
                 );
    
  • \Magento\Bundle\Model\Product\Price::getSelectionFinalTotalPrice():
1
2
3
4
5
6
7
8
9
10
11
12
13
     public function getSelectionFinalTotalPrice(
        $bundleProduct,
        $selectionProduct,
        $bundleQty,
        $selectionQty,
        $multiplyQty = true,
        $takeTierPrice = true
    ) {
    ...
                 $this->_eventManager->dispatch(
                    'catalog_product_get_final_price',
                    ['product' => $product, 'qty' => $bundleQty]
                );
  • product is an object of \Magento\Catalog\Model\Product
  • qty for quantity float or null

Classes raising the event

  • \Magento\Bundle\Model\Product\Price
  • \Magento\Downloadable\Model\Product\Price
  • \Magento\GroupedProduct\Model\Product\Type\Grouped\Price

catalog_product_import_bunch_delete_after

Use cases

To perform an action after products get deleted.

Origins

\Magento\CatalogImportExport\Model\Import\Product::_deleteProducts():

1
2
3
4
5
6
7
   protected function _deleteProducts()
   {
   ...
               $this->_eventManager->dispatch(
                  'catalog_product_import_bunch_delete_after',
                  ['adapter' => $this, 'bunch' => $bunch]
               );
  • adapter is an object of \Magento\CatalogImportExport\Model\Import\Product
  • bunch is a data array

Classes raising the event

  • \Magento\CatalogImportExport\Model\Import\Product

catalog_product_import_bunch_delete_commit_before

Use cases

To perform an action before products get deleted.

Origins

\Magento\CatalogImportExport\Model\Import\Product::_deleteProducts():

1
2
3
4
5
6
7
8
9
10
11
   protected function _deleteProducts()
   {
   ...
                  $this->_eventManager->dispatch(
                     'catalog_product_import_bunch_delete_commit_before',
                     [
                           'adapter' => $this,
                           'bunch' => $bunch,
                           'ids_to_delete' => $idsToDelete,
                     ]
                  );
  • adapter is an object of \Magento\CatalogImportExport\Model\Import\Product
  • bunch is a data array
  • ids_to_delete is a product IDs array

Classes raising the event

  • \Magento\CatalogImportExport\Model\Import\Product

catalog_product_import_bunch_save_after

Use cases

To perform an action after products get saved.

Origins

\Magento\CatalogImportExport\Model\Import\Product::_saveProducts():

1
2
3
4
5
6
7
   protected function _deleteProducts()
   {
   ...
         $this->_eventManager->dispatch(
               'catalog_product_import_bunch_save_after',
               ['adapter' => $this, 'bunch' => $bunch]
         );
  • adapter is an object of \Magento\CatalogImportExport\Model\Import\Product
  • bunch is a data array

Classes raising the event

  • \Magento\CatalogImportExport\Model\Import\Product

catalog_product_import_finish_before

Use cases

To perform an action before a product import is finished.

Origins

\Magento\CatalogImportExport\Model\Import\Product::_importData():

1
2
3
4
   protected function _importData()
   {
   ...
      $this->_eventManager->dispatch('catalog_product_import_finish_before', ['adapter' => $this]);
  • adapter is an object of \Magento\CatalogImportExport\Model\Import\Product

Classes raising the event

  • \Magento\CatalogImportExport\Model\Import\Product

catalog_product_is_salable_after

Use cases

To perform an action after it checks if a product is available for sale.

Origins

\Magento\Catalog\Model\Product::isSalable():

1
2
3
4
5
6
7
8
   public function isSalable()
   {
   ...
      $object = new \Magento\Framework\DataObject(['product' => $this, 'is_salable' => $salable]);
      $this->_eventManager->dispatch(
         'catalog_product_is_salable_after',
         ['product' => $this, 'salable' => $object]
      );
  • product is an object of \Magento\Catalog\Model\Product
  • salable is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\CatalogImportExport\Model\Import\Proxy\Product
  • \Magento\Catalog\Model\Product

catalog_product_is_salable_before

Use cases

To perform an action before it checks if a product is available for sale.

Origins

\Magento\Catalog\Model\Product::isSalable():

1
2
3
4
   public function isSalable()
   {
   ...
      $this->_eventManager->dispatch('catalog_product_is_salable_before', ['product' => $this]);
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\CatalogImportExport\Model\Import\Proxy\Product
  • \Magento\Catalog\Model\Product

catalog_product_new_action

Use cases

To perform an action after a new product is created.

Origins

\Magento\Catalog\Controller\Adminhtml\Product\NewAction::execute():

1
2
3
4
   public function execute()
   {
   ...
      $this->_eventManager->dispatch('catalog_product_new_action', ['product' => $product]);
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Catalog\Controller\Adminhtml\Product\NewAction
  • \Magento\Bundle\Controller\Adminhtml\Bundle\Product\Edit\NewAction
  • \Magento\Downloadable\Controller\Adminhtml\Downloadable\Product\Edit\NewAction

catalog_product_option_price_configuration_after

Use cases

To modify JSON representation of product price options.

Origins

\Magento\Bundle\Block\Catalog\Product\View\Type\Bundle::getJsonConfig() and \Magento\Catalog\Block\Product\View\Options::getJsonConfig():

1
2
3
4
5
6
7
8
9
10
   public function getJsonConfig()
   {
   ...
      $configObj = new DataObject(
         [
               'config' => $config,
         ]
      );
      $this->_eventManager->dispatch('catalog_product_option_price_configuration_after', ['configObj' => $configObj]);

  • configObj is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Bundle\Block\Catalog\Product\View\Type\Bundle
  • \Magento\Catalog\Block\Adminhtml\Product\Composite\Fieldset\Options

catalog_product_prepare_index_select

Use cases

To alter temporary price index data for bundle products.

Origins

\Magento\Bundle\Model\ResourceModel\Indexer\Price::prepareBundlePriceByType():

1
2
3
4
5
6
7
8
9
10
11
12
   private function prepareBundlePriceByType($priceType, array $dimensions, $entityIds = null)
   {
   ...
      $this->eventManager->dispatch(
         'catalog_product_prepare_index_select',
         [
               'select' => $select,
               'entity_field' => new \Zend_Db_Expr('e.entity_id'),
               'website_field' => new \Zend_Db_Expr('pw.website_id'),
               'store_field' => new \Zend_Db_Expr('cwd.default_store_id')
         ]
      );
  • select is an object of \Magento\Framework\DB\Select
  • entity_field is a Zend_Db_Expr object
  • website_field is a Zend_Db_Expr object
  • store_field is a Zend_Db_Expr object

Classes raising the event

  • \Magento\Bundle\Model\ResourceModel\Indexer\Price

catalog_product_to_website_change

Use cases

To perform actions after product websites have been updated.

Origins

\Magento\Catalog\Model\Product\Action::updateWebsites():

1
2
3
4
   public function updateWebsites($productIds, $websiteIds, $type)
   {
   ...
      $this->_eventManager->dispatch('catalog_product_to_website_change', ['products' => $productIds]);
  • products is a product IDs array

Classes raising the event

  • \Magento\Catalog\Model\Product\Action

catalog_product_upsell

Use cases

To do modify a product’s upsell collection.

Origins

\Magento\Catalog\Block\Product\ProductList\Upsell::_prepareData():

1
2
3
4
5
6
7
   protected function _prepareData()
   {
   ...
      $this->_eventManager->dispatch(
         'catalog_product_upsell',
         ['product' => $product, 'collection' => $this->_itemCollection, 'limit' => null]
      );
  • product is an object of \Magento\Catalog\Model\Product
  • collection is an object of \Magento\Catalog\Model\ResourceModel\Product\Collection
  • limit - null

Classes raising the event

  • \Magento\Catalog\Block\Product\ProductList\Upsell

catalog_product_validate_variations_before

Use cases

To perform actions before a product variations attributes validation.

Origins

\Magento\ConfigurableProduct\Model\Product\Validator\Plugin::_validateProductVariations():

1
2
3
4
5
6
7
   protected function _validateProductVariations(Product $parentProduct, array $products, RequestInterface $request)
   {
   ...
      $this->eventManager->dispatch(
         'catalog_product_validate_variations_before',
         ['product' => $parentProduct, 'variations' => $products]
      );
  • product is an object of \Magento\Catalog\Model\Product
  • variations is an array

Classes raising the event

  • \Magento\ConfigurableProduct\Model\Product\Validator\Plugin

catalog_product_view_config

Use cases

To perform actions a JSON encoded product configuration.

Origins

\Magento\Catalog\Block\Product\View::getJsonConfig():

1
2
3
4
5
   public function getJsonConfig()
   {
   ...
   $responseObject = new \Magento\Framework\DataObject();
   $this->_eventManager->dispatch('catalog_product_view_config', ['response_object' => $responseObject]);
  • response_object is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\ProductAlert\Block\Product\View\Stock
  • \Magento\ProductAlert\Block\Product\View\Price

category_move

Use cases

To perform actions after a category has been moved.

Origins

\Magento\Catalog\Model\Category::move():

1
2
3
4
   public function move($parentId, $afterCategoryId)
   {
   ...
   $this->_eventManager->dispatch('category_move', $eventParams);
  • category_move is a data array

Classes raising the event

  • \Magento\Catalog\Model\Category

category_prepare_ajax_response

Use cases

To modify category ajax response object.

Origins

\Magento\Catalog\Controller\Adminhtml\Category::ajaxRequestResponse():

1
2
3
4
5
6
7
   protected function ajaxRequestResponse($category, $resultPage)
   {
   ...
      $this->_eventManager->dispatch(
         'category_prepare_ajax_response',
         ['response' => $eventResponse, 'controller' => $this]
      );
  • response is an object of \Magento\Framework\DataObject
  • controller is an object of \Magento\Catalog\Controller\Adminhtml\Category

Classes raising the event

  • \Magento\Catalog\Controller\Adminhtml\Category\Grid
  • \Magento\Catalog\Controller\Adminhtml\Category\RefreshPath

catelogsearch_searchable_attributes_load_after

Use cases

To modify a searchable attributes array.

Origins

\Magento\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider::getSearchableAttributes():

1
2
3
4
5
6
7
   public function getSearchableAttributes($backendType = null)
   {
   ...
      $this->eventManager->dispatch(
               'catelogsearch_searchable_attributes_load_after',
               ['engine' => $this->engine, 'attributes' => $attributes]
      );
  • engine is an object of \Magento\CatalogSearch\Model\ResourceModel\EngineInterface
  • attributes is an array of attributes

Classes raising the event

  • \Magento\CatalogSearch\Model\Indexer\Fulltext\Action\DataProvider

checkout_allow_guest

Use cases

To modify the allow guest checkout check (or do something if it is enabled).

Origins

\Magento\Checkout\Helper\Data::isAllowedGuestCheckout():

1
2
3
4
5
6
7
   public function isAllowedGuestCheckout(\Magento\Quote\Model\Quote $quote, $store = null)
   {
   ...
      $this->_eventManager->dispatch(
               'checkout_allow_guest',
               ['quote' => $quote, 'store' => $store, 'result' => $result]
      );
  • quote is an object of \Magento\Quote\Model\Quote
  • store is an integer or an object of \Magento\Store\Model\Store
  • result is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Checkout\Helper\Data

checkout_cart_add_product_complete

Use cases

To perform actions after a product has been added to the cart.

Origins

\Magento\Checkout\Controller\Cart\Add::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
         $this->_eventManager->dispatch(
               'checkout_cart_add_product_complete',
               ['product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse()]
         );
  • product is an object of \Magento\Catalog\Model\Product
  • request is an object of \Magento\Framework\App\RequestInterface
  • response is an object of \Magento\Framework\App\ResponseInterface

Classes raising the event

  • \Magento\Checkout\Controller\Cart\Add

checkout_cart_product_add_before

Use cases

To perform actions before a product has been added to the cart.

Origins

\Magento\Checkout\Model\Cart::addProduct():

1
2
3
4
5
6
7
   public function addProduct($productInfo, $requestInfo = null)
   {
   ...
               $this->_eventManager->dispatch(
                  'checkout_cart_product_add_before',
                  ['info' => $requestInfo, 'product' => $product]
               );
  • info is an integer or an array or an object of \Magento\Framework\DataObject
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Checkout\Model\Cart

checkout_cart_product_update_after

Use cases

To perform actions after a cart item has been updated.

Origins

\Magento\Checkout\Model\Cart::updateItem():

1
2
3
4
5
6
7
   public function updateItem($itemId, $requestInfo = null, $updatingParams = null)
   {
   ...
      $this->_eventManager->dispatch(
         'checkout_cart_product_update_after',
         ['quote_item' => $result, 'product' => $product]
      );
  • quote_item is an object of \Magento\Quote\Model\Quote\Item
  • product is an object of \Magento\Catalog\Model\Product

Classes raising the event

  • \Magento\Checkout\Model\Cart

checkout_cart_save_after

Use cases

To perform actions after a cart has been saved.

Origins

\Magento\Checkout\Model\Cart::save():

1
2
3
4
   public function save()
   {
   ...
      $this->_eventManager->dispatch('checkout_cart_save_after', ['cart' => $this]);
  • cart is an object of \Magento\Checkout\Model\Cart

Classes raising the event

  • \Magento\Checkout\Model\Cart

checkout_cart_save_before

Use cases

To perform actions before a cart is updated.

Origins

\Magento\Checkout\Model\Cart::save():

1
2
3
4
   public function save()
   {
   ...
      $this->_eventManager->dispatch('checkout_cart_save_before', ['cart' => $this]);
  • cart is an object of \Magento\Checkout\Model\Cart

Classes raising the event

  • \Magento\Checkout\Model\Cart

checkout_cart_update_items_after

Use cases

To perform actions after cart items have been updated.

Origins

\Magento\Checkout\Model\Cart::updateItems():

1
2
3
4
5
6
7
   public function updateItems($data)
   {
   ...
      $this->_eventManager->dispatch(
         'checkout_cart_update_items_after',
         ['cart' => $this, 'info' => $infoDataObject]
      );
  • cart is an object of \Magento\Checkout\Model\Cart
  • info is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Checkout\Model\Cart

checkout_cart_update_items_before

Use cases

To perform actions before cart items are updated.

Origins

\Magento\Checkout\Model\Cart::updateItems():

1
2
3
4
5
6
7
   public function updateItems($data)
   {
   ...
      $this->_eventManager->dispatch(
         'checkout_cart_update_items_before',
         ['cart' => $this, 'info' => $infoDataObject]
      );
  • cart is an object of \Magento\Checkout\Model\Cart
  • info is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Checkout\Model\Cart

checkout_cart_update_item_complete

Use cases

To perform actions once a cart item update is complete.

Origins

\Magento\Checkout\Controller\Cart\UpdateItemOptions::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
   $this->_eventManager->dispatch(
               'checkout_cart_update_item_complete',
               ['item' => $item, 'request' => $this->getRequest(), 'response' => $this->getResponse()]
   );
  • item is an object of \Magento\Quote\Model\Quote\Item
  • request is an object of \Magento\Framework\App\RequestInterface
  • response is an object of \Magento\Framework\App\ResponseInterface

Classes raising the event

  • \Magento\Checkout\Controller\Cart\UpdateItemOptions

checkout_controller_multishipping_shipping_post

Use cases

To perform actions before a multishipping shipping method is set.

Origins

\Magento\Multishipping\Controller\Checkout\ShippingPost::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ...
         $this->_eventManager->dispatch(
               'checkout_controller_multishipping_shipping_post',
               ['request' => $this->getRequest(), 'quote' => $this->_getCheckout()->getQuote()]
         );
  • request is an object of \Magento\Framework\App\RequestInterface
  • quote is an object of \Magento\Quote\Model\Quote

Classes raising the event

  • \Magento\Multishipping\Controller\Checkout\ShippingPost

checkout_controller_onepage_saveOrder

Use cases

To perform actions after an attempt to place an order has been made (successful or not).

Origins

\Magento\Checkout\Controller\Onepage\SaveOrder::execute():

1
2
3
4
5
6
7
8
9
10
   public function execute()
   {
   ...
      $this->_eventManager->dispatch(
         'checkout_controller_onepage_saveOrder',
         [
               'result' => $result,
               'action' => $this
         ]
      );
  • result is an object of \Magento\Framework\DataObject
  • action is an object of \Magento\Checkout\Controller\Onepage\SaveOrder

Classes raising the event

  • \Magento\Checkout\Controller\Onepage\SaveOrder

checkout_multishipping_refund_all

Use cases

To do catch a moment when multishipping orders failed to be placed.

Origins

\Magento\Multishipping\Model\Checkout\Type\Multishipping::createOrders():

1
2
3
4
5
6
7
8
   public function execute()
   {
   ...
      } catch (\Exception $e) {
         $this->_eventManager->dispatch('checkout_multishipping_refund_all', ['orders' => $orders]);
         throw $e;
      }

  • orders is an array of orders

Classes raising the event

  • \Magento\Multishipping\Model\Checkout\Type\Multishipping

checkout_onepage_controller_success_action

Use cases

To perform actions when an one page checkout success page is rendered.

Origins

\Magento\Checkout\Controller\Onepage\Success::execute():

1
2
3
4
5
6
7
8
9
10
   public function execute()
   {
   ...
      $this->_eventManager->dispatch(
         'checkout_onepage_controller_success_action',
         [
               'order_ids' => [$session->getLastOrderId()],
               'order' => $session->getLastRealOrder()
         ]
      );
  • order_ids is an array of last order ID(s)
  • order is an object of \Magento\Sales\Model\Order

Classes raising the event

  • \Magento\Checkout\Controller\Onepage\Success

checkout_quote_destroy

Use cases

To perform actions when a session quote is cleared.

Origins

\Magento\Checkout\Model\Session::clearQuote():

1
2
3
4
   public function clearQuote()
   {
   ...
      $this->_eventManager->dispatch('checkout_quote_destroy', ['quote' => $this->getQuote()]);
  • quote is an object of \Magento\Quote\Model\Quote

Classes raising the event

  • \Magento\Checkout\Model\Session

checkout_quote_init

Use cases

To perform actions when a session quote is initialized.

Origins

\Magento\Checkout\Model\Session::getQuote():

1
2
3
4
   public function getQuote()
   {
   ...
   $this->_eventManager->dispatch('checkout_quote_init', ['quote' => $quote]);
  • quote is an object of \Magento\Quote\Model\Quote

Classes raising the event

  • \Magento\Checkout\Model\Session

checkout_submit_all_after

Use cases

To perform actions after an order was placed.

Origins

  • \Magento\Checkout\Model\Type\Onepage::saveOrder():
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
     public function saveOrder()
     {
     ...
         $this->_eventManager->dispatch(
             'checkout_submit_all_after',
             [
                 'order' => $order,
                 'quote' => $this->getQuote()
             ]
         );
    
  • \Magento\Sales\Model\AdminOrder\Create::createOrder():
    1
    2
    3
    4
    
    public function createOrder()
    {
    ...
    $this->_eventManager->dispatch('checkout_submit_all_after', ['order' => $order, 'quote' => $quote]);
    
  • \Magento\Multishipping\Model\Checkout\Type\Multishipping::createOrders():
    1
    2
    3
    4
    5
    6
    7
    
    public function createOrders()
    {
    ...
             $this->_eventManager->dispatch(
                 'checkout_submit_all_after',
                 ['orders' => $orders, 'quote' => $this->getQuote()]
             );
    
  • \Magento\Quote\Model\QuoteManagement::placeOrder():
    1
    2
    3
    4
    
    public function placeOrder($cartId, PaymentInterface $paymentMethod = null)
    {
    ...
    $this->eventManager->dispatch('checkout_submit_all_after', ['order' => $order, 'quote' => $quote]);
    
  • quote is an object of \Magento\Quote\Model\Quote
  • order is an object of \Magento\Sales\Api\Data\OrderInterface

Classes raising the event

  • \Magento\Quote\Model\QuoteManagement
  • \Magento\Multishipping\Model\Checkout\Type\Multishipping
  • \Magento\Sales\Model\AdminOrder\Create
  • \Magento\Checkout\Model\Type\Onepage

checkout_submit_before

Use cases

To perform actions when before a quote is submitted.

Origins

\Magento\Quote\Model\QuoteManagement::placeOrder():

1
2
3
4
   public function placeOrder($cartId, PaymentInterface $paymentMethod = null)
   {
   ...
   $this->eventManager->dispatch('checkout_submit_before', ['quote' => $quote]);
  • quote is an object of \Magento\Quote\Model\Quote

Classes raising the event

  • \Magento\Quote\Model\QuoteManagement

checkout_type_multishipping_create_orders_single

Use cases

To perform actions after a single order is placed within a multishipping checkout.

Origins

\Magento\Multishipping\Model\Checkout\Type\Multishipping::createOrders():

1
2
3
4
5
6
7
   public function createOrders()
   {
   ...
               $this->_eventManager->dispatch(
                  'checkout_type_multishipping_create_orders_single',
                  ['order' => $order, 'address' => $address, 'quote' => $this->getQuote()]
               );
  • quote is an object of \Magento\Quote\Model\Quote
  • order is an object of \Magento\Sales\Model\Order
  • address is an object of \Magento\Quote\Model\Quote\Address

Classes raising the event

  • \Magento\Multishipping\Model\Checkout\Type\Multishipping

checkout_type_multishipping_set_shipping_items

Use cases

To perform actions after shipping information is set within a multishipping checkout.

Origins

\Magento\Multishipping\Model\Checkout\Type\Multishipping::setShippingItemsInformation():

1
2
3
4
   public function setShippingItemsInformation($info)
   {
   ...
         $this->_eventManager->dispatch('checkout_type_multishipping_set_shipping_items', ['quote' => $quote]);
  • quote is an object of \Magento\Quote\Model\Quote

Classes raising the event

  • \Magento\Multishipping\Model\Checkout\Type\Multishipping

checkout_type_onepage_save_order_after

Use cases

To perform actions after an order is saved within a onepage checkout.

Origins

\Magento\Checkout\Model\Type\Onepage::saveOrder():

1
2
3
4
5
6
7
   public function saveOrder()
   {
   ...
         $this->_eventManager->dispatch(
               'checkout_type_onepage_save_order_after',
               ['order' => $order, 'quote' => $this->getQuote()]
         );
  • quote is an object of \Magento\Quote\Model\Quote
  • order is an object of \Magento\Sales\Model\Order

Classes raising the event

  • \Magento\Checkout\Model\Type\Onepage

clean_cache_after_reindex

Use cases

To perform actions before indexed item cache entries are cleared.

Origins

\Magento\Indexer\Model\Processor\CleanCache::afterUpdateMview():

1
2
3
4
   public function afterUpdateMview(\Magento\Indexer\Model\Processor $subject)
   {
      $this->eventManager->dispatch('clean_cache_after_reindex', ['object' => $this->context]);
   ...
  • object is an object of \Magento\Framework\Indexer\CacheContext

Classes raising the event

  • \Magento\Indexer\Model\Processor\CleanCache

clean_cache_by_tags

Use cases

To perform actions at the time specific tags are cleaned from cache.

Origins

  • \Magento\Framework\Model\AbstractModel::afterSave():

    1
    2
    3
    4
    
    public function afterSave()
    {
    ...
    $this->_eventManager->dispatch('clean_cache_by_tags', ['object' => $this]);
    
  • \Magento\Framework\Model\AbstractModel::afterDelete():

    1
    2
    3
    4
    
    public function afterSave()
    {
    ...
    $this->_eventManager->dispatch('clean_cache_by_tags', ['object' => $this]);
    
  • \Magento\CatalogInventory\Model\Indexer\Stock\CacheCleaner::clean():

    1
    2
    3
    4
    
    public function clean(array $productIds, callable $reindex)
    {
    ...
    $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
    
  • \Magento\Catalog\Plugin\Model\Product\Action\UpdateAttributesFlushCache::afterUpdateAttributes():

    1
    2
    3
    4
    5
    6
    7
    
    public function afterUpdateAttributes(
         \Magento\Catalog\Model\Product\Action $subject,
         \Magento\Catalog\Model\Product\Action $result
     ) {
         $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
         return $result;
    }
    
  • \Magento\Catalog\Plugin\Model\Product\Action\UpdateAttributesFlushCache::afterUpdateWebsites():

    1
    2
    3
    4
    5
    
    public function afterUpdateWebsites(
         \Magento\Catalog\Model\Product\Action $subject
     ) {
         $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
    }
    
  • \Magento\Catalog\Model\Category::move():

    1
    2
    3
    4
    
    public function move($parentId, $afterCategoryId)
    {
    ...
    $this->_eventManager->dispatch('clean_cache_by_tags', ['object' => $this]);
    
  • \Magento\Catalog\Model\Indexer\Product\Category\Action\Rows::execute():

    1
    2
    3
    4
    
    public function execute(array $entityIds = [], $useTempTable = false)
    {
    ...
    $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
    
  • \Magento\Catalog\Model\Indexer\Category\Product\Action\Rows::execute():

    1
    2
    3
    4
    
    public function execute(array $entityIds = [], $useTempTable = false)
    {
    ...
    $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
    
  • \Magento\InventoryCache\Model\FlushCacheByProductIds::execute():

    1
    2
    3
    4
    
    public function execute(array $productIds)
    {
    ...
    $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $cacheContext]);
    
  • \Magento\CatalogRule\Model\Indexer\AbstractIndexer::executeFull():

    1
    2
    3
    4
    
    public function executeFull()
    {
    $this->indexBuilder->reindexFull();
    $this->_eventManager->dispatch('clean_cache_by_tags', ['object' => $this]);
    
  • \Magento\Indexer\Model\Indexer\CacheCleaner::cleanCache():

    1
    2
    3
    
    private function cleanCache()
    {
         $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->cacheContext]);
    
  • \Magento\Indexer\Model\Processor\CleanCache::afterReindexAllInvalid():

    1
    2
    3
    
    public function afterReindexAllInvalid(\Magento\Indexer\Model\Processor $subject)
    {
    $this->eventManager->dispatch('clean_cache_by_tags', ['object' => $this->context]);
    

object is an object of \Magento\Framework\Indexer\CacheContext.

Classes raising the event

  • \Magento\Indexer\Model\Processor\CleanCache
  • \Magento\Weee\Model\Tax
  • \Magento\Reports\Model\Event

clean_catalog_images_cache_after

Use cases

To perform actions after image cache has been cleared.

Origins

\Magento\Backend\Controller\Adminhtml\Cache\CleanImages::execute():

1
2
3
4
   public function execute()
   {
   ....
   $this->_eventManager->dispatch('clean_catalog_images_cache_after');

Classes raising the event

  • \Magento\Backend\Controller\Adminhtml\Cache\CleanImages

clean_media_cache_after

Use cases

To perform actions after JavaScript/CSS cache has been cleared.

Origins

\Magento\Backend\Controller\Adminhtml\Cache\CleanMedia::execute():

1
2
3
4
   public function execute()
   {
   ....
   $this->_eventManager->dispatch('clean_media_cache_after');

Classes raising the event

  • \Magento\Backend\Controller\Adminhtml\Cache\CleanMedia

clean_static_files_cache_after

Use cases

To perform actions after static files cache has been cleared.

Origins

\Magento\Backend\Controller\Adminhtml\Cache\CleanStaticFiles::execute():

1
2
3
4
   public function execute()
   {
   ....
   $this->_eventManager->dispatch('clean_static_files_cache_after');

Classes raising the event

  • \Magento\Backend\Controller\Adminhtml\Cache\CleanStaticFiles

cms_controller_router_match_before

Use cases

To perform actions before a CMS page is matched.

Origins

\Magento\Cms\Controller\Router::match():

1
2
3
4
5
6
7
   public function match(\Magento\Framework\App\RequestInterface $request)
   {
   ....
   $this->_eventManager->dispatch(
         'cms_controller_router_match_before',
         ['router' => $this, 'condition' => $condition]
   );
  • router is an object of \Magento\Cms\Controller\Router
  • condition is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Cms\Controller\Router

cms_page_prepare_save

Use cases

To perform actions before a cms page is saved.

Origins

\Magento\Cms\Controller\Adminhtml\Page\Save::execute():

1
2
3
4
5
6
7
   public function execute()
   {
   ....
   $this->_eventManager->dispatch(
                  'cms_page_prepare_save',
                  ['page' => $model, 'request' => $this->getRequest()]
   );
  • page is an object of \Magento\Cms\Model\Page
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Cms\Controller\Adminhtml\Page\Save

cms_page_render

Use cases

To perform actions before a cms page is rendered.

Origins

\Magento\Cms\Helper\Page::prepareResultPage():

1
2
3
4
5
6
7
   public function prepareResultPage(ActionInterface $action, $pageId = null)
   {
   ....
      $this->_eventManager->dispatch(
         'cms_page_render',
         ['page' => $this->_page, 'controller_action' => $action, 'request' => $this->_getRequest()]
      );
  • page is an object of \Magento\Cms\Model\Page
  • request is an object of \Magento\Framework\App\RequestInterface
  • controller_action is an object of \Magento\Framework\App\ActionInterface

Classes raising the event

  • \Magento\Cms\Helper\Page

cms_wysiwyg_images_static_urls_allowed

Use cases

To do change whether using static URLs is allowed or not.

Origins

  • \Magento\Cms\Helper\Wysiwyg\Images::isUsingStaticUrlsAllowed():

    1
    2
    3
    4
    5
    6
    7
    
     public function isUsingStaticUrlsAllowed()
     {
     ....
         $this->_eventManager->dispatch(
             'cms_wysiwyg_images_static_urls_allowed',
             ['result' => $checkResult, 'store_id' => $this->_storeId]
         );
    
  • result is a PHP object variable
  • store_id is a store ID

Classes raising the event

  • \Magento\Cms\Helper\Wysiwyg\Images

controller_action_catalog_product_save_entity_after

Use cases

To perform actions after a product has been saved in backend.

Origins

  • \Magento\Catalog\Controller\Adminhtml\Product\Save::execute():

    1
    2
    3
    4
    5
    6
    7
    
    public function execute()
    {
    ....
    $this->_eventManager->dispatch(
       'controller_action_catalog_product_save_entity_after',
          ['controller' => $this, 'product' => $product]
    );
    
  • product is an object of \Magento\Catalog\Model\Product
  • controller is an object of \Magento\Catalog\Controller\Adminhtml\Product\Save

Classes raising the event

  • \Magento\Catalog\Controller\Adminhtml\Product\Save
  • \Magento\Bundle\Controller\Adminhtml\Bundle\Product\Edit\Save
  • \Magento\Downloadable\Controller\Adminhtml\Downloadable\Product\Edit\Save

controller_action_inventory_populate_source_with_data

Use cases

Modify inventory source before it gets saved.

Origins

\Magento\InventoryAdminUi\Controller\Adminhtml\Source\Save::processSave():

1
2
3
4
5
6
7
8
9
10
private function processSave(SourceInterface $source, array $requestData)
{
....
      $this->_eventManager->dispatch(
         'controller_action_inventory_populate_source_with_data',
         [
               'request' => $this->getRequest(),
               'source' => $source,
         ]
      );
  • request is an object of \Magento\Framework\App\RequestInterface
  • source is an object of \Magento\InventoryApi\Api\Data\SourceInterface

Classes raising the event

  • \Magento\InventoryAdminUi\Controller\Adminhtml\Source\Save

controller_action_inventory_populate_stock_with_data

Use cases

Modify inventory stock model before it gets saved.

Origins

\Magento\InventoryAdminUi\Model\Stock\StockSaveProcessor::process():

1
2
3
4
5
6
7
8
9
10
public function process($stockId, RequestInterface $request): int
{
....
      $this->eventManager->dispatch(
         'controller_action_inventory_populate_stock_with_data',
         [
               'request' => $request,
               'stock' => $stock,
         ]
      );
  • request is an object of \Magento\Framework\App\RequestInterface
  • stock is an object of \Magento\InventoryApi\Api\Data\StockInterface

Classes raising the event

  • \Magento\InventoryAdminUi\Model\Stock\StockSaveProcessor

controller_action_inventory_source_save_after

Use cases

Modify inventory source after it gets saved.

Origins

\Magento\InventoryAdminUi\Controller\Adminhtml\Source\Save::processSave():

1
2
3
4
5
6
7
8
9
10
private function processSave(SourceInterface $source, array $requestData)
{
....
      $this->_eventManager->dispatch(
         'controller_action_inventory_source_save_after',
         [
               'request' => $this->getRequest(),
               'source' => $source,
         ]
      );
  • request is an object of \Magento\Framework\App\RequestInterface
  • source is an object of \Magento\InventoryApi\Api\Data\SourceInterface

Classes raising the event

  • \Magento\InventoryAdminUi\Controller\Adminhtml\Source\Save

controller_action_layout_render_before

Use cases

To perform actions before page layout is rendered.

Origins

\Magento\Framework\App\View::renderLayout():

1
2
3
4
public function renderLayout($output = '')
{
....
$this->_eventManager->dispatch('controller_action_layout_render_before');

Classes raising the event

  • \Magento\Framework\App\View

controller_action_nocookies

Use cases

To perform actions before a nocookies page is rendered.

Origins

\Magento\Cookie\Controller\Index\NoCookies::execute():

1
2
3
4
5
6
7
public function execute()
{
....
$this->_eventManager->dispatch(
         'controller_action_nocookies',
         ['action' => $this, 'redirect' => $redirect]
);
  • action is an object of \Magento\Cookie\Controller\Index\NoCookies
  • redirect is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Cookie\Controller\Index\NoCookies

controller_action_noroute

Use cases

To perform actions before a 404 page is rendered.

Origins

\Magento\Framework\Controller\Noroute\Index::execute():

1
2
3
4
5
public function execute()
{
....
$this->_eventManager->dispatch('controller_action_noroute',
      ['action' => $this, 'status' => $status]);
  • action is an object of \Magento\Cookie\Controller\Index\NoCookies
  • status is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Framework\Controller\Noroute\Index

controller_action_postdispatch

Use cases

To perform actions when postdispatch events are raised.

Origins

\Magento\Framework\App\Action\Plugin\EventDispatchPlugin::dispatchPostDispatchEvents():

1
2
3
4
private function dispatchPostDispatchEvents(ActionInterface $action)
{
....
$this->eventManager->dispatch('controller_action_postdispatch', $this->getEventParameters($action));
  • controller_action is an object of \Magento\Framework\App\ActionInterface
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Framework\App\Action\Plugin\EventDispatchPlugin

controller_action_predispatch

Use cases

To perform actions when predispatch events are raised.

Origins

\Magento\Framework\App\Action\Plugin\EventDispatchPlugin::dispatchPreDispatchEvents():

1
2
3
4
private function dispatchPreDispatchEvents(ActionInterface $action)
{
$this->eventManager->dispatch('controller_action_predispatch', $this->getEventParameters($action));
...
  • controller_action is an object of \Magento\Framework\App\ActionInterface
  • request is an object of \Magento\Framework\App\RequestInterface

Classes raising the event

  • \Magento\Framework\App\Action\Plugin\EventDispatchPlugin

controller_front_send_response_before

Use cases

To perform actions before sending application output.

Origins

\Magento\Framework\App\Http::launch():

1
2
3
4
5
6
public function launch()
{
...
$eventParams = ['request' => $this->_request, 'response' => $this->_response];
$this->_eventManager->dispatch('controller_front_send_response_before', $eventParams);
...
  • response is an object of \Magento\Framework\App\Response\Http
  • request is an object of \Magento\Framework\App\Request\Http

Classes raising the event

  • \Magento\Framework\App\Http

core_app_init_current_store_after

Use cases

To perform actions after the current store is initialized in test cases.

Origins

\Magento\TestFramework\Store\StoreManager::dispatchInitCurrentStoreAfterEvent():

1
2
3
4
protected function dispatchInitCurrentStoreAfterEvent()
{
...
$this->eventManager->dispatch('core_app_init_current_store_after');

Classes raising the event

  • \Magento\TestFramework\Store\StoreManager

core_collection_abstract_load_after

Use cases

To perform actions after a collection is loaded.

Origins

\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::_afterLoad():

1
2
3
4
protected function _afterLoad()
{
...
$this->_eventManager->dispatch('core_collection_abstract_load_after', ['collection' => $this]);

collection is an object of \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection

Classes raising the event

  • \Magento\Security\Model\ResourceModel\AdminSessionInfo\Collection
  • \Magento\Store\Model\ResourceModel\Config\Collection\Scoped

core_collection_abstract_load_before

Use cases

To perform actions before a collection is loaded.

Origins

\Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection::_beforeLoad():

1
2
3
4
protected function _beforeLoad()
{
...
$this->_eventManager->dispatch('core_collection_abstract_load_before', ['collection' => $this]);

collection is an object of \Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection

Classes raising the event

  • \Magento\Security\Model\ResourceModel\AdminSessionInfo\Collection
  • \Magento\Store\Model\ResourceModel\Config\Collection\Scoped

core_layout_block_create_after

Use cases

To perform actions after a particular block is created.

Origins

\Magento\Framework\View\Layout\Generator\Block::process():

1
2
3
4
public function process(Layout\Reader\Context $readerContext, Layout\Generator\Context $generatorContext)
{
...
$this->eventManager->dispatch('core_layout_block_create_after', ['block' => $block]);

block is an object of \Magento\Framework\View\Element\AbstractBlock

Classes raising the event

  • \Magento\Framework\View\Layout\Generator\Block

core_layout_render_element

Use cases

To perform actions when a layout element is rendered.

Origins

\Magento\Framework\View\Layout::renderElement():

1
2
3
4
5
6
7
public function renderElement($name, $useCache = true)
{
...
$this->_eventManager->dispatch(
         'core_layout_render_element',
         ['element_name' => $name, 'layout' => $this, 'transport' => $this->_renderingOutput]
      );
  • element_name is an element name string
  • layout is an object of \Magento\Framework\View\Layout
  • transport is an object of \Magento\Framework\DataObject

Classes raising the event

  • \Magento\Framework\View\Layout

cron_job_run

Use cases

To perform actions before a particular cron job is run.

Origins

\Magento\Cron\Observer\ProcessCronQueueObserver::_runJob():

1
2
3
4
protected function _runJob($scheduledTime, $currentTime, $jobConfig, $schedule, $groupId)
{
...
$this->eventManager->dispatch('cron_job_run', ['job_name' => 'cron/' . $groupId . '/' . $jobCode]);

job_name is a job name string.

Classes raising the event

  • \Magento\Cron\Observer\ProcessCronQueueObserver

currency_display_options_forming

Use cases

To perform actions after getting getting a currency object by currency code.

Origins

\Magento\Framework\Locale\Currency::getCurrency():

1
2
3
4
5
6
7
public function getCurrency($currency)
{
...
$this->_eventManager->dispatch(
               'currency_display_options_forming',
               ['currency_options' => $options, 'base_code' => $currency]
);
  • currency_options is an array of currency options
  • base_code is a currency code string

Classes raising the event

  • \Magento\Framework\Locale\Currency

customer_account_edited

Use cases

To perform actions after a customer has been successfully edited.

Origins

\Magento\Customer\Controller\Account\EditPost::dispatchSuccessEvent():

1
2
3
4
5
6
7
private function dispatchSuccessEvent(\Magento\Customer\Api\Data\CustomerInterface $customerCandidateDataObject)
{
      $this->_eventManager->dispatch(
         'customer_account_edited',
         ['email' => $customerCandidateDataObject->getEmail()]
      );
}
  • email is a customer email

Classes raising the event

  • \Magento\Customer\Controller\Account\EditPost

customer_address_format

Use cases

To alter the way an address is formatted.

Origins

  • \Magento\Sales\Model\Order\Address\Renderer::format():
    1
    2
    3
    4
    5
    
    public function format(Address $address, $type)
    {
    ...
         $this->eventManager->dispatch('customer_address_format', ['type' => $formatType, 'address' => $address]);
    }
    
  • \Magento\Customer\Model\Address\AbstractAddress::format():
    1
    2
    3
    4
    5
    
    public function format(Address $address, $type)
    {
    ...
         $this->eventManager->dispatch('customer_address_format', ['type' => $formatType, 'address' => $this]);
    }
    
  • type is an object of \Magento\Framework\DataObject
  • address is an object of either \Magento\Customer\Model\Address\AbstractAddress or \Magento\Sales\Model\Order\Address

Classes raising the event

  • \Magento\Sales\Model\Order\Address\Renderer
  • \Magento\Customer\Model\Address\AbstractAddress
  • \Magento\Customer\Model\Address

customer_customer_authenticated

Use cases

To perform actions after a customer has been authenticated.

Origins

  • \Magento\Customer\Model\Customer::authenticate():
    1
    2
    3
    4
    5
    6
    7
    8
    
    public function authenticate($login, $password)
    {
     ....
         $this->_eventManager->dispatch(
             'customer_customer_authenticated',
             ['model' => $this, 'password' => $password]
         );
    }
    
  • \Magento\Customer\Model\AccountManagement::authenticate():
    1
    2
    3
    4
    5
    6
    7
    8
    
    public function authenticate($username, $password)
    {
     ....
         $this->eventManager->dispatch(
             'customer_customer_authenticated',
             ['model' => $customerModel, 'password' => $password]
         );
    }
    
  • model is an object of \Magento\Customer\Model\Customer
  • password is a password string

Classes raising the event

  • \Magento\Customer\Model\Customer
  • \Magento\Customer\Model\AccountManagement
  • \Magento\Customer\Model\Backend\Customer

customer_data_object_login

Use cases

To perform actions after a customer has been logged in.

Origins

  • \Magento\Customer\Model\Session::setCustomerAsLoggedIn():
    1
    2
    3
    4
    5
    
    public function setCustomerAsLoggedIn($customer)
    {
     ....
      $this->_eventManager->dispatch('customer_data_object_login', ['customer' => $this->getCustomerDataObject()]);
    }
    
  • \Magento\Customer\Model\Session::setCustomerDataAsLoggedIn():
    1
    2
    3
    4
    5
    
    public function setCustomerDataAsLoggedIn($customer)
    {
     ....
      $this->_eventManager->dispatch('customer_data_object_login', ['customer' => $customer]);
    }
    
  • \Magento\Customer\Model\AccountManagement::authenticate():
    1
    2
    3
    4
    5
    
    public function authenticate($username, $password)
    {
     ....
      $this->eventManager->dispatch('customer_data_object_login', ['customer' => $customer]);
    }
    
  • customer is an object of \Magento\Customer\Api\Data\CustomerInterface

Classes raising the event

  • \Magento\Customer\Model\Session
  • \Magento\Customer\Model\AccountManagement

customer_login

Use cases

To perform actions after a customer has been logged in.

Origins

  • \Magento\Customer\Model\Session::setCustomerAsLoggedIn():

    1
    2
    3
    4
    5
    
    public function setCustomerAsLoggedIn($customer)
    {
     ....
      $this->_eventManager->dispatch('customer_login', ['customer' => $customer]);
    }
    
  • \Magento\Customer\Model\Session::setCustomerDataAsLoggedIn():

    1
    2
    3
    4
    5
    
    public function setCustomerDataAsLoggedIn($customer)
    {
     ....
      $this->_eventManager->dispatch('customer_login', ['customer' => $customerModel]);
    }
    
  • \Magento\Integration\Model\CustomerTokenService::createCustomerAccessToken():

1
2
3
4
  public function createCustomerAccessToken($username, $password)
  {
  ...
  $this->eventManager->dispatch('customer_login', ['customer' => $customerDataObject]);
  • customer is an object of either \Magento\Customer\Api\Data\CustomerInterface or \Magento\Customer\Model\Customer

Classes raising the event

  • \Magento\Customer\Model\Session
  • \Magento\Integration\Model\CustomerTokenService

customer_logout

Use cases

To perform actions before a customer is logged out.

Origins

\Magento\Customer\Model\Session::logout():

1
2
3
4
5
public function logout()
{
....
$this->_eventManager->dispatch('customer_logout', ['customer' => $this->getCustomer()]);
}

customer is an object of \Magento\Customer\Model\Customer

Classes raising the event

  • \Magento\Customer\Model\Session