Hamari
Modere
powered byModere

Implementing PimCore for a Global Health & Beauty Brand

Modere

Topics Covered

Workshops
Devops
Azure
Product Data Management
Complex Pricing Management
Inventory Management
Data Goverance
PimCore BigCommerce
Bespoke Integrations

The challenge

Modere sells more than 20,000 SKU’s and operates 26 warehouses in 12 different countries across the world. They partnered with Hamari to implement a PIM and MDM solution using Pimcore which would enable them to replatform to BigCommerce. The PIM solution would initially store some product data but would also be responsible for setting prices and calculating inventory availability globally.

Modere

THE BRAND

Modere is an award-winning global brand offering an extensive portfolio of clean, science-backed lifestyle products across beauty, personal care, nutrition, and household essentials. Their formulas avoid thousands of controversial chemicals, providing customers with safe, effective clean label options. Modere's holistic philosophy extends beyond ingredients to sustainable operations, company culture, community activism, and environmental advocacy. Serving over 3 million customers worldwide, Modere has received accolades for products like CellProof Clean Beauty and holds numerous patents and scientific validations.

Infrastructure / DevOps Setup

Modere wanted to ensure that Pimcore was run on Azure. In order to ensure scalability, reliability, and efficient management, we deployed Pimcore Enterprise on Docker containers orchestrated by Azure Kubernetes Service (AKS). We then developed a Terraform Infrastructure as Code (IaC) script which enabled us to set a consistent and automated provisioning of the infrastructure.

Azure Pipelines streamlined the continuous integration and deployment (CI-CD) process, ensuring seamless updates and reduced downtime. Elasticsearch and Redis enhanced search capabilities and caching performance, respectively. Monitoring and alerting were set up using Datadog and PagerDuty, providing real-time insights into Pimcore's health and enabling proactive issue resolution. Ingress controllers managed external access to the Kubernetes services.

Azure Database for MySQL served as the primary data store, while Azure Cache for Redis boosted caching performance. The Azure Container Registry securely stored and managed our Docker images Azure Load Balancer ensured high availability and distributed traffic across multiple nodes, while Azure Blob Storage provided scalable and durable storage for static assets. Azure Key Vault safeguarded sensitive credentials and configurations.

Finally, Helm facilitated streamlined upgrades and consistent deployments across multiple environments, ensuring a seamless transition to newer Pimcore versions. By leveraging these modern Azure technologies and DevOps best practices, we successfully deployed Pimcore Enterprise on a robust, scalable, and highly available architecture, enabling efficient management and seamless operations once the solution had gone live.

Product Data

We developed the PIM system to cater to Modere's diverse product taxonomy across their business globally. The system handled various product types, including standard products, products with variants, bundles, and bundled variants (including bundles containing other products or other bundles).

Product data management included content previously not held in the Contentstack content management system, with a long-term plan to migrate more data from Contentstack to Pimcore. The PIM system facilitated seamless product lifecycle management, including creation, production, and archiving stages.

During the creation phase, products are managed solely in Pimcore without syncing to BigCommerce or Contentstack. Once in production, the system syncs product data across BigCommerce, Contentstack, and inventory systems. For archiving, products were disabled across all the integrated platforms.

Additionally, we implemented a Pimcore-Contentstack integration to streamline the data management between the two systems. The PIM system ensured efficient handling of complex product configurations, some content management, and lifecycle processes, providing a central solution for Modere's diverse product portfolio.

Modere
Modere homepage

Complex Pricing

To meet the business requirements, the pricing system offers flexible configuration options with strong validations in place. The pricing can be set based on either currency or country, determined by the warehouse(s) configured for each product. For country-based pricing, prices can be defined per currency for a given country. Robust pricing validation mechanisms ensure the presence of correct country and currency-specific pricing for each product. Beyond pricing, the system supports additional fields such as business volumes, taxes, and other relevant data. These fields contribute to the dynamic calculation of pricing based on the shop from which the purchase is being made.

In the case of product bundles or nested bundles (bundles containing other bundles), the system dynamically calculates the overall pricing. This calculation takes into account the individual prices and weightages of the constituent products or bundles within the bundle. The pricing system's versatility allows for granular control over pricing strategies, catering to different business needs. It accommodates country and currency-specific pricing, validates pricing data integrity, incorporates additional pricing factors, and seamlessly handles complex bundled product configurations through dynamic pricing calculations.

Inventory Availability

