Project summary: the customer is the owner of an international retail system selling goods and components. The main problem of the customer was the lack of deep integration between various components of the system, since in most cases they worked separately: different distributors in different countries had different ERP systems, which required a different approach from E-Commerce system. Also, the customer has PIM (Product Information Management) and CRM (Customer Relationship Management) systems.
JazzTeam specialists were given an important task – to create a separate component for the E-Commerce system that will connect it with other parts of the system, regardless of which ERP system was used by the distributor.
This component receives requests from E-Commerce system clients and transfers them to lower-level systems (ERP, CRM, and PIM), returns data from them, and also provides their scenario interaction with each other.
We developed a data exchange system based on Mule ESB platform, which consists of the following two layers:
- System layer is a layer of business logic, where all scripts for the processing of requests for each specific system (ERP, CRM, and PIM) are written.
- Process layer is a layer of data exchange between the client and routing of requests to the appropriate system-level application based on the country and brand code.
The complexity of this solution was in the fact that the system should work smoothly in all countries to which the company supplies its goods. Accordingly, our task was to integrate all existing systems:
- E-Commerce is a system responsible for customer data storage and processing.
- CRM (Customer Relationship Management) is a system responsible for the storage of data about customers.
- ERP (Enterprise Resource Planning) is a system responsible for the processing of orders in certain countries, as well as the storage of data on purchases, goods in stock.
- PIM (Product Information Management) is a system responsible for storing large amounts of information about goods.
For the end user the system looks like a website where the user should be able to:
- Study all the goods taking into account their hierarchy and classification, view goods images, get a detailed description of a particular product.
- Get information about goods in stock, as well as goods available at dealers.
See when out of stock items arrive.
- Get information about official dealers: contact information, location on the map, business hours, services provided.
- Buy goods and its components or accessories:
- select the shipping method;
- pay for the order online or arrange payment by installments;
- get a discount;
- get information about the service fee due to the dealer.
- Order certain services online:
- View orders, track the order status online, register a guarantee, see achievements.
Stack: Mule ESB, Apache Maven, REST API, RAML, SFTP, VirtualM, Java 8.
Infrastructure: Git, Anypoint Studio, Jira, Confluence, CloudHub, Slack, Microsoft Azure DevOps.
Test Automation libraries: MUnit + Mockito.
DB: DB2, MSSQL, CassandraDB.
- Various systems (ERP, CRM, and PIM) were integrated into a single information system;
- A unified access protocol was developed for E-Commerce system, which makes it possible to ignore peculiarities of distributors’ systems;
- The work was carried out within the interaction with several customer’s distributed teams, as well as with distributors operating in different countries of Europe and the USA;
- In the course of work on the integration solution we interacted with the developers of one specific well-known PIM system;
- Testing was carried out by the customer side, so we often interacted with the testing team during End2End testing;
- The customer had a separate requirement for developers: they should have had certificates confirming professional knowledge of Mule technology.
- The system was successfully developed, implemented and is currently used by the customer.
- The system was developed being simultaneously covered by MUnit tests.
- All stages of the project were completed successfully.
- A large package of accompanying documentation for the project was created.
- The customer’s team, which will continue to guide and develop the product, was trained.
Company’s achievements during the project:
- We proved our knowledge of Mule technology by obtaining the appropriate certificates.
- The team actively participated in the stage of integration requirements elaboration.
- The team lived through the entire development life cycle starting with the formation of requirements and system design and ending with the support and transfer of the project to the customer.
- The solution was fully documented by the team.
- The team got to know the customer during the visit to its office, where they worked together for a week (workshops, trainings).
- We always got in touch with the customer with healthy improvement initiatives related to the project: performed the review of CI/CD state on the project. conducted research on Canary release strategy vs. Blue/Green; made suggestions for improving access settings and implemented them; provided advice on Scrum for work process organization in Jira.
- The weekly preproduction release was organized by the team.
- We worked simultaneously with several related teams from different countries of Europe and the USA.
- We took part in CI/CD processes.
- At the first stage of the project the team organized and tested the solution by its own efforts.
- The team performed infrastructure configuration for the customer.
- We worked with ever-changing requirements.
- The team conducted a complete KT (knowledge transfer), including a detailed description of all processes and procedures during the transfer of the product for further development and support to the customer. The KT lasted more than 1 month and was conducted in the format of videoconferences, development of regulations and instructions, and their use to train new teams.