Cómo Crear un Plugin en Magento

Introducción

Magento es una de las plataformas de comercio electrónico más populares del mundo, conocida por su flexibilidad y escalabilidad. Los plugins en Magento permiten a los desarrolladores extender y personalizar la funcionalidad de la plataforma sin modificar el código base. En este artículo, aprenderás cómo crear un plugin en Magento paso a paso.

Requisitos Previos

Antes de comenzar, asegúrate de tener lo siguiente:

  • Un entorno de desarrollo de Magento configurado.
  • Conocimientos básicos de PHP y de la arquitectura de Magento.
  • Acceso a la línea de comandos.

Paso 1: Configurar el Entorno

Estructura del Módulo

En Magento 2, los módulos se colocan en el directorio app/code. La estructura básica de un módulo es la siguiente:

app/code/VendorName/ModuleName
├── etc
│   ├── module.xml
│   └── di.xml
├── Plugin
│   └── ClassName.php
├── registration.php
└── composer.json

Crear la Carpeta del Módulo

  1. Navega al directorio app/code:
   cd path_to_magento/app/code
  1. Crea las carpetas para tu módulo:
   mkdir -p VendorName/ModuleName
   cd VendorName/ModuleName

Paso 2: Configurar los Archivos Básicos

Archivo registration.php

Este archivo registra el módulo con Magento.

  1. Crear registration.php:
   <?php
   \Magento\Framework\Component\ComponentRegistrar::register(
       \Magento\Framework\Component\ComponentRegistrar::MODULE,
       'VendorName_ModuleName',
       __DIR__
   );

Archivo module.xml

Este archivo define la configuración básica del módulo.

  1. Crear etc/module.xml:
   <?xml version="1.0"?>
   <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
       <module name="VendorName_ModuleName" setup_version="1.0.0"/>
   </config>

Archivo composer.json

Este archivo define las dependencias del módulo.

  1. Crear composer.json:
   {
       "name": "vendorname/modulename",
       "description": "Descripción de tu módulo",
       "require": {
           "php": "~7.3.0||~7.4.0||~8.0.0",
           "magento/framework": "103.0.*"
       },
       "type": "magento2-module",
       "version": "1.0.0",
       "autoload": {
           "files": [
               "registration.php"
           ],
           "psr-4": {
               "VendorName\\ModuleName\\": ""
           }
       }
   }

Paso 3: Crear el Plugin

Configurar el Archivo di.xml

El archivo di.xml define las dependencias de inyección para el módulo y registra el plugin.

  1. Crear etc/di.xml:
   <?xml version="1.0"?>
   <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
       <type name="Clase\Objetivo">
           <plugin name="vendorname_modulename_plugin" type="VendorName\ModuleName\Plugin\ClassName"/>
       </type>
   </config>

Crear la Clase del Plugin

  1. Crear el directorio Plugin y el archivo ClassName.php:
   mkdir Plugin
   touch Plugin/ClassName.php
  1. Editar ClassName.php:
   <?php

   namespace VendorName\ModuleName\Plugin;

   class ClassName
   {
       public function beforeMetodoOriginal($subject, $arg1, $arg2)
       {
           // Lógica antes de la ejecución del método original
           return [$arg1, $arg2];
       }

       public function aroundMetodoOriginal($subject, callable $proceed, $arg1, $arg2)
       {
           // Lógica alrededor del método original
           $result = $proceed($arg1, $arg2);
           // Lógica después de la ejecución del método original
           return $result;
       }

       public function afterMetodoOriginal($subject, $result)
       {
           // Lógica después de la ejecución del método original
           return $result;
       }
   }

Paso 4: Habilitar y Probar el Módulo

Habilitar el Módulo

  1. Ejecutar el Comando de Habilitación:
   bin/magento module:enable VendorName_ModuleName
  1. Ejecutar el Comando de Actualización del Esquema:
   bin/magento setup:upgrade

Limpiar la Caché

  1. Limpiar la Caché:
   bin/magento cache:clean

Conclusión

Hemos cubierto los pasos necesarios para crear un plugin en Magento. Los plugins son una forma poderosa de extender y personalizar la funcionalidad de Magento sin modificar el código base. Siguiendo esta guía, puedes desarrollar plugins que se integren perfectamente con el ecosistema de Magento, proporcionando funcionalidades personalizadas y mejorando la experiencia del usuario.

computer c code
Photo by Pixabay on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad