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.phpBlock/Onepage/Success.phpController/Onepage/Success.phpModel/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.phpPlugin/Checkout/DeliveryDays/TotalRepositoryPlugin.phpPlugin/Checkout/DeliveryDays/Zipcode.phpPlugin/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.phpPlugin/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.phpObserver/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.phpPlugin/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\Sidebar→Gaia\Checkout\Block\Minicart\Sidebar- Descripción: Personaliza la barra lateral del minicart.
Magento\Checkout\Block\Onepage\Success→Gaia\Checkout\Block\Onepage\Success- Descripción: Personaliza la página de éxito del checkout.
Magento\Checkout\Controller\Onepage\Success→Gaia\Checkout\Controller\Onepage\Success- Descripción: Personaliza el controlador de la página de éxito.
Magento\Checkout\Model\Cart→Gaia\Checkout\Model\Cart- Descripción: Personaliza el modelo del carrito.
Observers
sales_model_service_quote_submit_before→Gaia\Checkout\Observer\SaveCheckoutCustomFieldsInOrder- Descripción: Guarda campos personalizados antes de crear la orden.
sales_model_service_quote_submit_success→Gaia\Checkout\Observer\EventSalesModelServiceQuoteSubmitSuccess- Descripción: Maneja eventos después de crear la orden exitosamente.
Plugins
Magento\Checkout\Model\ShippingInformationManagementsave_to_quote_table: Guarda información en la tabla de cotizacióngaia_newslettersubscription_shippinginformationmanagement: Maneja suscripción a newsletter
Magento\Checkout\Api\ShippingInformationManagementInterfacedelivery_days_save_shipping_information: Guarda información de días de entregasave-newsletter-subscribe-in-quote: Guarda suscripción a newsletter en cotización
Magento\Quote\Api\GuestShipmentEstimationInterfacedelivery_days_save_zipcode: Guarda código postal para días de entrega (invitados)
Magento\Quote\Api\ShippingMethodManagementInterfacedelivery_days_save_zipcode_loged: Guarda código postal para días de entrega (usuarios registrados)
Magento\Quote\Api\CartTotalRepositoryInterfacetotal_cart_repository_plugin: Personaliza totales del carrito
Magento\Checkout\Model\PaymentInformationManagementset_payment_data_before_save: Establece datos de pago antes de guardar
Magento\Checkout\Model\GuestPaymentInformationManagementguest_set_payment_data_before_save: Establece datos de pago para invitados
Magento\Quote\Model\QuoteAddressValidatorquoteAddressValidator: Personaliza validación de direcciones
Magento\Checkout\CustomerData\Cartgaia_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).