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 categoryoptions
-\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 categoryoptions
-\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 pagestatus
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 IDstore
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 IDstore
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 arrayrequest
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 stringpassword
is a password stringuser
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 stringuser
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 ofMagento\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 ofMagento\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 stringauthorization
payment
is an object ofMagento\Payment\Model\InfoInterface
transport
is aDataObject
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 storesscope
- 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 stringexception
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 ofZend_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 namestore_id
is a store IDresponse_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 arrayproduct_ids
is a product IDs arraystore_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
catalog_product_gallery_prepare_layout
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
catalog_product_gallery_upload_image_after
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 dataaction
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 arrayids_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 aZend_Db_Expr
objectwebsite_field
is aZend_Db_Expr
objectstore_field
is aZend_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 variablestore_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 stringlayout
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 optionsbase_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