In order to achieve the source of truth for their inventory availability number and ERP we developed multiple bespoke integrations between Pimcore, InforLN which is their ERP  and their commission management system Exigo.  Our integration pulled inventory data for Infor and and other sales data and subscription data from Exigo and pushed updated it in real time into PIMCore. We then developed a Pimcore service which would perform the inventory calculation and update BigCommerce in real time.  In order to achieve this, we implemented a queueing mechanism and thread-safe inventory update which updates (and syncs) the inventory. This software architecture enables the system to serve 100s of inventory updates within seconds without losing or overiding  the data.

Modere products

Data Governance

Ensuring data integrity and accuracy was a priority for this version of the PIM solution. We implemented robust data governance measures to maintain a well-structured and controlled environment for managing product information throughout its lifecycle. We created custom views and layouts tailored to each product data type enabling the country managers to easily manage their individual SKU’s. We also incorporated roles and permissions framework which granted appropriate access privileges, which would maintain data security and integrity going forward.

We developed extensive validation mechanisms, covering physical and virtual warehouses, shops, product statuses, inventory levels, and pricing information. These validations ensure data consistency, completeness and accuracy across all associated systems and processes. A particular emphasis was placed on pricing validations, with granular checks for country and currency-specific pricing data. This approach guaranteed accurate and consistent pricing strategies, crucial for seamless integration with external systems. Beyond validations, our data governance practices included data quality rules, access controls, auditing mechanisms, and defined processes for data entry, modification, and maintenance. These measures collectively safeguarded the reliability and trustworthiness of product, pricing and inventory data.

Pimcore / BigCommerce Connector

Atomicity, Consistency, Isolation, and Durability. We developed a number of bespoke sync mechanisms to sync the data from pimcore to big commerce The architecture is push style. Push is always triggers from the pimcore Different Sync Use cases

  • Data Wide Sync - Whole data which is either not synced or got updated after sync, gets synced
  • Event based sync - when product gets updated it immediately syncs
  • Manual Sync - added a sync button in Pimcore admin UI to manually sync a product to big commerce
  • API for Inventory Sync - Very quick and lightweight inventory sync API is developed to cater loads of parallel inventory update requests

The connector makes use of AKS and its scalability services to parallelly process the sync request for products. Each product sync adheres to ACID(Atomicity, Consistency, Isolation, and Durability). Not just at product level but overall system level as a product update has a wider impact as it can be part of bundles or nested bundles. Sync also gracefully tackles product type changes. For e.g. a Product/Bundle variant, gets out of bundle and becomes simple product or vice-versa.

To ensure seamless data synchronization between Pimcore and BigCommerce, we developed various custom sync mechanisms tailored to different use cases. The architecture followed a push-style approach, with sync processes triggered from Pimcore. We implemented a comprehensive data-wide sync to handle the initial synchronization or resynchronization of the entire product catalog. An event-based sync mechanism immediately propagates updates to BigCommerce whenever a product is modified in Pimcore.

For manual intervention, we integrated a sync button into the Pimcore admin UI, allowing administrators to trigger on-demand synchronization of specific products to BigCommerce.To cater to high volumes of inventory updates, we developed a lightweight and high-performance inventory sync API, ensuring efficient and real-time inventory management across platforms.

Leveraging Azure Kubernetes Service (AKS) and its scalability features, the connector can process sync requests for multiple products in parallel, optimizing performance and throughput. Adhering to ACID (Atomicity, Consistency, Isolation, Durability) principles, each product sync operation maintains data integrity and consistency, considering the impact on related entities like bundles and nested bundles. The sync mechanisms gracefully handle product type changes, such as products moving in or out of bundles, ensuring seamless transitions.

Multiple BigCommerce  Instances including multi storefront functionality

We developed a flexible architecture to support the Product Information Management (PIM) system so that it can independently target multiple BigCommerce instances and storefronts. Products or bundles can now be configured across multiple physical and virtual warehouses, each containing various shops. The system intelligently synchronizes product data to the appropriate BigCommerce storefronts based on this configuration. Importantly, it maintains a robust link mapping between each product and the corresponding BigCommerce instances/storefronts. This independent tracking mechanism ensures seamless updates to products across all linked storefronts, providing a centralized and efficient management experience.

Modere

in their own words

Hamari ensured they delivered what they promised on time. They were incredibly helpful throughout their project. They acted as a trusted partner that we could rely on. We have no hesitation in recommending the Hamari team to others.
Technical Director, Modere

Result

Hamari delivered the Pimcore solution which enables Modere to centrally manage over 4,000 SKUs across 26 global warehouses allowing them to replatform Modere to a headless BigCommerce site. Pimcore provided the complex pricing capabilities, dynamic inventory availability calculations as well as a robust data governance framework. Our bespoke BigCommerce connector allows the syncing of product, pricing, and inventory data while supporting multiple BigCommerce instances and storefronts.