2
Feb
Curso de Magento 2 – Creación de un módulo
Magento 2, una plataforma líder en comercio electrónico, brinda a los comerciantes la flexibilidad necesaria para adaptarse a sus necesidades específicas mediante la creación de módulos personalizados. Estos módulos permiten extender la funcionalidad base del sistema, agregar nuevas características y adaptar la experiencia de compra a requisitos únicos. En esta introducción, exploraremos el concepto de módulos en Magento 2, sus componentes esenciales y cómo pueden potenciar la personalización de las tiendas en línea.
Introducción a Magento 2 y la necesidad de personalización
Magento 2 proporciona una base sólida para construir sitios web de comercio electrónico, pero en ocasiones, los comerciantes necesitan funcionalidades específicas que no están incluidas de forma predeterminada. Aquí es donde entran en juego los módulos personalizados. Al crear un módulo propio, los desarrolladores pueden añadir características específicas, ajustar la apariencia o incluso integrar servicios de terceros.
¿Qué es un Módulo en Magento 2?
En el contexto de Magento 2, un módulo es una unidad lógica y funcional que encapsula una parte específica de la funcionalidad del sistema. Estos módulos permiten a los desarrolladores organizar y estructurar su código de manera modular, facilitando así la extensión y el mantenimiento de la plataforma.
Estructura básica de un módulo en Magento 2
El primer paso para crear nuestro módulo es entender la estructura básica que debe seguir. En el directorio app/code
, crearemos la estructura de carpetas siguiendo el estándar de nombres de espacio de Magento:
mkdir -p app/code/MyCompany/MyModule
Dentro de este directorio, crearemos la carpeta etc
. La carpeta etc
albergará el archivo de configuración de nuestro código
Configuración del archivo module.xml
Magento 2 utiliza el archivo module.xml
para definir la información básica del módulo. Crearemos un archivo module.xml
en la ruta app/code/MyCompany/MyModule/etc/
con los siguientes comandos:
mkdir -p app/code/MyCompany/MyModule/etc/
touch app/code/MyCompany/MyModule/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="MyCompany_MyModule"/> </config>
Este archivo declara el nombre del módulo (MyCompany_MyModule
).
Creación de registration.php
Dentro del directorio (app/code/MyCompany/MyModule
), crea un archivo llamado registration.php
con el siguiente contenido:
touch app/code/MyCompany/MyModule/registration.php
<?php /** * Copyright © Gerson Hernández All rights reserved. */ use Magento\Framework\Component\ComponentRegistrar; ComponentRegistrar::register(ComponentRegistrar::MODULE, 'MyCompany_MyModule', __DIR__);
Este archivo es crucial para registrar el módulo en Magento 2. La estructura debe quedar de la siguiente forma:
Habilitación y despliegue del módulo
Ahora que hemos creado todas las partes esenciales de nuestro módulo, es el momento de habilitarlo y desplegarlo. Utilizaremos las siguientes líneas de comandos en la raíz de nuestro proyecto Magento:
php bin/magento module:enable MyCompany_MyModule
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento cache:flush
Al ejecutar todos los comandos anteriores, se registrara nuestro módulo. Para comprobar que todo haya salido bien, podemos revisar el archivo `config.php` que se encuentra en `app/etc/`. Alli encontraremos nuestro módulo `MyCompany_MyModule` con el valor 1. Eso significa que la instalación ha sido exitosa.
Conclusión
En conclusión, la creación de un módulo en Magento 2 es un proceso estructurado que implica la configuración de archivos, la creación de bloques, archivos de diseño y plantillas. Este ejemplo básico, MyCompany_MyModule, proporciona una introducción sólida al desarrollo de extensiones en Magento 2. A partir de aquí, los desarrolladores pueden ampliar sus conocimientos para crear módulos más complejos y personalizados que satisfagan las necesidades específicas de sus proyectos.
¡Eso es todo!
Author
Licenciado en Informatica graduado de la Universidad Tecnológica de El Salvador. PHP Developer con más de 8 años de experiencia trabajando con HTML, CSS, Bootstrap, Tailwind, JavaScript, jQuery, Knockout JS, React JS, Node JS, MySQL, PHP, Laravel, Codeigniter, Wordpress, Woocommerce y Magento.