Wood is a French pool-equipment supplier. Their Odoo 11 platform runs the catalogue and the order pipeline — and at its heart, a metadata-driven product configurator that lets customers spec their pool through a dynamic questionnaire whose entire shape is rows in the database.
The configurator is the interesting part. `product.abstract` is the top-level template; `config.block`, `config.fieldset`, `config.question` and `config.question.value` describe the form's shape; `config.condition.*` rows hold the visibility and validation rules as strings, evaluated at runtime; `config.controller` rows wire questions together; `config.global.value` rows hold form-level computed values. `product.abstract.extract()` serialises the whole tree into JSON; a jQuery widget reconstructs the form on the frontend; `sale.order.create_from_vals()` reads it back.
The arrangement gives Wood a configurator they can grow without us — new questions, new conditions, new computed values, all admin-side. It also concentrates business logic in `eval()`-evaluated strings, which is the part that strains as the form expands. We've documented an eight-phase plan in `docs/configurator.md` to move from DB-metadata-driven to code-driven configuration; the plan is there for when the work is ready.
We've been on the platform since 2021. The cadence is light — a handful of commits a year, mostly configurator extensions, occasional invoicing and stock module work, the Dropbox backup integration. Odoo 11 is well past mainstream support; Wood's choice to stay on it is deliberate, and our job is to keep the platform stable on a version the rest of the world has moved past.