Bienvenido a este repositorio personal, creado con el propósito de documentar y organizar de manera clara y accesible los conocimientos adquiridos en el desarrollo de módulos personalizados en Magento 2. Este espacio está diseñado como una guía de consulta rápida y como un recurso educativo para afianzar conceptos clave y resolver dudas durante el proceso de desarrollo.
Este material está en español, ya que durante mi aprendizaje he notado la limitada documentación disponible en este idioma. Mi objetivo es facilitar el acceso a información relevante para quienes prefieren aprender y trabajar en español.
En este repositorio, se recopilan los temas más relevantes relacionados con la personalización de Magento 2, incluyendo:
- Creación de módulos básicos.
- Manejo de datos, Model, ResourceModel y Collection.
- Uso de ViewModels y Repositorios.
- Gestión de Eventos e Interceptores.
- Implementación de REST APIs.
- Personalización de temas y estilos.
- Etc...
Estos temas abarcan desde los fundamentos del desarrollo hasta la implementación de funcionalidades avanzadas.
Espero que este repositorio sirva como un punto de referencia confiable y eficiente para quienes deseen adentrarse en el fascinante mundo del desarrollo en Magento 2.
¡Gracias por visitar este espacio y compartir la pasión por aprender y mejorar constantemente! 😊
-
Fundamentos de Creación de Módulos e Introducción a las Plantillas en Magento 2
- 1.1. Creación de módulo
- 1.2. Routers and Controller
- 1.3. Fabricas e inyección de dependencias
- 1.4. Implementación de redirect
- 1.5. Implementación de forward
- 1.6. Layouts y Templates Personalizados
- 1.7. Templates para contenido principal y barra lateral
-
- 1.7.1. Resultado en el navegador
- 1.8. Mover bloques de magento dentro de una vista
-
- 1.8.1. Resultado en el navegador
- 1.9. Traduccion de texto de plantillas con i18n
- 1.10. Sobrescribir una plantilla de bloque existente en Magento
-
Gestión y Persistencia de Datos en (BDD)
- 2.1. Creación de tabla con db_schema.xml
- 2.2. Gestión de columnas de base de datos con db_schema_whitelist
- 2.3. Implementación de Model, ResourceModel y Collection para gestión de datos
- 2.4. Contrato de servicios DTO, repositoryInterface y repositorio
- 2.5. Implementación de DTO en el modelo Post
- 2.6. Usando PostRepository para leer datos con ResourceModel
- 2.7. Usando PostRepository para guardar datos con ResourceModel
- 2.8. Usando PostRepository para eliminar datos con ResourceModel
- 2.9. Insertando datos en la tabla de blog usando Data Patch
- 2.10. Exponiendo los métodos de PostRepositoryInterface como endpoints de una API REST
-
View Models y Repositorios para Carga de Datos
- 3.1. ¿Qué es un ViewModel en Magento 2 y por qué usarlo?
- 3.2. Pasando datos a template List mediante un ViewModel que usa Collection
- 3.3. Pasando datos a template Sidebar mediante un ViewModel que usa Collection
- 3.4. Agregando función getCount al ViewModel Post
- 3.5. Pasando datos a template List mediante un ViewModel usando PostRepository
-
Manejo de Eventos e Interceptores en Magento 2
-
Fundamentals de JS para Magento 2
- 5.1. Integración de JavaScript en plantillas PHTML con RequireJS
- 5.2. Accediendo a un módulo JavaScript AMD mediante RequireJS
- 5.3. Usando map para crear un alias dentro de RequireJs
- 5.4. Usando PATHS para crear un alias dentro de RequireJs
- 5.5. Implementación de CSP
- 5.6. Agregando un componente VueJs de forma imperativa
- 5.7. Agregando un componente VueJs de forma Declarativa
- 5.8. Agregando un componente VueJs de forma Declarativa con x-magento-init
- 5.9. Pasando datos desde un ViewModel a un componente JavaScript
- 5.10. Empleando shim para definir la relación entre módulos
- 5.11. Empleando deps para cargar un script global
- 5.12. Sobrescribir archivos o componentes JavaScript con map
- 5.13. Sobrescribir métodos de componentes JavaScript con mixins
-
Personalización de Temas y Estilos
-
REST API
Para poder trabajar con esta versión de Magento, asegúrate de cumplir con los siguientes requisitos:
- Sistema Operativo: Linux (preferiblemente distribuciones basadas en Ubuntu) o macOS.
- RAM: 2 GB de RAM como mínimo para Magento sin Elasticsearch; 4 GB o más es recomendado.
- Disco duro: SSD para mejorar el rendimiento.
- PHP: Versión 8.1
- MySQL: 8.0 o MariaDB 10.4
- Composer: 2.x
- Elasticsearch/OpenSearch: 7.16+ (para búsqueda y catálogo)
- Nginx: 1.x o Apache 2.4.x
- Node.js: 14.x
- npm: 6.x
- Redis: 6.x (opcional para almacenamiento en caché)
- Memcached: Opcional
- RabbitMQ: 3.8.x (opcional para la gestión de colas)
- ext-bcmath
- ext-ctype
- ext-curl
- ext-dom
- ext-gd
- ext-iconv
- ext-intl
- ext-mbstring
- ext-openssl
- ext-pdo_mysql
- ext-simplexml
- ext-soap
- ext-xsl
- ext-zip
- ext-sockets (para Redis)
- Google Chrome
- Mozilla Firefox
- Safari
- Microsoft Edge
-
Clona el repositorio en tu entorno local:
git clone https://github.com/PerezContrerasLuis/magento2-dev-guide.git
-
Asegúrate de cumplir con los requisitos anteriores y de tener instalado Composer:
composer install
-
Configura tu archivo
.env
con los parámetros correctos de conexión a la base de datos, Redis, Elasticsearch, entre otros.
Este proyecto está diseñado para uso personal, pero se aceptan sugerencias y mejoras a través de pull requests.
Autor: Luis Pérez Contreras
Versión Magento: 2.4.7
Licencia: MIT