A client, managing a vast inventory of unique products, faced a significant challenge: expanding their sales channels to include Allegro, one of the largest online marketplaces in Poland. Their existing system, PlentyMarkets, efficiently handled their inventory and sales on other platforms, but it lacked direct integration with Allegro. This gap created a substantial obstacle. Given the sheer volume of products, manually listing each item on Allegro was not only impractical but also time-consuming and prone to errors. The client recognized that such manual efforts could lead to inconsistencies in listings, delays in updating product information, and potential revenue loss due to inefficiencies. Thus, they required a robust, automated solution that could seamlessly bridge the gap between PlentyMarkets and Allegro, ensuring accurate, efficient, and timely listings of their products on the new marketplace. This solution needed to synchronize inventory, manage orders, and maintain consistency across platforms to support the client's expansion goals effectively.
Objective
The primary goal of the project was to develop a comprehensive two-way integration with Baselinker, a versatile service designed to streamline e-commerce operations. Baselinker facilitates the listing and management of auctions on Allegro, alongside controlling stock levels and other critical sales data across multiple platforms. The integration aimed to provide the client with a seamless and automated process for listing and managing their products on Allegro, thereby significantly reducing the need for manual intervention.
The project aimed to empower the client with a robust and efficient system that supports their expansion into the Allegro marketplace, enhancing their overall sales strategy and operational effectiveness.
Solution
The solution involved creating several Azure functions to synchronize data between Baselinker and PlentyMarkets. The main functions developed were:
Order Synchronization from Baselinker to PlentyMarkets
- Checking for New Orders: The function continuously checks for new orders from Allegro in Baselinker.
- Synchronizing Orders: When new orders are detected, they are automatically synchronized with PlentyMarkets, updating the stock levels accordingly.
- Updating Order Status: After synchronization, orders are moved to the status "Synchronized" in Baselinker.
Product Import from PlentyMarkets to Baselinker
- Product Filtering: The function searches for specific products in PlentyMarkets based on filters provided by the client.
- Synchronizing Products: The filtered products are automatically imported into Baselinker.
- Creating Auctions: While the actual auction creation on Allegro is done manually, all the necessary data for the products is prepared by the function. This allows the user to simply select all the new products in Baselinker and list them on Allegro with a few clicks.
Product Deletion in Baselinker Based on PlentyMarkets
- Checking for Removed Products: The function checks if any products have been sold out on other marketplaces or have been withdrawn for other reasons in PlentyMarkets.
- Synchronizing Deletions: If such products are found, they are synchronized with Baselinker.
- Stopping Auctions: This synchronization causes the associated auctions in Baselinker to be halted.
Stock Updating in Baselinker Based on PlentyMarkets
- Stock Synchronization: The function ensures that the stock levels for products with stock greater than 1 are synchronized from PlentyMarkets to Baselinker.
- Updating Auctions: For example, if the stock of a product decreases from two to one, the function will synchronize this change, causing the associated auction in Baselinker to be updated accordingly.
Technologies
To achieve the seamless integration and automation required for the project, a range of advanced technologies were employed. These technologies were carefully selected to ensure robust performance, scalability, and efficient data handling. The key technologies utilized in the project included:
- Azure Functions: These functions facilitated the execution of tasks at predefined, configurable intervals. They played a crucial role in automating various processes within the integration.
- C#: The project was implemented using the C# programming language. C# provided a robust and versatile framework for developing the necessary logic and functionalities.
- REST API: The communication between the system and the Baselinker and PlentyMarkets APIs was established using REST API. This allowed for seamless data exchange and interaction between the different platforms.
- Polly: Polly, in addition to its retry and circuit breaker policies, was employed to handle errors encountered during data retrieval and updating via REST API requests. It ensured robust error handling and resilience in the face of network or API failures.
Implementation
The execution of the integration project followed a structured and meticulous approach to guarantee smooth synchronization and automation between Baselinker and PlentyMarkets. The process encompassed several critical stages:
- Development of Azure Functions: Azure Functions were developed to automate the synchronization of data between Baselinker and PlentyMarkets. These functions were meticulously designed to perform specific tasks such as order synchronization, product import, deletion, and stock updating.
- Testing: Thorough testing was conducted in a development environment to ensure the reliability and effectiveness of the synchronization process. Various scenarios were simulated to validate the behavior of the system under different conditions.
- Deployment: Once the Azure Functions were tested and deemed ready for production, they were deployed to the production environment. Deployment was carefully managed to minimize disruption to ongoing operations.
- Client Training: The client's team received comprehensive training on how to use the new system. This training included instructions on how to monitor the synchronization process, troubleshoot common issues, and take advantage of the automation features to streamline their sales operations on Allegro.
Results
The implementation of the new solution yielded significant benefits for the client:
- Process Automation: The automation of tasks related to listing and managing auctions on Allegro drastically reduced the need for manual intervention. This allowed the client's team to reallocate their time and resources towards more strategic activities, such as marketing, customer engagement, and business development. By automating repetitive tasks, the client could ensure that product listings and updates were handled promptly and accurately, without the risk of human error.
- Increased Efficiency: The automated synchronization process streamlined the client's sales management, enabling quicker and more effective handling of orders and inventory. This not only boosted productivity but also allowed the client to scale their operations without a proportional increase in workload. The ability to manage a larger volume of sales efficiently led to higher sales volumes and better overall performance in the marketplace.
- Error Reduction: Automation significantly minimized the risk of errors associated with manual data entry and updates. By ensuring that product information, inventory levels, and sales data were consistently and accurately synchronized across PlentyMarkets and Allegro, the client could rely on more precise and reliable data. This accuracy was crucial for maintaining customer satisfaction and avoiding issues related to stock discrepancies or incorrect product information.
Conclusion and Future Steps
The successful integration of sales between PlentyMarkets and Allegro through Baselinker has delivered substantial benefits for the client, transforming their operational efficiency and sales management. However, the journey doesn't end here. Moving forward, there are several exciting opportunities for further enhancement:
- Adding Analytical Features: Enhancing the system with analytical capabilities can provide valuable insights into sales performance and customer behavior, enabling the client to make more informed business decisions.
- Integrating with Other Sales Platforms: Expanding the integration to include other sales platforms can further streamline the client's sales operations and reach a wider audience of potential customers.
By continuing to innovate and evolve the system, the client can maintain a competitive edge and further optimize their sales processes. Embracing these enhancements will not only support the client's growth objectives but also ensure they remain agile and responsive in the ever-changing e-commerce environment. The foundation laid by this successful integration provides a robust platform for future developments, enabling the client to achieve sustained success in their digital commerce endeavors.