Conekta is a company that offers payment services for businesses location and e-commerce platforms.
They contacted us to update plugins for main platforms, our main objective was to ensure compatibility with the latest versions of each platform as well as provide stability. They had been running with several errors on those existing plugin.
We were in charge of updating plugins and apps for the following ecommerce platforms:
Additionally, we created a new app with the following stack
- Vue.js v2.6
- bootstrap v4.6
Magento 2 extension
We've received a version of the plugin developed for Magento 2.3 where they already had basic functionalities for processing payments under OXXO, SPEI and credit cards with native Magento methods. Therefore, when starting with our development phase, we focused on new features such as metadata for the API integration (in order to pull more information from Conekta admin panel) and also 3DS security for credit cards. Later, we continue working on upgrading the plugin to be compatible with Magento 2.4.x version.
Once we completed the initial upgrade, we published 2 plugins, one for Magento 2.3 another for 2.4. At the same time, we started working on a single plugin in order to handle both Magento versions, adding changes and adjustments to improve stability and allowing the team to modify the same code base for both versions. This also speeded up our maintenance and changes aftereword (a really common situations on this kind of projects).
Prestashop module and Woocommerce plugin
We've also received a basic version of the plugin with payment functionalities (processing OXXO, SPEI and credit cards) integrated into native checkout for both Prestashop and WooCommerce but both plugins were incomplete, with several errors and code quality was a serious problem. Our first step was to reach a version of the plugin that meet coding standards. We focused on stabilizing add-ons and key features, which required several changes for particular workflow and updates to be able to expand new functionalities.
Based on the initial state of those plugins, we take our development phase into several iterations until we reached a minimum stability for requested platform versions. Like work done in Magento, we have also developed more features for Prestashop and WooCommerce such as sending metadata to Conekta API, integrating the new embed checkout, modifying support about new features like interest-free payments, configurable expiration periods for OXXO and SPEI, 3DS credit card security, ability for enable/disable payment methods. Into admin panel, users can adjust parameters to handle and configure all about these options.
In addition, this plugin "listens" for events that are currently triggered by Conekta API platform, certain events such as transactions and status change of an order. We helped Conekta team to design the solution of this part of the integration. We have also improved logic for the plugin "listeners" in order to add new events like order expirations and full returns, this helps business to handle them in a better way right in the admin panel.
Finally, for Prestashop e-commerce platform the module was updated to allow custom order status. We defined admin panel options to manage details for those custom statuses and emails templates for adding extra information (such as the order reference number) for payments processed under OXXO and SPEI.
We received two apps that were almost deprecated, using Shopify API v2019-07. Our first updates impacted several dependencies and settings to be compatible with new versions of Shopify API and changes for preventing them from becoming obsolete in the short term. Both Shopify apps were developed using Ruby (programming language) therefore the app upgrade involved several Ruby gems update, which entails several additional changes to both apps in order to continue supporting gems and new dependencies. We have reached a good stability for both apps to support Shopify API v2021-04 and 2021-07
After this availability of the applications, some extra functionalities were added, such as the sending of metadata, and work began on changes to allow the migration of the applications to AWS.
Vue.js app for subscriptions management
Conekta already offers subscription for recurring payments, so they requested to our team to add subscription and support for all plugins. Thus, it allows business to create subscription-type products, manage plans (create, edit, pause/resume and cancellation). We have also added logic to allow embedded checkout (integrated in previous phase) to work properly with these new subscription-type products.
One of the limitations that we began to notice in maintenance, but above all for each new functionality, was the need to replicate administration interfaces and checkout interfaces that will be repeated, and of course maintain for each platform. Not only was this a headache, especially for optimization and testing, it also duplicated a lot of effort for each plugin. This is why an application built in Vue.js was key for building a subscription management panel, which allows Conekta to use the same interface and functionalities and quickly deploy changes into all stores, not even the platform plugin directory but also actual stores using the app. This allows flexibility for deploying new changes and good timing for applying bug fixing on the fly, because they can't just rely on administrator users clicking on the update button.
In order to keep a good compatibility, we added some environment variables to implement the Vue.js app that allowed identify each platform (Prestashop, WooCommerce and Magento) from the admin panel and show special and native options accordingly. Due to business decisions, this last functionality has not been released yet.