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\ProductGaia\Product\Model\Catalog\Product
    • Descripción: Extiende el modelo de producto con funcionalidades personalizadas.
  • Magento\Checkout\Controller\Cart\AddGaia\Product\Controller\Cart\Add
    • Descripción: Personaliza el comportamiento de agregar al carrito.
  • Magento\Catalog\Model\Product\LinkGaia\Product\Model\Product\Link
    • Descripción: Personaliza la gestión de enlaces entre productos.
  • Magento\Checkout\CustomerData\DefaultItemGaia\Product\CustomerData\DefaultItem
    • Descripción: Personaliza los datos de cliente en checkout.

Observers

  • checkout_cart_update_items_afterGaia\Product\Observer\DeliveryDays
    • Descripción: Calcula días de entrega después de actualizar items del carrito.
  • sales_quote_product_add_afterGaia\Product\Observer\DeliveryDays
    • Descripción: Calcula días de entrega después de agregar producto al carrito.
  • after_updateDaysDueZipcodeGaia\Product\Observer\DeliveryDays
    • Descripción: Calcula días de entrega después de actualizar días por código postal.
  • delivery_days_assign_dataGaia\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:groupGaia\Product\Console\GaiaGrouped
    • Descripción: Comando para gestión de productos agrupados.
  • categorizeGaia\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.