Saltar al contenido principal

Gaia_Checkout


id: gaia-checkout title: Gaia_Checkout sidebar_label: Checkout description: Funcionalidades personalizadas de checkout en Gaia Magento 2

Gaia_Checkout

Descripción General

El módulo Gaia_Checkout personaliza y extiende la funcionalidad del checkout de Magento 2. Incluye modificaciones en el proceso de checkout, gestión de días de entrega, suscripción a newsletter, validación de direcciones y personalización de la experiencia de usuario en el carrito y página de éxito.

Features

Checkout Personalizado

  • Descripción: Personaliza el proceso completo de checkout con funcionalidades específicas de Gaia.
  • Tipo de modificación: Overrides de bloques, controladores y modelos.
  • Archivos del core afectados: Reemplaza varios componentes del checkout de Magento.
  • Archivos del módulo:
    • Block/Minicart/Sidebar.php
    • Block/Onepage/Success.php
    • Controller/Onepage/Success.php
    • Model/Cart.php
  • Notas importantes:
    • Afecta la experiencia completa del usuario en el checkout.

Sistema de Días de Entrega

  • Descripción: Implementa cálculo y gestión personalizada de días de entrega durante el checkout.
  • Tipo de modificación: Plugins en múltiples interfaces.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/Checkout/DeliveryDays/SaveShippingInfo.php
    • Plugin/Checkout/DeliveryDays/TotalRepositoryPlugin.php
    • Plugin/Checkout/DeliveryDays/Zipcode.php
    • Plugin/Checkout/DeliveryDays/ZipcodeLoged.php
  • Notas importantes:
    • Se ejecuta en diferentes etapas del checkout para calcular días de entrega.

Gestión de Información de Envío

  • Descripción: Personaliza el guardado y procesamiento de información de envío.
  • Tipo de modificación: Plugins en ShippingInformationManagement.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/Quote/SaveToQuote.php
    • Plugin/Checkout/DeliveryDays/SaveShippingInfo.php
  • Notas importantes:
    • Permite guardar información adicional en la cotización.

Suscripción a Newsletter

  • Descripción: Integra suscripción automática a newsletter durante el checkout.
  • Tipo de modificación: Plugins y observers.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/Checkout/ShippingInformationManagement.php
    • Observer/EventSalesModelServiceQuoteSubmitSuccess.php
  • Notas importantes:
    • Se ejecuta después de completar la orden para suscribir al cliente.

Gestión de Pagos Personalizada

  • Descripción: Personaliza el procesamiento de información de pago.
  • Tipo de modificación: Plugins en gestión de pagos.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/Model/SavePaymentPlugin.php
    • Plugin/Model/GuestSavePaymentPlugin.php
  • Notas importantes:
    • Aplica tanto a usuarios registrados como invitados.

Validación de Direcciones

  • Descripción: Personaliza la validación de direcciones durante el checkout.
  • Tipo de modificación: Plugin en validación de direcciones.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/Checkout/Quote/QuoteAddressValidatorPlugin.php
  • Notas importantes:
    • Permite lógica personalizada en la validación de direcciones.

Customer Data Personalizado

  • Descripción: Personaliza los datos del carrito mostrados al cliente.
  • Tipo de modificación: Plugin en CustomerData.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Plugin/Checkout/CustomerData/Cart.php
  • Notas importantes:
    • Afecta la información mostrada en el minicart.

Campos Personalizados en Checkout

  • Descripción: Permite guardar campos personalizados durante el checkout.
  • Tipo de modificación: Observer.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Observer/SaveCheckoutCustomFieldsInOrder.php
  • Notas importantes:
    • Se ejecuta antes de crear la orden para guardar campos personalizados.

Overrides, Observers y Plugins Importantes

Preferences (Overrides)

  • Magento\Checkout\Block\Cart\SidebarGaia\Checkout\Block\Minicart\Sidebar
    • Descripción: Personaliza la barra lateral del minicart.
  • Magento\Checkout\Block\Onepage\SuccessGaia\Checkout\Block\Onepage\Success
    • Descripción: Personaliza la página de éxito del checkout.
  • Magento\Checkout\Controller\Onepage\SuccessGaia\Checkout\Controller\Onepage\Success
    • Descripción: Personaliza el controlador de la página de éxito.
  • Magento\Checkout\Model\CartGaia\Checkout\Model\Cart
    • Descripción: Personaliza el modelo del carrito.

Observers

  • sales_model_service_quote_submit_beforeGaia\Checkout\Observer\SaveCheckoutCustomFieldsInOrder
    • Descripción: Guarda campos personalizados antes de crear la orden.
  • sales_model_service_quote_submit_successGaia\Checkout\Observer\EventSalesModelServiceQuoteSubmitSuccess
    • Descripción: Maneja eventos después de crear la orden exitosamente.

Plugins

  • Magento\Checkout\Model\ShippingInformationManagement
    • save_to_quote_table: Guarda información en la tabla de cotización
    • gaia_newslettersubscription_shippinginformationmanagement: Maneja suscripción a newsletter
  • Magento\Checkout\Api\ShippingInformationManagementInterface
    • delivery_days_save_shipping_information: Guarda información de días de entrega
    • save-newsletter-subscribe-in-quote: Guarda suscripción a newsletter en cotización
  • Magento\Quote\Api\GuestShipmentEstimationInterface
    • delivery_days_save_zipcode: Guarda código postal para días de entrega (invitados)
  • Magento\Quote\Api\ShippingMethodManagementInterface
    • delivery_days_save_zipcode_loged: Guarda código postal para días de entrega (usuarios registrados)
  • Magento\Quote\Api\CartTotalRepositoryInterface
    • total_cart_repository_plugin: Personaliza totales del carrito
  • Magento\Checkout\Model\PaymentInformationManagement
    • set_payment_data_before_save: Establece datos de pago antes de guardar
  • Magento\Checkout\Model\GuestPaymentInformationManagement
    • guest_set_payment_data_before_save: Establece datos de pago para invitados
  • Magento\Quote\Model\QuoteAddressValidator
    • quoteAddressValidator: Personaliza validación de direcciones
  • Magento\Checkout\CustomerData\Cart
    • gaia_totals: Personaliza totales mostrados en customer data

CLI Commands

Este módulo no define comandos CLI personalizados.

APIs

No expone endpoints REST o GraphQL propios, pero modifica el comportamiento de APIs existentes del checkout.

Consideraciones para Mantenimiento

  • El módulo es crítico para el proceso de checkout y no debe desactivarse sin revisar dependencias.
  • Los overrides de bloques y controladores pueden afectar la experiencia del usuario.
  • El sistema de días de entrega es complejo y requiere monitoreo constante.
  • Los plugins se ejecutan en operaciones críticas del checkout y deben ser eficientes.
  • La suscripción automática a newsletter requiere configuración correcta.
  • Los campos personalizados pueden afectar la estructura de órdenes.
  • Revisar compatibilidad con actualizaciones del módulo de checkout de Magento.
  • El módulo depende de varios módulos core (Tax, Quote, Checkout, Newsletter).