Polaris - a Swiss brand of household appliances and kitchenware, selling products through marketplaces and its own online store.
At the start of the project, the client was manually interacting with all marketplaces. Product data for each marketplace was different, and managers had to spend a lot of time filling in product listings by extracting information from various sources. The goal was to set up a centralized system for managing product data and integrate it with the client's ERP and marketplaces.
Pimcore was proposed as the system for managing product data. It would automate the manual work of managers, provide centralized data validation, and automate integration with marketplaces. To create a new data model, an analysis of the data storage structure for different product groups in the client's ERP was conducted. This data was compared with the requirements of the marketplaces and the client's business units involved in interactions with them. Data exchange between systems was organized through an ESB (service bus).
During the analysis phase, the requirements of the client's business units were identified, the business was analyzed, the existing data storage structure for products was studied, differences in attribute composition for various product groups were examined, and the technical documentation of connected marketplaces was reviewed. Using this information, an information model was designed, and basic classes were configured in Pimcore.
Requirements for each attribute were compared, and a product card in Pimcore was developed so that the client's content manager could enter information without considering the varying requirements of connected marketplaces.
All mapping was configured at the Pimcore reference level, allowing adjustments to be made if marketplace requirements change.
As the data service bus, WSO2 ESB was recommended, along with the RabbitMQ message broker and the ELK logging system. In the future, these tools would enable the client to configure and expand integrations without coding, using the graphical interface of the software in use.
On one side, a set of microservices was developed to detect the creation or modification of product cards in Pimcore, extract the necessary data, add price information from ERP, and send this data to RabbitMQ, where a separate queue was created for each marketplace. Queue usage prevented overload when sending product information in bulk and prevented data loss in case the recipient temporarily went offline.
On the other side, microservices were implemented to transmit data to marketplaces with subsequent monitoring of their processing status and the return of unique marketplace IDs to Pimcore. Logs of microservice operations were transmitted to ELK for visualization as diagrams.