The multinational, Switzerland-based manufacturer of copy and printing devices charged Elinext with developing a sales order and offer system.
The client had an application for handling sales orders and offers. The application was clunky and bogged down the entire workflow. In fact, it was an Excel sheet coupled with Visual Basic scripts and linked to a database. What had started as a simple solution several years ago had later grown unusable.
That Excel sheet staggered us at first. It swelled with all sorts of entities, formulas, dependencies, and numbers. The database, in turn, was denormalized by an expensive third-party ERP tool used to organize the data.
The company tried to fix the system by making changes with Visual Basic — and failed. It was high time it switched to more advanced technology, so it asked for our help to rebuild the system.
Elinext assigned two separate teams to develop the frontend and backend for this project. Those teams have been following Scrum methodology, working closely with the client from the get-go. We chatted every day via message apps and got together by video link on Wednesdays. The client has also been submitting tickets for us in Jira.
We used Java alongside Spring Cloud to build the application. Through the project, the architecture developed from a monolith to microservices, which gradually replaced that heavy ERP tool. That sped up the application substantially.
The application users are our client’s staff, distributors, and sales reps. We have built a user role system where an admin can assign a user several roles and specify features available to them. Let’s take a look at those features.
Offers and Orders
Depending on their role, users can create and edit offers, managing details like customer and item data. Here is how this works: a salesperson creates an offer and sends it to their manager for approval. The manager can approve the offer and turn it into an unchangeable order or reject it and send it back for amends.
We enabled order and offer templates to streamline the workflow. Two languages can be used to create a document: German and French.
Profits and KPIs
Regional distributors and sales representatives can calculate their profits in the system. And supervisory users can see sales representatives’ performance based on the number of offers and orders processed per month.
We have also developed a microservice calculating the cost per page of printing. One controller does over 300 calculations, and users can export the output as a CSV file. Metrics like those help sales reps show the value of the product to the customer.
Another microservice imports error data from the client’s other source via API lists those errors and automatically solves those that are not critical. Building it became a challenge of its own as the client requested us to reverse-engineer Visual Basic code.
To do that, we had to sort out a few things with Visual Basic. We found numerous bugs and errors in the original application’s backend on the client’s side and convinced the client to let us handle them.
We have delivered the project on budget and time. Moreover, we have proven that custom development, however expensive it may seem, can be cheaper than using some third-party corporate tools.
The new application works as fast as it’s possible. Application users have new features helping them sell more and benefit more from the sales they make.
However, the work on the sales order and offer system are not over yet. As of this writing, we have more than ten new releases in development, and the client keeps coming up with new ideas for the product.