Certified SOLIDWORKS® Solution Partner|Built for SOLIDWORKS and SOLIDWORKS PDM Professional|Free Community Edition, no key needed

/
/
SOLIDWORKS to Odoo integration: how to get your BOM into the ERP without re-typing it

SOLIDWORKS to Odoo integration: how to get your BOM into the ERP without re-typing it

Four ways to move SOLIDWORKS parts and BOMs into Odoo, what each one costs you, and how PDMPublisher ERP Sync does it with an API key, field mappings and a reviewed diff.
Odoo logo

Engineering finishes an assembly in SOLIDWORKS. Someone then opens Odoo and types the parts and the bill of materials in by hand, or exports a spreadsheet and massages it into Odoo’s import template. Both work, both take an afternoon, and both go wrong on the day the part number changes. This post looks at the ways to connect SOLIDWORKS to Odoo, what each one asks of you, and how ERP Sync in PDMPublisher handles it.

PDMPublisher ERP Sync window in SOLIDWORKS showing an indented assembly BOM with thumbnails, item names, configurations and quantities, with the connector selector and Pull and Push buttons
ERP Sync reads the open assembly as an indented BOM. Tick the rows, pick the connector, push.

What a SOLIDWORKS to Odoo integration has to move

Odoo needs three things from CAD, and they arrive in this order.

  • Products. One Odoo product per part and sub-assembly, identified by a stable Internal Reference. Without that key, every later sync creates duplicates.
  • Product data. Name, description, weight, sales and purchase flags, a barcode, maybe a few custom fields. In SOLIDWORKS these are custom properties; in Odoo they’re fields on product.product.
  • The manufacturing BOM. Which components go into which assembly, and how many. Odoo stores this as a BoM set to Manufacture this product with one line per component.

Four ways to do it

ApproachWhat it takesWhere it hurts
Type it inNothing to set up.Slow, error-prone, and nobody re-does it when the design changes.
Export a BOM to Excel, import into OdooA SOLIDWORKS BOM table, some column renaming, Odoo’s import wizard.The spreadsheet needs fixing every time; BOM structure imports are fiddly; no way to see what changed before it lands.
Custom script against Odoo’s APIA developer, the Odoo JSON-2 API, error handling, a place to run it.Works until the developer leaves. Usually no preview, no pull-back, no multi-company handling.
PDMPublisher ERP Sync with the Odoo connectorAn Odoo API key, an item code, a few property mappings.Built for exactly this: reviewed diff before every write, re-check before commit, pull values back into SOLIDWORKS. Odoo 19+ or Odoo Online.

How ERP Sync talks to Odoo

Two minutes of the connector doing exactly this.

The free Odoo connector that ships with PDMPublisher for SOLIDWORKS.

ERP Sync lives inside SOLIDWORKS. It reads the open assembly as an indented BOM, with thumbnails, configurations and quantities, and shows it in a grid you can filter, group and trim before anything leaves the machine. At the bottom of the window you pick a connector; Odoo is one of the official ones, next to ERPNext and Microsoft Dynamics 365 Business Central.

The Odoo connector authenticates with an API key created for a dedicated integration user. No username or password is sent, and the key is stored encrypted for the Windows user. It talks to Odoo’s JSON-2 external API, so it needs Odoo 19 or Odoo Online.

Matching is done on one value: the Item code column you choose in SOLIDWORKS (a PartNumber property, or the file name) against Odoo’s Internal Reference. Get that right and every later push updates the same products instead of creating new ones.

PDMPublisher ERP connector settings for Odoo: Server URL, API key, Database, Timeout, Item code column, Skip empty values, Property mappings and upload options
The whole Odoo setup fits on one settings page. Test connection checks the key and loads the writable fields without creating anything.

Mapping properties without surprises

Property mappings are where most integrations rot: a field gets renamed, a label is translated, a boolean arrives as the word “yes”. ERP Sync asks Odoo which product fields the integration user can write (Load ERP fields) and lets you map a SOLIDWORKS property to each one: Description to namea weight property to weight, sales text to description_sale, your own x_ custom fields.

Two rules keep it clean. Map each Odoo field once, using the stored API name rather than the label. And leave Skip empty values on, so a blank property in SOLIDWORKS never erases something a buyer typed into Odoo.

