Odoo ERP Integration (V2)

The Odoo ERP Integration page is used to setup the integration between CUSTOMTOOLS and Odoo ERP Integration. These options appear in the CUSTOMTOOLS Profile Options only for users that have a valid license for CUSTOMTOOLS Odoo ERP Integration.

Info NOTE: The Odoo ERP Integration is a CUSTOMTOOLS product that is purchased separately.
Info NOTE: The Odoo ERP Integration also support SOLIDWORKS PDM context and can be used in Export Task types provided by CT Task Add-In for SOLIDWORKS PDM.
Info NOTE: This version of Odoo ERP Integration has been introduced from CUSTOMTOOLS 2025 SP1 onwards. If you have purchased and configured the integration using older version of CUSTOMTOOLS, please look for Odoo ERP Itegration LEGACY pages.

CUSTOMTOOLS' Odoo ERP Integration is based on Odoo's External API, using JSON-RPC. When configuring the integration, CUSTOMTOOLS connects to the Odoo instance and reads and caches all the "interesting" tables and fields. Thus, it's important that the CUSTOMTOOLS' cache is updated if the Odoo is changed or upgraded; see Connect & Read.

Integration log file is available at each client computer's local path %TEMP%\OdooV2.log. When running the integration as PDM Task, the log is found from the PDM Task Details.
Full request/response logging can be enabled per-session from Advanced Connection Options for local user only, but note that it exposes also user credentials in plain text.


Odoo ERP Integration Profile Settings

Endpoint Your Odoo instance address, for example https://your-odoo-instance.odoo.com/
Database Odoo database name, sometimes seen from the endpoint address. E.g. Database of Endpoint https://your-odoo-instance.odoo.com/ would be your-odoo-instance.
Connect & Read The Odoo ERP Integration page has two different "states": Connected and not connected. Connected state can be achieved with clicking Connect & Read if the endpoint, database and user credentials are valid. User Credentials are conviently prompted for the current user, but in general they are stored per CUSTOMTOOLS user at User Options.

When connecting for the first time, you can let CUSTOMTOOLS to configure Demo Integration as prompted. However, you should only configure it against EMPTY CUSTOMTOOLS Profile as you might otherwise lose your existing Profile configuration.

When connected, a status text will update to show the version of the connected endpoint, as well as the cache timestamp of the oldest cached table.
Connected state is also required to add new Tables of Interest.

Used Connect & Read to update cached tables.
Advanced Define specific connection security parameters that might require tweaking in on-premises environments.
Also contains options to Use OAuth in Odoo, and option to Log API Requests and Responses.
Info NOTE: When using OAuth Login, Odoo User Id must be obtained from Odoo and the API Key must be configured for the user. Then, the user's password for the integration must be given in format <user_id>:<api_key> (e.g. 11:a1b2c3d4e5f6g7h8i9).

Odoo Lookup Lists and Search Groups

Configuration of both Odoo Lookup Lists and Odoo Search Groups is very similar.

Info With the Odoo Lookup Lists, you can create Lookup Lists which content is retrieved from the Odoo ERP. You can use the Lookup Lists in your CUSTOMTOOLS Properties to assign Odoo ERP provided values, e.g., allowed Units, to your designs.
Info Search Groups allow you to pull a set of Odoo Fields as a set of Properties; most commonly, search existing Product/Variant from Odoo and link your design as it.

Name Name of the Lookup List/Search Group owned by this integration. Automatically filled.
Source Determines the Odoo ERP "object table" to link with.
Field Field of the Source. In case the field type is Many2One, One2Many, or Many2Many, and the "object table" the selected field references to is cached to memory (see Advanced), a secondary mapping control is added below. The secondary control allows mapping to a field of the referenced object table.
Separator If the field type is One2Many or Many2Many, the referenced table can yield multiple results. Separator field allows defining separator for the multiple values; comma followed with one space (', ') is usually a good value.
Binding (Lookup List Only) Determines if the selected Field is used as Lookup List's value or one of its Keys.
Menu: Save Changes When creating new or editing existing one, you can save the changes so the Lookup List/Search Group becomes immediately available and updated.
Saving is not neccessary. All changes are auto-saved when Options is exited with Ok; as long as the configuration is complete.
This option is grayed out and changes are lost when Options is exited, if the configuration is incomplete.
Menu: Discard Changes When editing existing one, you can discard or the modification you have done and return the list to its original state.
Menu: Unlock for Editing When Lookup List/Search Group has been successfully created, it's "locked" from accidental changes and needs to be unlocked for editing.
Menu: Discard When creating new Lookup List/Search Group, you can cancel the creation by discarding it.
Menu: Delete Delete the Lookup List/Search Group.

Advanced

The Advanced tab holds all interesting Odoo tables and their technical representations. Do NOT make any changes here unless you know what you are doing. It's is possible to add new tables using the plus (+) button, if the Options page is in Connected state. Tables can be used in Lookup List, Search Group and even Export Field Mapping, and some are required for various internal operations.

The integration expects following tables to be in the list with valid checkmark.

Companies (res.company) Odoo Company is provided as context for each API query.
Languages (res.lang) Language is provided as context for each API query. Affects translatable text fields.
Products (product.template) Product listing in Odoo.
Variants (product.product) Variant listing in Odoo. Important also when Variants are not enabled.
BOMs (mrp.bom) Bill of Materials in Odoo.
BOM Lines (mrp.bom.line) Product/Variant Lines of Bill of Materials in Odoo.
Attachments (ir.attachment) Controls attachments of various objects in Odoo.


The Property Grid on right allows closer examination of selected table:
Export Safe Guards
Allow Updates to Odoo from Export Define if the objects of this table should receive any create/update/delete operations from Export. This should be true for Products, Variants, BOMs, BOM Lines and Attachments.
-1 is unlimited.
Max Contextual Export Mapping Count How many Odoo Objects can be mapped for an item under some parent item. Should be 1 for BOM Lines, 0 for Products, Variants, BOMs and Attachments, and -1 for everything else.
-1 is unlimited.
Max Export Mapping Count How many Odoo Objects can be mapped for an item directly. Should be 1 for Products, Variants and BOMs, 0 for BOM Lines, and -1 (unlimited) for everything else.
-1 is unlimited.
Fields Cached information of each Odoo field.
Misc The unique table Name and freely definable Description for it.
Status Cache Timestamp, Version of Odoo at the time of caching, Status of the table and Table Load Error message in case Status is Error.


Send Feedback


Related Topics

View and maintain the Search Groups using the Database Search Groups options
View and maintain lookup lists using the Lookup Lists options
Maintain your CUSTOMTOOLS Properties using the Properties options
Associate a Property the Database Search Group in the Property's Database Options
View and maintain the Search Groups using the Database Search Groups options