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 InfoGonzalez - Blog de formador e informático

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
Creative Commons License
Except where otherwise noted, the content on this site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.