Saltar al contenido principal

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.php
    • Plugin/DeliveryDaysCheckoutSummaryPlugin.php
    • Observer/DeliveryDays.php
    • Model/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.php
    • Model/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.php
    • Plugin/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
  • 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\ProductRepositoryInterface
    • gaia_delivery_day: Plugin para días de entrega
    • gaia_url_add_to_cart: Plugin para URLs de agregar al carrito
    • add_images_to_product_gallery: Plugin para agregar imágenes a galería
  • Magento\Checkout\Model\DefaultConfigProvider
    • addattplug: Plugin para resumen de checkout con días de entrega
    • change_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.