Conekta Plugins
Conekta es una empresa que ofrece un servicios financiero de cobros y pagos para negocios y plataformas e-commerce.
Fase inicial
Desde la empresa nos contactaron para realizar una actualización de los plugins más importantes, el objetivo principal fue asegurar compatibilidad con las nuevas versiones de cada plataforma, estabilizar algunos errores presentes en cada plugin y agregar más funcionalidades a los mismos.
Estuvimos a cargo de la actualización de los plugins para las siguientes tiendas:
- Shopify App (API version 2021-04 / 2021-07)
- Prestashop 1.7.x
- Magento 2.3 / 2.4
- Woocommerce 4.9 / 5.x
Adicionalmente, creamos una nueva app con el siguiente stack
- Vue.js v2.6
- bootstrap v4.6
Magento 2 extensión
Recibimos una versión de plugin desarrollada para Magento 2.3 en donde se tenían las funcionalidades básicas de pagos con OXXO, SPEI y tarjetas de crédito con métodos nativos de Magento. Durante el desarrollo, como primer paso, agregamos nuevas características al plugin (como el uso de metadata y 3DS). Luego, continuamos trabajando en actualizar el plugin para ser compatible con la versión 2.4.x de Magento.
Una vez que pudimos completar el upgrade, se comenzó a trabajar en un plugin que pudiera funcionar en ambas versiones de Magento, añadiendo cambios para mejorar la estabilidad y modificando una misma base de código para ambas versiones. Pudimos implementar funcionalidades como por ejemplo un checkout embebido, soporte para configurar dicho checkout desde el panel de admin, soporte para pago con tarjetas sin interés y soporte para ciertas funcionalidades exclusivas en la versión de Adobe Commerce (Magento Enterprise) y Adobe Commerce Cloud (ACC) que es la version cloud-based (en la nube).
Prestashop/Woocommerce extensión
Recibimos una versión del plugin en donde se tenían las funcionalidades básicas de pagos (con OXXO, SPEI y tarjetas) como métodos nativos en Prestashop y WooCommerce pero ambos plugins estaban incompletos, con errores. Como primeros pasos, se trabajó en estabilizar los plugins, los cuales requerían ajustes ante situaciones particulares y actualizaciones para permitir expandir las funcionalidades soportadas por el mismo.
Durante el desarrollo, luego de la estabilización de los plugins, se agregaron funcionalidades como envío de metadatos, se incorporó un checkout embebido, modificando además para soportar las nuevas funcionalidades de este checkout (pagos sin interés, periodos de expiración configurables para OXXO y SPEI, 3DS, habilitar/deshabilitar métodos de pagos). En el admin se agregaron parámetros que permiten configurar todas estas opciones.
Además, este plugin escucha eventos que son disparados por Conekta ante ciertos eventos como el pago de una orden. Durante el transcurso del desarrollo se añadió lógica para escuchar nuevos eventos como las expiraciones de las distintas órdenes y devoluciones completas.
En Prestashop, debido a que el e-commerce permite el uso de estados custom para órdenes, se ajustaron detalles en dichos estados customs y se modificaron los templates de los emails agregando datos (como el número de referencia) para pagos con OXXO y SPEI.
Shopify
Recibimos dos plugins que primeramente requerían de actualizaciones en varios de sus dependencias y ajustes para ser compatibles con las nuevas versiones de Shopify y evitar estos queden deprecados. Estos plugins están desarrollados en Ruby, y requirieron de actualizaciones en algunas gemas que estaban próximas a quedar deprecadas, lo cual requirió varios cambios adicionales en los plugins para ajustarlos a las nuevas gemas y dependencias.
Luego de esta estabilización de las aplicaciones, se agregaron algunas funcionalidades extras como el envío de metadatos, y se comenzó a trabajar en cambios para permitir la migración de las aplicaciones a AWS.
Vue.js app para gestión de suscripciones
Se trabajó en agregar soporte a todos los plugins para suscripciones, permitiendo en cada tienda la creación de productos de tipo suscripción, gestionar planes (creación, edición, pausa y cancelación). Además se agregó lógica para permitir utilizar el checkout embebido con estos productos de tipo suscripción.
Una de las limitaciones que empezamos a notar en el mantenimiento pero sobretodo para cada nueva funcionalidad, era la necesidad de replicar interfaces de administración e interfaces en el checkout que se debían repetir, y desde luego mantener para cada plataforma. Esto no solo que era un dolor de cabeza, especialmente para optimizar y probar, a su vez duplicaba mucho esfuerzo para cada plugin. Es por esto que en la gestión de suscripciones se utilizó una aplicación construida en Vue.js que permite incorporar rápidamente en todas las tiendas la misma interfaz y funcionalidades. Esto permite flexibilidad ante nuevos cambios en la gestión de órdenes. Una de las principales ventajas de crear esta aplicación es la posibilidad de desplegar cambios sin necesidad de publicar nuevos plugins en el directorio de cada plataforma, es decir se podía impactar con mejoras y bug fixes realizando deploy the esta app y ver los cambios en cada tienda online.
Para mantener la mejor compatibilidad con cada plataforma se implementó en Vue.js el manejo de un conjunto de variables de entorno que permiten reconocer cada ecommerce, de esta manera desde el panel de administrador de cada tienda se mantiene el diseño de cada interfaz con una apariencia casi nativa, ya sea en Prestashop o WooCommerce el usuario no nota diferencias con el resto del panel administrativo. Por decisiones de negocio esta última funcionalidad no fue liberada aun.