Saltar al contenido principal

Gaia_Customer

Descripción General

El módulo Gaia_Customer personaliza y extiende la funcionalidad del módulo de clientes de Magento 2. Incluye un sistema de canales de cliente, personalización del proceso de registro y login, gestión de grupos de clientes y integración con reglas de venta basadas en canales.

Features

Sistema de Canales de Cliente

  • Descripción: Implementa un sistema de canales para categorizar y gestionar clientes por diferentes canales de venta.
  • Tipo de modificación: Modelos, APIs y UI components personalizados.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Model/Channel.php
    • Model/ChannelRegistry.php
    • Model/Data/Channel.php
    • Model/ResourceModel/Channel/
  • Notas importantes:
    • Permite categorizar clientes por canales de venta específicos.

Registro de Cliente Personalizado

  • Descripción: Personaliza el proceso de registro de clientes con funcionalidades específicas de Gaia.
  • Tipo de modificación: Override de controlador.
  • Archivos del core afectados: Reemplaza Magento\Customer\Controller\Account\CreatePost.
  • Archivos del módulo:
    • Controller/Account/CreatePost.php
  • Notas importantes:
    • Extiende significativamente el proceso de registro con lógica personalizada.

Login Personalizado

  • Descripción: Personaliza el proceso de login con funcionalidades específicas.
  • Tipo de modificación: Plugin en controlador de login.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/LoginPostPlugin.php
  • Notas importantes:
    • Se ejecuta después del login para procesamiento adicional.

Bloques de Navegación Personalizados

  • Descripción: Personaliza los bloques de navegación de la cuenta de cliente.
  • Tipo de modificación: Overrides de bloques.
  • Archivos del core afectados: Reemplaza bloques de navegación de cliente.
  • Archivos del módulo:
    • Block/CurrentLink.php
    • Block/Link.php
  • Notas importantes:
    • Afecta la presentación de enlaces en la cuenta de cliente.

Integración con Reglas de Venta

  • Descripción: Integra el sistema de canales con las reglas de venta de Magento.
  • Tipo de modificación: Plugin en utilidad de reglas de venta.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/CheckChannelRulePlugin.php
  • Notas importantes:
    • Permite aplicar reglas de venta basadas en canales de cliente.

Grid de Administración

  • Descripción: Proporciona interfaz de administración para gestionar grupos de canales.
  • Tipo de modificación: UI components y collections.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Model/ResourceModel/Channel/Grid/Collection.php
    • Configuración en di.xml
  • Notas importantes:
    • Permite gestionar canales desde el panel de administración.

APIs Personalizadas

  • Descripción: Expone APIs para gestión de canales de cliente.
  • Tipo de modificación: APIs personalizadas.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Api/ChannelRepositoryInterface.php
    • Api/Data/ChannelInterface.php
  • Notas importantes:
    • Permite integración con sistemas externos para gestión de canales.

Estructura de Base de Datos

  • Descripción: Define tablas personalizadas para el sistema de canales.
  • Tipo de modificación: Esquema de base de datos.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • etc/db_schema.xml
  • Notas importantes:
    • Crea tablas necesarias para el sistema de canales.

Overrides, Observers y Plugins Importantes

Preferences (Overrides)

  • Magento\Customer\Block\Account\SortLinkGaia\Customer\Block\CurrentLink
    • Descripción: Personaliza el enlace de ordenamiento en la cuenta de cliente.
  • Magento\Customer\Block\Account\LinkGaia\Customer\Block\Link
    • Descripción: Personaliza los enlaces de la cuenta de cliente.
  • Magento\Customer\Controller\Account\CreatePostGaia\Customer\Controller\Account\CreatePost
    • Descripción: Personaliza el proceso de registro de clientes.

Plugins

  • Magento\Customer\Controller\Account\LoginPost
    • gaia_customer_loginpostplugin: Plugin para procesamiento post-login
  • Magento\SalesRule\Model\Utility
    • check_channel_rule_plugin: Plugin para verificar reglas basadas en canales

Configuraciones de Inyección de Dependencias

  • Magento\Framework\View\Element\UiComponent\DataProvider\CollectionFactory
    • Descripción: Configura collection para grid de canales
  • Gaia\Customer\Model\ResourceModel\Channel\Grid\Collection
    • Descripción: Configura collection específica para grid de canales

CLI Commands

Este módulo no define comandos CLI personalizados.

APIs

Expone APIs personalizadas para gestión de canales de cliente:

  • Gaia\Customer\Api\ChannelRepositoryInterface
  • Gaia\Customer\Api\Data\ChannelInterface

Consideraciones para Mantenimiento

  • El módulo es importante para la gestión de clientes y no debe desactivarse sin revisar dependencias.
  • El override del controlador de registro es extenso y puede afectar el proceso de registro.
  • El sistema de canales puede estar integrado con reglas de venta y otros módulos.
  • Los plugins se ejecutan en operaciones críticas de cliente y deben ser eficientes.
  • La estructura de base de datos personalizada requiere migraciones cuidadosas.
  • El grid de administración puede requerir permisos específicos configurados en acl.xml.
  • Revisar compatibilidad con actualizaciones del módulo de cliente de Magento.
  • El módulo depende del módulo core de Customer de Magento.