Review, then commit

Nothing is written when you select Push. You get a Review ERP changes window with every product, field and BOM line marked Added, Changed or Deleted. On a first push of a small assembly that’s a short list of additions; on a re-push after a design change it’s exactly the handful of quantities that moved.

When you select Commit changes, PDMPublisher re-reads Odoo first. If someone edited a product between your preview and your commit, the commit stops and you preview again. That one check is the difference between an integration people trust and one they switch off.

Review ERP changes window in PDMPublisher listing proposed product additions to Odoo before commit
Every write is a reviewed diff. Cancel writes nothing.

The BOM, and the cases the connector refuses

With BOM ticked in the push operations, ERP Sync creates or updates the Odoo manufacturing BOM for each checked assembly: component additions, removals and quantity changes, with existing line IDs and the BOM’s base quantity kept when only a quantity moves. Cut-list rows for weldments and sheet metal can go in as separate lines.

It also refuses the cases that would silently corrupt a BOM: several matching BOMs, duplicate lines, a cycle, unit mismatches, operations and by-products on the target, variant-specific lines, writes to multi-variant products. You tidy those in Odoo first, which is the right order.

Pulling data back

Integrations are rarely one-way. A buyer fixes a description in Odoo; engineering wants it on the drawing. Pull reads the matching Odoo products, reverses the mappings and shows the proposed SOLIDWORKS property changes in a review before applying them. It never touches the assembly structure, and with Skip empty values on, an empty Odoo field can’t blank a SOLIDWORKS property.

A sensible rollout

  1. Create the Odoo API key for a dedicated integration user with only the rights it needs, and point the connector at a test database or test company.
  2. Pick an item code that never changes. If your files are named by part number, the file name without extension is a good choice.
  3. Map three or four fields, no more. Push with Create items + properties only, and check the products in Odoo Inventory.
  4. Add BOM and push again. Open Inventory > Bills of Materials and compare with the SOLIDWORKS tree.
  5. Use Ignore Components for hardware and purchased parts that shouldn’t become Odoo products, and turn on thumbnail and file uploads once the data is right.

The full click-by-click version, with the API key screens and every connector setting, is in Sync a SOLIDWORKS BOM to Odoo: step by step.

What it doesn’t do

  • No inventory or stock levels; that stays in Odoo.
  • No creation of custom fields or missing Internal References; the connector maps to what exists.
  • No BOM import from Odoo into SOLIDWORKS; Pull changes properties only.
  • Odoo versions before 19 aren’t supported by the JSON-2 connector.

Availability

Available in PDMPublisher for SOLIDWORKS, the add-in that runs inside SOLIDWORKS. Not part of the PDM Professional task. The Odoo connector ships with the add-in. Community Edition handles up to 10 rows per run; Premium removes the limit.

Documentation and related features

Frequently asked questions

Does SOLIDWORKS integrate with Odoo natively?

No. SOLIDWORKS has no built-in Odoo connection. You need an add-in such as PDMPublisher ERP Sync, a custom script against Odoo’s API, or a spreadsheet import.

Do I need SOLIDWORKS PDM to sync a BOM to Odoo?

No. ERP Sync runs inside SOLIDWORKS on the open assembly. PDM is optional.

Which Odoo editions and versions work?

Odoo 19 and later, and Odoo Online, through the JSON-2 external API.

Can it update an existing Odoo BOM when the design changes?

Yes. Push again and the review shows the component and quantity differences; existing BOM lines and the base quantity are kept where only a quantity changed.

Is the Odoo connector free?

It ships with PDMPublisher for SOLIDWORKS. The Community Edition handles up to 10 rows per run; Premium removes the limit.

Picture of Amen Jlili

Amen Jlili

Amen Jlili is the Founder and Technical Director of Blue Byte Systems Inc., a Vancouver-based software company specializing in SOLIDWORKS and SOLIDWORKS PDM automation. He works with engineering teams around the world to develop custom SOLIDWORKS API and PDM API solutions, automate engineering workflows, and integrate CAD data with enterprise systems
PDMPUBLISHER

Turn every release into a finished package.

The SOLIDWORKS add-in is free to start as the Community Edition. The PDM Professional task comes with a 7-day trial for your vault.