Magento Expert Forum - Improve your Magento experience

Results 1 to 4 of 4

Magento 2 Events

  1. #1
    Contributor
    Join Date
    Apr 2016
    Posts
    245
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Magento 2 Events

    This article will talk about Event in Magento 2. As you know, Magento 2 is using the event driven architecture which will help too much to extend the Magento functionality. We can understand this event as a kind of flag that rises when a specific situation happens. We will use an example module Mageplaza_Example to exercise this lesson.

    Dispatch event

    In Magento 2 Events, we can use the class Magento\Framework\Event\Manager to dispatch event. For example, we create a controller action in Mageplaza_Example to show the word “Hello World” on the screen:

    File: app/code/Mageplaza/Example/Controller/Hello/World.php

    <?php
    namespace Mageplaza\Example\Controller\Hello;

    class World extends \Magento\Framework\App\Action\Action
    {
    public function execute()
    {
    echo 'Hello World';
    exit;
    }
    }
    Now we want to dispatch an magento 2 event list which allow other module can change the word displayed. We will change the controller like this:

    File: app/code/Mageplaza/Example/Controller/Hello/World.php

    <?php
    namespace Mageplaza\Example\Controller\Hello;

    class World extends \Magento\Framework\App\Action\Action
    {
    public function execute()
    {
    $textDisplay = new \Magento\Framework\DataObject(array('text' => 'Mageplaza'));
    $this->_eventManager->dispatch('example_hello_world_display_text', ['text' => $textDisplay]);
    echo $textDisplay->getText();
    exit;
    }
    }
    The dispatch method will receive 2 arguments: an unique event name and an array data. In this example, we add the data object to the event and call it back to display the text.

    Catch and handle event

    Event area

    Magento use area definition to manage the store. We will have a frontend area and admin area. With the configuration file, they can be put in 3 places:

    Under etc/ folder is the configuration which can be used in both admin and frontend.
    Under etc/frontend folder will be used for frontend area.
    Under etc/adminhtml folder will be used for admin area.
    The same with the event configuration file. You can create events configuration file for each area like this:

    Admin area: app/code/Mageplaza/Example/etc/adminhtml/events.xml
    Frontend area: app/code/Mageplaza/Example/etc/frontend/events.xml
    Global area: app/code/Mageplaza/Example/etc/events.xml
    Create events.xml

    In this example, we only catch the event to show the word Mageplaza on the frontend so we should create an events.xml file in etc/frontend folder.

    File: app/code/Mageplaza/Example/etc/frontend/events.xml

    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framewo rk:Event/etc/events.xsd">
    <event name="example_hello_world_display_text">
    <observer name="hello_world_display" instance="Mageplaza\Example\Observer\ChangeDisplay Text" />
    </event>
    </config>
    In this file, under config element, we define an event element with the name is the event name which was dispatch above. The class which will execute this event will be define in the observer element by instance attribute. The name of observer is used to identify this with other observers of this event.

    With this events.xml file, Magento will execute class Mageplaza\Example\Observer\ChangeDisplayText whenever the dispatch method of this event was called on frontend area. Please note that, we place events.xml in the frontend area, so if you dispatch that event in the admin area (like admin controller), it will not run.

    Observer

    Now we will create a class to execute above event.

    File: app/code/Mageplaza/Example/Observer/ChangeDisplayText.php

    <?php
    namespace Mageplaza\Example\Observer;

    class ChangeDisplayText implements \Magento\Framework\Event\ObserverInterface
    {
    public function execute(\Magento\Framework\Event\Observer $observer)
    {
    $displayText = $observer->getData('text');
    $displayText->setText('Execute event successfully.');

    return $this;
    }
    }
    This class will implement the ObserverInterface and declare the execute method. You can see this simple method to know how it work.

    Let’s flush cache and see the result.

    List all events in Magento 2

    Events in PHP Files

    File Event name
    app/code/Magento/Authorizenet/Controller/Directpost/Payment/Place.php checkout_directpost_placeOrder
    app/code/Magento/Backend/Block/System/Store/Edit/AbstractForm.php adminhtml_store_edit_form_prepare_form
    app/code/Magento/Backend/Block/Template.php adminhtml_block_html_before
    app/code/Magento/Backend/Block/Widget/Grid.php backend_block_widget_grid_prepare_grid_before
    app/code/Magento/Backend/Console/Command/CacheCleanCommand.php adminhtml_cache_flush_system
    app/code/Magento/Backend/Console/Command/CacheFlushCommand.php adminhtml_cache_flush_all
    app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanImages.php clean_catalog_images_cache_after
    app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanMedia.php clean_media_cache_after
    app/code/Magento/Backend/Controller/Adminhtml/Cache/CleanStaticFiles.php clean_static_files_cache_after
    app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushAll.php adminhtml_cache_flush_all
    app/code/Magento/Backend/Controller/Adminhtml/Cache/FlushSystem.php adminhtml_cache_flush_system
    app/code/Magento/Backend/Controller/Adminhtml/System/Design/Save.php theme_save_after
    app/code/Magento/Backend/Controller/Adminhtml/System/Store/DeleteStorePost.php store_delete
    app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php store_group_save
    app/code/Magento/Backend/Controller/Adminhtml/System/Store/Save.php NO_MATCH
    app/code/Magento/Backend/Model/Auth.php backend_auth_user_login_success
    app/code/Magento/Backend/Model/Auth.php backend_auth_user_login_failed
    app/code/Magento/Backend/Model/Auth.php backend_auth_user_login_failed
    app/code/Magento/Bundle/Block/Catalog/Product/View/Type/Bundle.php catalog_product_option_price_configuration_after
    app/code/Magento/Bundle/Model/Product/Price.php prepare_catalog_product_collection_prices
    app/code/Magento/Bundle/Model/Product/Price.php catalog_product_get_final_price
    app/code/Magento/Bundle/Model/Product/Price.php catalog_product_get_final_price
    app/code/Magento/Bundle/Model/ResourceModel/Indexer/Price.php catalog_product_prepare_index_select
    app/code/Magento/Bundle/Pricing/Price/BundleSelectionPrice.php catalog_product_get_final_price
    app/code/Magento/Catalog/Block/Adminhtml/Category/Tab/Attributes.php adminhtml_catalog_category_edit_prepare_form
    app/code/Magento/Catalog/Block/Adminhtml/Category/Tabs.php adminhtml_catalog_category_tabs
    app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php adminhtml_catalog_category_tree_is_moveable
    app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php adminhtml_catalog_category_tree_can_add_root_categ ory
    app/code/Magento/Catalog/Block/Adminhtml/Category/Tree.php adminhtml_catalog_category_tree_can_add_sub_catego ry
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Advanced.php product_attribute_form_build
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Front.php product_attribute_form_build_front_tab
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Front.php adminhtml_catalog_product_attribute_edit_frontend_ prepare_form
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Main.php adminhtml_product_attribute_types
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Edit/Tab/Main.php product_attribute_form_build_main_tab
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Grid.php product_attribute_grid_build
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/NewAttribute/Product/Attributes.php adminhtml_catalog_product_edit_prepare_form
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/NewAttribute/Product/Attributes.php adminhtml_catalog_product_edit_element_types
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main.php adminhtml_catalog_product_attribute_set_main_html_ before
    app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Toolbar/Main.php adminhtml_catalog_product_attribute_set_toolbar_ma in_html_before
    app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Action/Attribute/Tab/Attributes.php adminhtml_catalog_product_form_prepare_excluded_fi eld_list
    app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Attributes/Create.php adminhtml_catalog_product_edit_tab_attributes_crea te_html_before
    app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Attributes.php adminhtml_catalog_product_edit_prepare_form
    app/code/Magento/Catalog/Block/Adminhtml/Product/Edit/Tab/Attributes.php adminhtml_catalog_product_edit_element_types
    app/code/Magento/Catalog/Block/Adminhtml/Product/Grid.php adminhtml_catalog_product_grid_prepare_massaction
    app/code/Magento/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery/Content.php catalog_product_gallery_prepare_layout
    app/code/Magento/Catalog/Block/Product/AbstractProduct.php catalog_block_product_status_display
    app/code/Magento/Catalog/Block/Product/ListProduct.php catalog_block_product_list_collection
    app/code/Magento/Catalog/Block/Product/ProductList/Upsell.php catalog_product_upsell
    app/code/Magento/Catalog/Block/Product/View/Options.php catalog_product_option_price_configuration_after
    app/code/Magento/Catalog/Block/Product/View.php catalog_product_view_config
    app/code/Magento/Catalog/Block/Rss/Category.php rss_catalog_category_xml_callback
    app/code/Magento/Catalog/Block/Rss/Product/NewProducts.php rss_catalog_new_xml_callback
    app/code/Magento/Catalog/Block/Rss/Product/Special.php rss_catalog_special_xml_callback
    app/code/Magento/Catalog/Block/ShortcutButtons.php shortcut_buttons_container
    app/code/Magento/Catalog/Controller/Adminhtml/Category/Delete.php catalog_controller_category_delete
    app/code/Magento/Catalog/Controller/Adminhtml/Category/Edit.php category_prepare_ajax_response
    app/code/Magento/Catalog/Controller/Adminhtml/Category/Save.php catalog_category_prepare_save
    app/code/Magento/Catalog/Controller/Adminhtml/Product/Action/Attribute/Save.php catalog_product_to_website_change
    app/code/Magento/Catalog/Controller/Adminhtml/Product/Edit.php catalog_product_edit_action
    app/code/Magento/Catalog/Controller/Adminhtml/Product/Gallery/Upload.php catalog_product_gallery_upload_image_after
    app/code/Magento/Catalog/Controller/Adminhtml/Product/NewAction.php catalog_product_new_action
    app/code/Magento/Catalog/Controller/Adminhtml/Product/Save.php controller_action_catalog_product_save_entity_afte r
    app/code/Magento/Catalog/Controller/Category/View.php catalog_controller_category_init_after
    app/code/Magento/Catalog/Controller/Product/Compare/Add.php catalog_product_compare_add_product
    app/code/Magento/Catalog/Controller/Product/Compare/Remove.php catalog_product_compare_remove_product
    app/code/Magento/Catalog/Helper/Product/View.php catalog_controller_product_view
    app/code/Magento/Catalog/Helper/Product.php catalog_controller_product_init_before
    app/code/Magento/Catalog/Helper/Product.php catalog_controller_product_init_after
    app/code/Magento/Catalog/Model/Category.php _move_before
    app/code/Magento/Catalog/Model/Category.php _move_after
    app/code/Magento/Catalog/Model/Category.php category_move
    app/code/Magento/Catalog/Model/Product/Action.php catalog_product_attribute_update_before
    app/code/Magento/Catalog/Model/Product/Attribute/Source/Inputtype.php adminhtml_product_attribute_types
    app/code/Magento/Catalog/Model/Product/Type/AbstractType.php NO_MATCH
    app/code/Magento/Catalog/Model/Product/Type/Price.php catalog_product_get_final_price
    app/code/Magento/Catalog/Model/Product.php _validate_before
    app/code/Magento/Catalog/Model/Product.php _validate_after
    app/code/Magento/Catalog/Model/Product.php catalog_product_is_salable_before
    app/code/Magento/Catalog/Model/Product.php catalog_product_is_salable_after
    app/code/Magento/Catalog/Model/ResourceModel/Category/Collection.php _load_before
    app/code/Magento/Catalog/Model/ResourceModel/Category/Collection.php _load_after
    app/code/Magento/Catalog/Model/ResourceModel/Category/Collection.php _add_is_active_filter
    app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php _load_before
    app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php _load_after
    app/code/Magento/Catalog/Model/ResourceModel/Category/Flat/Collection.php _add_is_active_filter
    app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php catalog_category_tree_init_inactive_category_ids
    app/code/Magento/Catalog/Model/ResourceModel/Category/Flat.php catalog_category_flat_loadnodes_before
    app/code/Magento/Catalog/Model/ResourceModel/Category/Tree.php catalog_category_tree_init_inactive_category_ids
    app/code/Magento/Catalog/Model/ResourceModel/Category.php catalog_category_change_products
    app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php catalog_prepare_price_select
    app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php catalog_product_collection_load_after
    app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php catalog_product_collection_before_add_count_to_cat egories
    app/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php catalog_product_collection_apply_limitations_after
    app/code/Magento/Catalog/Model/ResourceModel/Product/Compare/Item/Collection.php catalog_product_compare_item_collection_clear
    app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/AbstractEav.php prepare_catalog_product_index_select
    app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Decimal.php prepare_catalog_product_index_select
    app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Source.php prepare_catalog_product_index_select
    app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Eav/Source.php prepare_catalog_product_index_select
    app/code/Magento/Catalog/Model/ResourceModel/Product/Indexer/Price/DefaultPrice.php prepare_catalog_product_index_select
    app/code/Magento/Catalog/Model/ResourceModel/Product.php catalog_product_delete_after_done
    app/code/Magento/Catalog/Model/Rss/Product/NotifyStock.php rss_catalog_notify_stock_collection_select
    app/code/Magento/Catalog/Plugin/Model/Product/Action/UpdateAttributesFlushCache.php clean_cache_by_tags
    app/code/Magento/CatalogImportExport/Model/Import/Product.php catalog_product_import_bunch_delete_after
    app/code/Magento/CatalogImportExport/Model/Import/Product.php catalog_product_import_finish_before
    app/code/Magento/CatalogImportExport/Model/Import/Product.php catalog_product_import_bunch_save_after
    app/code/Magento/CatalogInventory/Model/Indexer/Stock/AbstractAction.php clean_cache_by_tags
    app/code/Magento/CatalogRule/Block/Adminhtml/Promo/Catalog/Edit/Tab/Main.php adminhtml_promo_catalog_edit_tab_main_prepare_form
    app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php adminhtml_controller_catalogrule_prepare_save
    app/code/Magento/CatalogRule/Model/Indexer/AbstractIndexer.php clean_cache_by_tags
    app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/DataProvider.php catelogsearch_searchable_attributes_load_after
    app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/Full.php catelogsearch_searchable_attributes_load_after
    app/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext.php catalogsearch_reset_search_result
    app/code/Magento/Checkout/Block/QuoteShortcutButtons.php shortcut_buttons_container
    app/code/Magento/Checkout/Controller/Cart/Add.php checkout_cart_add_product_complete
    app/code/Magento/Checkout/Controller/Cart/UpdateItemOptions.php checkout_cart_update_item_complete
    app/code/Magento/Checkout/Controller/Onepage/SaveOrder.php checkout_controller_onepage_saveOrder
    app/code/Magento/Checkout/Controller/Onepage/Success.php checkout_onepage_controller_success_action
    app/code/Magento/Checkout/Helper/Data.php checkout_allow_guest
    app/code/Magento/Checkout/Model/Cart.php checkout_cart_product_add_after
    app/code/Magento/Checkout/Model/Cart.php checkout_cart_update_items_before
    app/code/Magento/Checkout/Model/Cart.php checkout_cart_update_items_after
    app/code/Magento/Checkout/Model/Cart.php checkout_cart_save_before
    app/code/Magento/Checkout/Model/Cart.php checkout_cart_save_after
    app/code/Magento/Checkout/Model/Cart.php checkout_cart_product_update_after
    app/code/Magento/Checkout/Model/Session.php custom_quote_process
    app/code/Magento/Checkout/Model/Session.php checkout_quote_init
    app/code/Magento/Checkout/Model/Session.php load_customer_quote_before
    app/code/Magento/Checkout/Model/Session.php checkout_quote_destroy
    app/code/Magento/Checkout/Model/Session.php restore_quote
    app/code/Magento/Checkout/Model/Type/Onepage.php checkout_type_onepage_save_order_after
    app/code/Magento/Checkout/Model/Type/Onepage.php checkout_submit_all_after
    app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Content.php adminhtml_cms_page_edit_tab_content_prepare_form
    app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Design.php adminhtml_cms_page_edit_tab_design_prepare_form
    app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Main.php adminhtml_cms_page_edit_tab_main_prepare_form
    app/code/Magento/Cms/Block/Adminhtml/Page/Edit/Tab/Meta.php adminhtml_cms_page_edit_tab_meta_prepare_form
    app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php adminhtml_cmspage_on_delete
    app/code/Magento/Cms/Controller/Adminhtml/Page/Delete.php adminhtml_cmspage_on_delete
    app/code/Magento/Cms/Controller/Adminhtml/Page/Save.php cms_page_prepare_save
    app/code/Magento/Cms/Controller/Router.php cms_controller_router_match_before
    app/code/Magento/Cms/Helper/Page.php cms_page_render

    View more threads in the same category:


  2. #2
    Junior Member
    Join Date
    Nov 2019
    Location
    New York
    Posts
    53
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Magento 2 event tickets helps online store’s owners create impressive events (offline promotion, workshops, concerts, conferences,...), design and sell attractive tickets, and effectively manage both events, tickets, and attendees.

    Let’s enhance brand awareness of customer and boost sales at the same time with Magento 2 event ticket: https://landofcoder.com/magento-2-event-tickets.html/

    Mobile App is coming

  3. #3
    Junior Member
    Join Date
    Nov 2019
    Posts
    1,083
    Thanks
    6
    Thanked 3 Times in 3 Posts

    Default

    Hi! If you are wondering for the event management tool for your eCommerce I'd like to refer Events Manager Extension for Magento 2. With the help of this extension, you can present the latest events that are going to happen to your customers in your store.

    In the frontend, you will find the "Ourevents" button on the top header/footer section. Just by clicking on this button, users will get the list of events displayed.

    This is a fabulous tool to help your audience know all the events detail like event title, description, events photos, event date, etc. on your Magento 2 store.

    Name:  Ourevents-List.png
Views: 10
Size:  140.0 KB

    Highlighted Features:

    1. Fully Responsive
    2. Rich Configurable Options
    3. Create Visually Attractive Content
    4. Show Events In Sidebar
    5. Manage Your Events
    6. User-Friendly Interface
    7. Show Event Photos
    8. Represent Upcoming Events
    9. Events Listing According To A Date
    Last edited by Mark Henry; 22-07-2020 at 05:05 AM.

  4. #4
    Junior Member
    Join Date
    Aug 2018
    Posts
    106
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    If you desire to display your upcoming events in a beautiful calendar, then this extension is all that you need. Magento 2 Event Extension allows you to add events and event groups and get them displayed on the calendar. With the help of this, when the customer taps on the calendar dot, associated events for that date will appear systematically.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •