Categorías: MagentoMódulos

¿Cómo crear un módulo en Magento 2?

¿Sabes cómo crear un módulo en Magento 2? Aquí te explicaré cómo hacerlo. Verás que es algo increíblemente fácil gracias a la modularidad y simplicidad de este fantástico gestor de contenido para comercio electrónico.

Creación de módulos en Magento 2. Diferencias y similitudes con Magento 1

Crear un módulo en Magento 2 es bastante similar a hacerlo en Magento 1. Por ejemplo, la programación no ha cambiado mucho, y tampoco la estructura de archivos. Además, el concepto de módulo es exactamente el mismo. Así que, si ya lo habías creado un módulo en la primera versión, no tendrás dificultades para conseguirlo en esta.

Solo te diré que, como de costumbre, las clases para las vistas se ubican en “Blocks”, el manejo de datos en “Models”, los helpers de toda la vida en “Helpers”, y también tendrás a mano variados controllers para recibir y procesar las llamadas de las URLs. Y la carpeta “etc” contiene los archivos de configuración, que en Magento 2 consisten en más que el único “config.xml” de Magento 1, y por una muy buena razón: facilitar la lectura y comprensión del código. Sin embargo, en este tutorial trabajaremos con este fichero solamente.

¿Cómo crear un módulo en Magento 2?

1. Crear las carpetas que contendrán el código del módulo. A saber:

app/code/<Vendor>/<Module>
app/code/<Vendor>/<Module>/etc

Sustituye <Vendor> por el nombre que quieras (para este tutorial, le llamaré BMagento, por el nombre del blog), y lo mismo haz con <Module> (le pondré BMTutorial). La carpeta “etc” contendrá, como ya expliqué, el fichero principal con las configuraciones del módulo.

2. Crear el fichero de configuración:

app/code/BMagento/BMTutorial/etc/module.xml

Prescindamos de las explicaciones teóricas y vayamos directo al código, que podrás analizar una vez lo hayas copiado y pegado en el fichero:

<?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="BMTutorial" setup_version="1.0.0">
  </module>
</config>

Con esto, ya tienes la configuración de tu nuevo módulo y puedes pasar a personalizar la información de Composer. Veamos cómo.

3. Configura el módulo para Composer

Entrada Relacionada

El código para Composer irá en:

app/code/Bmagento/BMTutorial/composer.json

Y el código que deberás insertar es el siguiente:

{
  "name": "bmagento/bmtutorial",
  "description": "Mi primer modulo en Magento 2!",
  "type": "magento2-module",
  "version": "1.0.0",
  "license": [
    "OSL-3.0",
    "AFL-3.0"
  ],
  "require": {
    "php": "~5.6.0|7.0.2|7.0.4|~7.0.6"
  },
  "autoload": {
    "files": [ "registration.php" ],
    "psr-4": {
      "BMagento\\BMTutorial\\": ""
    }
  }
}

3. Habrás notado que el código anterior hace referencia a un fichero llamado “registration.php”. Este es el que permitirá el registro de tu nuevo módulo para el autocargador de clases. El fichero es el siguiente:

app/code/Bmagento/BMTutorial/registration.php

Y el código:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'BMagento_BMTutorial',
    __DIR__
);

Y con esto tienes tu primer módulo en Magento. Para ponerlo en marcha, solo tienes que flushear, limpiar cachés y actualizar desde la línea de comandos, haciendo:

php bin/magento cache:flush
php bin/magento cache:clean
php bin/magento setup:upgrade

Si quieres comprobar si se activó o no, solo tienes que teclear:

php bin/magento module:status

Y observar la lista que aparece en pantalla: el nuevo módulo debe aparecer junto a los demás.

Ahora bien, tal y como se encuentra este módulo no hace absolutamente nada. Pero ya contiene todo lo necesario para que puedas empezar a añadirle funcionalidades: plantillas, controladores, menús, zonas en frontend, tareas programadas, etc. Así que no pierdas uno segundo más ¡y pasa a la acción!

Si te gustó este tutorial, compártelo con tus amigos de Magento en las  redes sociales, o déjame un comentario aquí abajo con tu opinión o cualquier duda que tengas.

Esta entrada ha sido publicada el 18/02/2020 04:30

Nelson Ochagavía

Especializado en redactar contenidos para SEO en agencia de Marketing Online. Me apasionan escribir sobre cualquier cosa de la que tengo conocimiento, me encanta trasmitir esta información para que todo el mundo pueda estar informado, por ello redacto diariamente en varios blogs, alguno de ellos como hobby, como en este.

Entradas recientes

Enfoca tu estrategia de redes sociales hacia el branding

En el dinámico mundo de las redes sociales, es común encontrar empresarios y marcas que perciben estas plataformas principalmente como… Leer más

¿Qué es el Retail Media? Descubre cómo esta estrategia está transformando el mundo del comercio electrónico

En el mundo del comercio electrónico, cada vez surgen nuevas estrategias y enfoques para promocionar y vender productos. Una de… Leer más

¿Qué es una Venta Cruzada? Descubre cómo aprovechar esta estrategia para impulsar tus ventas

En el mundo de los negocios, es fundamental utilizar estrategias efectivas para aumentar las ventas y fidelizar a los clientes.… Leer más