Gaia_Product
Descripción General
El módulo Gaia_Product personaliza y extiende la funcionalidad del módulo de productos de Magento 2. Incluye funcionalidades avanzadas como cálculo de días de entrega, gestión de productos agrupados, categorización automática, y personalizaciones en la galería de imágenes y checkout.
Features
Cálculo de Días de Entrega
- Descripción: Implementa un sistema personalizado para calcular días de entrega basado en códigos postales y productos.
- Tipo de modificación: Plugins, observers y modelos personalizados.
- Archivos del core afectados: No modifica archivos core de Magento.
- Archivos del módulo:
Plugin/DeliveryDayPlugin.phpPlugin/DeliveryDaysCheckoutSummaryPlugin.phpObserver/DeliveryDays.phpModel/DeliveryDaysManagement.php
- Notas importantes:
- Se ejecuta en eventos de carrito y checkout para calcular días de entrega.
Gestión de Productos Agrupados
- Descripción: Personaliza la gestión de productos agrupados con funcionalidades específicas.
- Tipo de modificación: Comando CLI y modelos personalizados.
- Archivos del core afectados: No modifica archivos core de Magento.
- Archivos del módulo:
Console/GaiaGrouped.phpModel/Product/Link.php
- Notas importantes:
- Incluye comando CLI para gestión de productos agrupados.
Categorización Automática
- Descripción: Proporciona funcionalidad de categorización automática de productos.
- Tipo de modificación: Comando CLI.
- Archivos del core afectados: No modifica archivos core de Magento.
- Archivos del módulo:
Console/Categorize.php
- Notas importantes:
- Permite categorización automática de productos mediante comando CLI.
Galería de Imágenes Personalizada
- Descripción: Personaliza la gestión y presentación de imágenes en la galería de productos.
- Tipo de modificación: Plugins.
- Archivos del core afectados: No modifica archivos core de Magento.
- Archivos del módulo:
Plugin/AddImagesToProductMediaGalleryPlugin.phpPlugin/ChangeImagesFormatPlugin.php
- Notas importantes:
- Permite agregar imágenes adicionales y cambiar formatos de imagen.
Producto Personalizado
- Descripción: Extiende el modelo de producto con funcionalidades personalizadas.
- Tipo de modificación: Override de modelo.
- Archivos del core afectados: Reemplaza
Magento\Catalog\Model\Product. - Archivos del módulo:
Model/Catalog/Product.php
- Notas importantes:
- Extiende la funcionalidad base del producto de catálogo.
Controlador de Carrito Personalizado
- Descripción: Personaliza el comportamiento del controlador de agregar al carrito.
- Tipo de modificación: Override de controlador.
- Archivos del core afectados: Reemplaza
Magento\Checkout\Controller\Cart\Add. - Archivos del módulo:
Controller/Cart/Add.php
- Notas importantes:
- Permite lógica personalizada al agregar productos al carrito.
Gestión de Colores por SKU
- Descripción: Implementa gestión personalizada de colores basada en SKU.
- Tipo de modificación: API personalizada.
- Archivos del core afectados: No modifica archivos core de Magento.
- Archivos del módulo:
Model/ColorbyskuManagement.php
- Notas importantes:
- Permite asociar colores específicos a SKUs de productos.
Customer Data Personalizado
- Descripción: Personaliza los datos de cliente en el checkout.
- Tipo de modificación: Override de customer data.
- Archivos del core afectados: Reemplaza
Magento\Checkout\CustomerData\DefaultItem. - Archivos del módulo:
CustomerData/DefaultItem.php
- Notas importantes:
- Afecta la presentación de datos en el checkout.
Sistema de Logging Integrado
- Descripción: Implementa logging personalizado con integración NewRelic.
- Tipo de modificación: Configuración de logging.
- Archivos del core afectados: No modifica archivos core de Magento.
- Archivos del módulo:
- Configuración en
di.xml
- Configuración en
- Notas importantes:
- Proporciona logging detallado para debugging y monitoreo.
Overrides, Observers y Plugins Importantes
Preferences (Overrides)
Magento\Catalog\Model\Product→Gaia\Product\Model\Catalog\Product- Descripción: Extiende el modelo de producto con funcionalidades personalizadas.
Magento\Checkout\Controller\Cart\Add→Gaia\Product\Controller\Cart\Add- Descripción: Personaliza el comportamiento de agregar al carrito.
Magento\Catalog\Model\Product\Link→Gaia\Product\Model\Product\Link- Descripción: Personaliza la gestión de enlaces entre productos.
Magento\Checkout\CustomerData\DefaultItem→Gaia\Product\CustomerData\DefaultItem- Descripción: Personaliza los datos de cliente en checkout.
Observers
checkout_cart_update_items_after→Gaia\Product\Observer\DeliveryDays- Descripción: Calcula días de entrega después de actualizar items del carrito.
sales_quote_product_add_after→Gaia\Product\Observer\DeliveryDays- Descripción: Calcula días de entrega después de agregar producto al carrito.
after_updateDaysDueZipcode→Gaia\Product\Observer\DeliveryDays- Descripción: Calcula días de entrega después de actualizar días por código postal.
delivery_days_assign_data→Gaia\Product\Observer\DeliveryDays\Extra- Descripción: Agrega datos extra de porcentaje para días de entrega.
Plugins
Magento\Catalog\Api\ProductRepositoryInterfacegaia_delivery_day: Plugin para días de entregagaia_url_add_to_cart: Plugin para URLs de agregar al carritoadd_images_to_product_gallery: Plugin para agregar imágenes a galería
Magento\Checkout\Model\DefaultConfigProvideraddattplug: Plugin para resumen de checkout con días de entregachange_images_format: Plugin para cambiar formato de imágenes
CLI Commands
gaia:group→Gaia\Product\Console\GaiaGrouped- Descripción: Comando para gestión de productos agrupados.
categorize→Gaia\Product\Console\Categorize- Descripción: Comando para categorización automática de productos.
APIs
Expone APIs personalizadas para gestión de días de entrega y colores por SKU a través de la configuración en etc/webapi.xml.
Consideraciones para Mantenimiento
- El módulo es crítico para la funcionalidad de productos y no debe desactivarse sin revisar dependencias.
- Los overrides de modelos y controladores pueden afectar el comportamiento estándar de Magento.
- El sistema de días de entrega es complejo y requiere monitoreo constante.
- Los plugins se ejecutan en operaciones críticas de productos y deben ser eficientes.
- El logging integrado con NewRelic requiere configuración correcta del servicio.
- Los comandos CLI pueden ser intensivos en recursos para grandes volúmenes de productos.
- Revisar compatibilidad con actualizaciones del módulo de catálogo de Magento.