Technische architectuur

Een uitbreidbare CPQ-module voor Odoo 19.

Een afzonderlijke Odoo.sh-module boven op Verkoop, Producten, Prijslijsten en de standaard offerteflow.

Modulaire architectuur

Odoo WebViews en acties
CPQ-moduleRegels en pricing
Odoo ORMModellen en security
PostgreSQLBedrijfsdata

Pythonmodellen verzorgen domeinlogica, XML definieert schermen, record rules beveiligen multi-companydata en QWeb genereert offertes. De publieke demo blijft technisch gescheiden.

Datamodel

ModelDoel
ouito.cpq.templateConfigurator per transportbandfamilie
ouito.cpq.questionTechnisch keuzeonderwerp
ouito.cpq.optionComponent, uitvoering of service
ouito.cpq.ruleVereist of sluit combinaties uit
ouito.cpq.configurationKlantgebonden configuratie
sale.order.lineGegenereerde offerteregel

Voorbeeld rule engine

def _validate_answers(self):
    selected = self.answer_ids.mapped("option_id")
    for rule in self.template_id.rule_ids.filtered("active"):
        if rule.trigger_option_id not in selected:
            continue
        target = rule.target_option_id in selected
        invalid = (rule.action == "require" and not target)
        invalid |= (rule.action == "exclude" and target)
        if invalid:
            raise ValidationError(rule.message)

Offerteregels genereren

self.env["sale.order.line"].create({
    "order_id": configuration.order_id.id,
    "product_id": option.product_id.id,
    "product_uom_qty": answer.quantity,
    "cpq_configuration_id": configuration.id,
})

Beveiliging en integratie

CPQ User

Maakt en valideert configuraties.

CPQ Manager

Beheert templates, opties en regels.

Multi-company

Record rules scheiden bedrijfsdata.

Audit trail

Chatter en activiteiten documenteren wijzigingen.

Doelomgeving: Odoo 19 Enterprise op Odoo.sh. Odoo Online ondersteunt geen eigen Pythonmodules.