Automating Order Management for Wine and Spirits Retailers
Description
A provider of e-commerce software solutions turned to Altoros to streamline the distribution of alcoholic beverages between retail and wholesale companies.
Brief results of the collaboration:
- The customer created a multitenant system with an admin panel that allows for implementing customizations (add buttons, create database instances, etc.) in just a few clicks.
- With the domain-driven design architecture, it became easy to tailor the system to the existing workflows of end users.
- Thanks to the enabled continuous integration/delivery pipeline and code reuse, the company reduced feature release cycle by 3x.
The customer
Based in the USA, the company provides a suite of apps for the wine and spirits industry. Sales managers and representatives in 43 states utilize the customer’s order placement, delivery tracking, communication, and other systems. The organization serves the market for 20+ years, and its software products help to process $15 billion in wine/spirits sales annually.
The need
The US legislation prohibits producers of alcoholic beverages to sell their goods to retailers (stores, bars, cafes, restaurants, etc.) directly. So, wholesalers act as intermediaries between manufacturers and retailers. To distribute alcoholic products, however, wholesalers mostly make phone calls, send catalogs by e-mails, and hold in-person meetings. Understanding how time-consuming and prone to human error these manual processes were, the customer recognized the opportunity of developing an order management app. The company turned to Altoros to build a system — from scratch — that would enable retailers to place and track orders, as well as facilitate reporting.
The challenges
Under the project, the team at Altoros had to address the following issues:
- Each retailer might want to install the app on its own server(s). As different companies might have different workflows and technologies, it was important to ensure that the app was customizable to smoothly integrate into existing ecosystems.
- At the same time, system administrators without programming skills had to be able to implement custom components and layouts requested by retailers.
- Since the app was to serve multiple retailers, it was crucial to enable multitenancy and display only relevant product offers to them.
The solution
Stage 1. After analyzing the customer’s requirements, engineers at Altoros built the app’s architecture on the principles of domain-driven design (DDD). This model allowed to easily tailor the system to industry-specific processes and workflows within each retailer company. It also promoted code reuse, contributing to faster feature delivery to multiple retailers. Then, the developers created a highly configurable admin panel to ensure centralized management of all the app’s versions installed on retailers’ servers. Using this panel, admins could manage users, roles, and access permissions. It was also possible to implement any customization requested by a retailer (manage page visibility, change colour palette or a layout) right from the panel, no programming skills needed. In the same fashion, an administrator was able to create a database instance in just a few clicks on demand.
Stage 2. Team at Altoros built an API enabling the the system to read and write data (products, orders, etc.) from/to the customer’s database and display it to retailers. The engineers also delivered a reporting module, using which retailers could view the orders placed over a certain period, paid and unpaid orders, etc.
Stage 3. To display relevant content in a multitenant environment, the developers configured the system to match unique product IDs with a particular retailer.
Stage 4. To enforce security, team at Altoros implemented role-based access permissions.
Stage 5. By building a continuous integration/delivery (CI/CD) pipeline with Bitbucket, the engineers automated app testing and deployment, reducing a feature release cycle by 3x.
43
states covered
$15B
processed in annual sales
3x
reduced feature release time
The outcome
Partnering with Altoros, the customer developed a multitenant system that automates order placement for retailers in the wine and spirits industry. Thanks to the chosen DDD architecture, the delivered system can be easily tailored to the end-user workflows and integrated into existing ecosystems. At the same time, the delivered admin panel makes it possible to implement any customizations requested by retailers in just a few clicks. The CI/CD pipeline coupled with code reuse helped the company to reduce a feature release cycle by 3x.
Programming language
TypeScript
Frameworks and tools
Angular, Node.js, Sequelize, Fastify, Swagger, OpenAPI, Bitbucket Pipelines, Yarn workspaces, Sketch, WebStorm, Google Fonts
Database
Microsoft SQL Server