Curso de Magento 2 - Observer / Events

21

Feb

Curso de Magento 2 – Observer / Events

Magento 2, uno de los sistemas de comercio electrónico más populares y robustos del mundo, ofrece una arquitectura flexible que permite a los desarrolladores extender y personalizar su funcionalidad de diversas maneras. Uno de los elementos clave para lograr esta flexibilidad es el uso de Observers. Los Observers en Magento 2 son una forma poderosa de detectar eventos específicos dentro del flujo de ejecución de la aplicación y responder a ellos con acciones personalizadas. En este artículo, exploraremos cómo ejecutar un Observer en Magento 2, detallando los pasos necesarios para implementarlo correctamente y aprovechar al máximo su potencial.

¿Qué es un Observer en Magento 2?

Un Observer en Magento 2 es un componente que «observa» o monitorea eventos específicos que ocurren dentro del sistema. Estos eventos pueden ser acciones del usuario, cambios de estado de los datos, o cualquier otro tipo de interacción que desencadene un evento dentro de la aplicación. Cuando se produce un evento que está siendo observado por un Observer, este último se activa y ejecuta una serie de acciones predefinidas.

Pasos para Ejecutar un Observer en Magento 2

Creación del Módulo

El primer paso para ejecutar un Observer en Magento 2 es crear un nuevo módulo o utilizar uno existente. Esto implica definir la estructura del módulo, incluyendo archivos de configuración y código PHP. En el siguiente enlace encontrarás un tutorial de cómo crear la estructura de un módulo en Magento 2.

Definir el Evento a Observar

Una vez que el módulo está configurado, el siguiente paso es identificar el evento que deseas observar. Magento 2 ofrece una amplia gama de eventos que pueden ser observados, desde eventos relacionados con el ciclo de vida del pedido hasta eventos de catálogo y más. Consulta la documentación oficial de Magento para encontrar el evento adecuado para tu caso de uso. En esta ocasión y a modo de ejemplo usaremos el evento checkout_cart_product_update_after que es el evento que se activa cuando se añade un producto al carrito de compras.

Creación del archivo events.xml

Después de identificar el evento que deseas observar, debes crear un archivo events.xml dentro de la carpeta etc de tu módulo. Este archivo se utiliza para declarar el Observer y asociarlo con el evento correspondiente. Aquí es donde especificas el nombre del evento, el nombre de la clase del Observer y el método que se ejecutará cuando ocurra el evento.

touch app/code/MyCompany/MyModule/etc/events.xml
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Event/etc/events.xsd">
	<event name="checkout_cart_product_update_after">
		<observer name="mycompany_mymodule_observer_checkout_cart_product_update_after" instance="MyCompany\MyModule\Observer\Checkout\CartProductUpdateAfter"/>
	</event>
</config>

Creación de la Clase del Observer

El siguiente paso es crear la clase del Observer en el directorio Observer dentro de tu módulo. Esta clase debe implementar la interfaz Magento\Framework\Event\ObserverInterface y contener el método execute() que se ejecutará cuando ocurra el evento.

mkdir -p app/code/MyCompany/MyModule/Observer/Checkout
touch app/code/MyCompany/MyModule/Observer/Checkout/CartProductUpdateAfter.php
<?php
/**
 * Copyright © Gerson Hernández All rights reserved.
 */
declare(strict_types=1);

namespace MyCompany\MyModule\Observer\Checkout;

class CartProductUpdateAfter implements \Magento\Framework\Event\ObserverInterface
{

    /**
     * Execute observer
     *
     * @param \Magento\Framework\Event\Observer $observer
     * @return void
     */
    public function execute(
        \Magento\Framework\Event\Observer $observer
    ) {
        //Your observer code
    }
}

Implementar la Lógica del Observer

Dentro del método execute() de la clase del Observer, puedes escribir la lógica personalizada que deseas ejecutar cuando ocurra el evento. Esto puede incluir la manipulación de datos, el envío de correos electrónicos, la interacción con servicios externos, entre otras acciones. En este caso, solo imprimiremos un mensaje de la siguiente forma:

<?php

/* */

    /**
     * Execute observer
     *
     * @param \Magento\Framework\Event\Observer $observer
     * @return void
     */
    public function execute(
        \Magento\Framework\Event\Observer $observer
    ) {
        //Your observer code
        \Magento\Framework\App\ObjectManager::getInstance()
        ->get(\Psr\Log\LoggerInterface::class)
        ->debug('Se ha agregado un producto al carrito');
    }

/* */

Ahora solo debes agregar un producto al carrito de compras. Cuando lo hayas hecho, revisa el archivo /var/log/debug.log y deberas encontrar el mensaje del observer.

Conclusión

Ejecutar un Observer en Magento 2 es una forma poderosa de extender la funcionalidad de tu tienda en línea y personalizarla según tus necesidades específicas. Al seguir los pasos mencionados anteriormente, puedes configurar fácilmente Observers que respondan a eventos clave dentro de la aplicación y ejecuten acciones personalizadas en consecuencia. Ya sea que estés agregando nuevas características, optimizando procesos existentes o mejorando la experiencia del usuario, los Observers en Magento 2 te brindan la flexibilidad necesaria para llevar tu tienda en línea al siguiente nivel.

¡Eso es todo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

RELATED

Posts