Technologies
Since the solution processes up to 20,000 returns daily, our architects chose Microsoft Azure as the underlying platform to ensure uninterrupted performance and scalability. The range of Azure products utilized on the project included Azure Virtual Machines, Microsoft Azure SQL Database, Microsoft Azure Web Sites, and Azure Application Insights.
We built the presentation layer with ASP.NET MVC, jQuery, Bootstrap, HTML5, and CSS/Less, and developed the business logic with C#.
At the same time, we created several custom APIs to go with the solution:
- The Outbound API for product delivery from retailers to buyers
- The Return API for returning products
- The Tracking API for tracking packages
- The Admin API to manage accounts of retailers, resellers, and warehouses
Data Privacy and Protection
For data protection, the configurations storing passwords to carriers’ APIs, certificates of access to services, and other assets are transferred to Azure Key Vault. In addition, Microsoft Azure SQL Database has a built-in transparent data encryption feature that enables data protection against malicious offline activity. Azure Cosmos DB offers encryption as well, so that all data, including attachments and backups, is encrypted.
On top of that, in case a buyer requests a return but does not send the product within a required period of time, the buyer’s personal data is deleted from the returns management system in order to avoid storing it longer than necessary according to the data privacy standards.
Our team developed a set of custom APIs to enable interaction with third-party systems, such as:
- 200+ warehousing systems to allow for full-cycle monitoring and information exchange regarding returned products, their expected arrival dates, outbound delivery tracking, and more.
- Resellers’ systems for exchanging data on available items, their prices, assigned categories, and resale details.
- Braintree and Adyen payment gateways that provide access to multiple payment systems that process refunds and consignment payments. Retailers which already have Braintree or Adyen accounts can integrate them with the returns management software to maintain direct cash flow.
- 200+ logistic systems for forwarding delivery orders to carrier services and tracking shipments.
- A notification system for sending delivery notifications and return policy updates to buyers via email or SMS.
Microservices-based Architecture
To sustain the growing client base and enable scalability, we went for a microservices-based architecture. The microservices are based on Azure Service Fabric, which is not demanding in terms of development and can provide scalability with thousands of machines if needed.
There are the following microservices:
- Product service for working with retailers’ product catalogs.
- Outbound service for processing data regarding deliveries from retailers to buyers.
- Tracking service for updating order statuses based on the information from carriers and warehouses.
- Webhook service for sending notifications to retailers that subscribed for order status updates.
- Return service for returns management, also used by the plugins of ecommerce systems. For example, if a retailer uses Magento, they can install the plugin provided by our returns management system vendor, enter their credentials, specify all the details, and get the returns feature running on their website.
- Retailer orders service for importing and displaying orders from retailers in the solution.
- External carrier service for displaying available carriers in the system.
Infrastructure Automation
The project environments include those for quality assurance, demos, releases, and white-label solutions. We set up the infrastructure deployment automation, CI/CD, and resources optimization, ensuring data security and GDPR compliance.
The infrastructure is automated through a TeamCity script. When launched, the script creates resources after the necessary parameters are filled in. The resources include 3 websites, 1 Azure Service Fabric cluster, Microsoft Azure SQL Database, Azure Cosmos DB, Azure Storage, and additional services like load balancers. Then the publish profile is generated and the environment is deployed.
Quality Assurance and Support
Iflexion assigned 5 QA engineers to the project to provide functional testing and set up testing automation. The full technology stack for automated tests included C#, .NET, Selenium WebDriver, NUnit, XML, JSON, Allure, AWS, Azure, TCP/IP, Microsoft SQL, REST, JavaScript, LINQ, NuGet, HTML, MSBuild, HTTP, GIT.
Our team also provides L2 and L3 support on an ongoing basis, with issues escalated to us from the customer’s in-house team. Our engineers take on support tasks weekly, providing improvements and bug fixing.