This module implements a component system and is a base block for the Connector Framework. It can be used without using the full Connector though.
Documentation:
You may also want to check the Introduction to Odoo Components by @guewen.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Adds a technical framework that lets developers register and use reusable 'components' instead of only Odoo models. It provides the base building blocks used by connector-style modules.
This module is a technical foundation rather than a business feature. It introduces a way to organise code into reusable pieces called components, which can be looked up and used at runtime instead of relying only on standard Odoo models.
- It adds an abstract model
collection.basethat other modules can inherit from to define a 'collection' (for example a backend). On such a collection, awork_onmethod opens a working session for a given model. - It adds a
component.buildermodel that, each time Odoo builds its registry, scans installed modules and registers all declared components in a global registry. - It provides a base component named
base, implicitly inherited by every component. - Components can be filtered by collection, by the model they apply on, and by a 'usage' label, and can be retrieved one by one or as a list.
- Clear errors are raised when no component or several components match a request, and when the registry is not ready yet.
It does not add menus, screens, reports or business rules visible to end users. It touches only the technical models collection.base and component.builder, and depends on the Python library cachetools for caching component lookups.
Depends on
Required by other modules
Models and fields (3)
- base · new model
- collection.base · new model
- component.builder · new model
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 8 confirmed, 1 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/connector.
terminal Installation and usage
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0As a developer, you have access to a component system. You can find the documentation in the code or on
In a nutshell, you can create components:
from odoo.addons.component.core import Component
class MagentoPartnerAdapter(Component): _name = 'magento.partner.adapter' _inherit = 'magento.adapter'
_usage = 'backend.adapter' _collection = 'magento.backend' _apply_on = ['res.partner']
And later, find the component you need at runtime (dynamic dispatch at component level):
def run(self, external_id): backend_adapter = self.component(usage='backend.adapter') external_data = backend_adapter.read(external_id)
In order for tests using components to work, you will need to use the base class provided by odoo.addons.component.tests.common:
- TransactionComponentCase
There are also some specific base classes for testing the component registry, using the ComponentRegistryCase as a base class. See the docstrings in tests/common.py.
No verified information in OCA: Installation, Configuration.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.