The client currently has its main web services in SOAP format and one of the main objectives of the project is to migrate them to a Rest API. In addition, some new features, such as user login, must also be implemented in the process.
In a second stage, it must also be integrated with different e-commerce platforms (such as Magento, Prestashop, Vtex or Shopify) so that selling clients can send their orders through the client using the new services mentioned above.
The first plugin to develop was the one for Shopify. At the beginning, we began investigating both the platform and the type of integration that e-commerce allowed.
The applications within Shopify work with their own infrastructure and are embedded within the "Apps" section in the user administration panel, so it is necessary to implement a front-end application but at the same time allow control over a database in a secure way. At this point in the time, the team hit the first challenges, in what technology were we going to develop it? How was the application going to be hosted?
Once the technical issues of the application had been defined, it remained to define how the functionalities were going to be integrated within it and also how much control we were going to be able to have over the Shopify platform itself.
Fortunately, Shopify gives us the ability to use an application template based on NextJs. This template facilitated the choice of technology since it met the requirement of providing a front-end in addition to making queries from a back-end (including a secure database of its own).
Regarding the functionalities that Shopify allows, there is the possibility of adding custom actions within specific places of your administration panel. This was very useful since the main functionality of the plugin is to add actions on orders so that the seller can interact intuitively with the customer's services.
Once the solution was developed, it was time to install the application in a pre-production environment so that it could be tested and finally deploy into production. The purpose of this implementation at this stage was to obtain a publicly accessible URL that could be provided to Shopify so that it could display the embedded application.
The deployment was done using PM2 to manage the NodeJS process and NGINX as the web server.
Once the technical issues of the solution have been resolved and with all the functionalities implemented, te team were able to demo the application to the client. On that stage some doubts were solved and performance polished in order to publish the app within the Shopify app store.
With the plugin published in the Shopify store thousands of sellers can use the services everyday.