Saltar al contenido principal

Gaia_StoreCredit

Descripción General​

El módulo Gaia_StoreCredit implementa un sistema completo de crédito de tienda (store credit) para Magento 2, basado en el módulo de Mageplaza. Permite a los clientes ganar, gastar y gestionar créditos de tienda, incluyendo integración con órdenes, facturas, reembolsos y múltiples métodos de pago.

Features​

Gestión de Crédito de Tienda​

  • Descripción: Proporciona funcionalidades completas para gestionar créditos de tienda de clientes, incluyendo ganancias, gastos y transacciones.
  • Tipo de modificación: Modelos y APIs personalizados.
  • Archivos del core afectados: No modifica archivos core de Magento.
  • Archivos del módulo:
    • Model/Api/SpendingManagement.php
    • Model/Customer.php, Model/Order.php, Model/Invoice.php, Model/Creditmemo.php
  • Notas importantes:
    • Implementa un sistema completo de transacciones de crédito de tienda.

Integración con Carrito y Órdenes​

  • Descripción: Integra el crédito de tienda con el proceso de carrito y creación de órdenes.
  • Tipo de modificación: Plugins y observers personalizados.
  • Archivos del core afectados: Intercepta procesos de carrito y órdenes.
  • Archivos del módulo:
    • Plugin/Quote/ToOrderItem.php
    • Observer/ConvertQuoteToOrder.php, Observer/QuoteSubmitFailure.php
  • Notas importantes:
    • Maneja la conversión de crédito de tienda del carrito a la orden.

APIs y Extensiones​

  • Descripción: Expone APIs para gestión de crédito de tienda y extiende funcionalidades de Magento.
  • Tipo de modificación: APIs personalizadas y extensiones.
  • Archivos del core afectados: No modifica archivos core.
  • Archivos del módulo:
    • etc/webapi.xml, etc/extension_attributes.xml
  • Notas importantes:
    • Permite integración con sistemas externos y headless.

Overrides, Observers y Plugins Importantes​

Preferences (Overrides)​

  • Gaia\StoreCredit\Api\SpendingManagementInterface → Gaia\StoreCredit\Model\Api\SpendingManagement
    • Descripción: Implementa la lógica de gestión de gasto de crédito de tienda.
  • Gaia\StoreCredit\Api\Data\StoreCreditCustomerInterface → Gaia\StoreCredit\Model\Customer
    • Descripción: Maneja datos de cliente relacionados con crédito de tienda.
  • Gaia\StoreCredit\Api\Data\OrderInterface → Gaia\StoreCredit\Model\Order
    • Descripción: Extiende órdenes con funcionalidades de crédito de tienda.

Observers​

  • CustomerLoadAfter (evento: customer_load_after)
    • Descripción: Carga atributos personalizados de crédito de tienda cuando se carga un cliente.
  • ConvertQuoteToOrder (evento: sales_model_service_quote_submit_before)
    • Descripción: Convierte crédito de tienda del carrito a la orden durante la creación.
  • QuoteSubmitFailure (eventos: sales_model_service_quote_submit_failure, gaia_gabo_reserve_failure)
    • Descripción: Revierte crédito de tienda cuando falla la creación de la orden.
  • PaypalPrepareItems (evento: payment_cart_collect_items_and_amounts)
    • Descripción: Prepara items de crédito de tienda para integración con PayPal.

Plugins​

  • ToOrderItem (tipo: Magento\Quote\Model\Quote\Item\ToOrderItem)
    • Descripción: Mueve opciones de crédito de tienda del item del carrito al item de la orden.
  • CanCreditmemo (tipo: Magento\Sales\Block\Order\View)
    • Descripción: Modifica la lógica de cuándo se puede crear un memo de crédito basado en crédito de tienda usado.

CLI Commands​

Este módulo no define comandos CLI personalizados.

APIs​

Expone endpoints REST para gestión de crédito de tienda, definidos en etc/webapi.xml, incluyendo operaciones de gasto, ganancia y consulta de saldo.

Consideraciones para Mantenimiento​

  • El módulo es extenso y modifica múltiples aspectos del flujo de ventas.
  • Los observers son críticos para la integridad de datos de crédito de tienda.
  • Los plugins pueden requerir ajustes si cambian los métodos core de carrito y órdenes.
  • La desactivación puede afectar órdenes existentes que usen crédito de tienda.
  • Revisar compatibilidad con otros módulos de pago y gestión de órdenes.