ADR-0008 — PIM: Ergonode¶
| Status | Accepted |
| Date | 2025 |
| Deciders | Flooris development team / Zwerfkei management |
Context¶
The Zwerfkei product catalogue contains a large number of products with rich attribute data, multiple variants, images and multilingual descriptions. Managing this data directly in the webshop back office would be impractical and error-prone. A dedicated Product Information Management (PIM) system is required.
Decision¶
Ergonode is adopted as the PIM platform for managing product catalogue data. Ergonode is used as a SaaS solution.
Rationale¶
- Ergonode is a modern, open-source-based PIM that provides structured product data management, including support for variants, attribute groups and multilingual content.
- Using a dedicated PIM decouples product content management from the webshop application, allowing catalogue managers to work independently of the development cycle.
- Ergonode provides an API that enables synchronisation of product data to the Zwerfkei Backend.
- The Ergonode SaaS offering reduces infrastructure and maintenance overhead compared to self-hosting.
Data Managed in Ergonode¶
| Data Type | Description |
|---|---|
| Categories | Hierarchical product categorisation tree. |
| Attribute Groups | Logical groupings of product attributes (e.g. "Dimensions", "Material"). |
| Attribute Types | Typed product properties (text, number, select, multi-select, boolean, image, etc.). |
| Attribute Options | Selectable values for select and multi-select attributes. |
| Products | Product records with SKU, title, descriptions and attribute values. |
| Product Variants | Variant-level data (SKU, attribute values specific to the variant). |
| Product Images | Original product and variant images, managed and stored in Ergonode. |
Integration Pattern¶
Ergonode PIM ──(API)──► Zwerfkei Backend (sync job) ──► MySQL Database
- A scheduled sync job in the Zwerfkei Backend polls the Ergonode API for updated products, categories and attributes.
- Changed records are upserted into the Zwerfkei database.
- Only the original image is stored in Ergonode. Image variants such as thumbnails and resized versions are generated by the CMS, not sourced directly from Ergonode.
- Images from Ergonode are not displayed directly on the website. The CMS is responsible for serving the correct image variant per context.
Data ownership
Ergonode is the master for all catalogue data. Changes to product data should always be made in Ergonode, not directly in the Zwerfkei database.
Image handling
Only original images live in Ergonode. Do not reference Ergonode image URLs directly in the frontend. Always use CMS-generated variants.
Consequences¶
- The Zwerfkei Backend must implement an Ergonode API client and a catalogue sync process.
- The sync process must handle incremental updates efficiently to avoid full re-imports on every run.
- Product data in the Zwerfkei database is treated as a read-optimised cache; Ergonode is always authoritative.
- Changes to the Ergonode data model (new attribute types, structural changes) may require updates to the sync logic.