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

Guides and comparisons

Sync a SOLIDWORKS BOM to Odoo: step by step with ERP Sync

Push SOLIDWORKS products, properties and the manufacturing BOM into Odoo with PDMPublisher ERP Sync: API key, field mappings, a reviewed diff, then commit.

Re-typing a SOLIDWORKS bill of materials into Odoo is slow, and it goes wrong exactly when it matters: at release, under time pressure, with a part number mistyped. ERP Sync in PDMPublisher for SOLIDWORKS connects to Odoo with an API key, maps your custom properties to Odoo product fields once, and pushes products, properties and the manufacturing BOM after you’ve reviewed every change. This guide walks through the whole setup on a small speaker assembly.

PDMPublisher Review ERP changes window listing four SOLIDWORKS parts as proposed additions to Odoo with product, description, default_code and name columns, and the Commit changes button
The review before anything is written: every product, field and BOM line Odoo is about to receive, marked Added, Changed or Deleted.

What you’ll end up with

Watch the whole flow first, then follow the steps below.

SOLIDWORKS to Odoo with the PDMPublisher Odoo connector: API key, connection, mapping, push and review.
  • A product in Odoo for every checked part and sub-assembly, matched on Internal Reference (default_code) so a second push updates instead of duplicating.
  • Mapped fields filled from SOLIDWORKS: name, description, weight, sale and purchase flags, barcode, your own x_ custom fields.
  • A manufacturing BOM under Inventory > Bills of Materials with one component line per part and the right quantity.
  • Optionally the SOLIDWORKS thumbnail on the product and the STEP, DXF or PDF you already exported attached to it.
  • A reviewed diff before every write, and a Pull that brings ERP values back into SOLIDWORKS properties.

Before you start

  • Odoo 19+ or Odoo Online with JSON-2 external API access. The connector doesn’t use the older XML-RPC or JSON-RPC endpoints.
  • A dedicated Odoo integration user with read access to the product fields you’ll map, create and write access for the operations you enable, manufacturing BOM access for BOM push, and attachment access for uploads.
  • Unique Internal References. PDMPublisher matches your item code column to default_code exactly; blank or duplicate references stop the push preview.
  • An assembly open in SOLIDWORKS with references resolved. No SOLIDWORKS PDM required.
  • A test database or test company in Odoo for the first run.

Step 1: create an API key in Odoo

  1. Sign in to Odoo as the integration user and open My Preferences from the user menu.
  2. Open the Security tab and, under API Keys, select Add API Key.
  3. Name it PDMPublisher, create it with the rpc scope and copy the key straight away; Odoo won’t show it again.
  4. Treat it like a password: no screenshots, no shared config files. To rotate it later, create a new key, update PDMPublisher, then delete the old one.
Odoo user preferences Security tab with an API key named PDMPublisher under API Keys
The API key identifies the integration user. PDMPublisher never sends a login name or password to Odoo.

Step 2: install and connect the Odoo connector

  1. In SOLIDWORKS, open PDMPublisher > Settings > ERP Sync and select ERP connector settings.
  2. Select Refresh, pick Odoo under Official Blue Byte Systems Inc and select Download if it isn’t installed yet or a newer version is offered.
  3. Select the Odoo row. Under Connection, enter the Server URL (the HTTPS root, such as https://example.odoo.com/, nothing after the slash), paste the API key, and leave Database empty for Odoo Online. Set it only when your server hosts several databases.
  4. Leave Timeout at 60 seconds unless Odoo is slow to answer.
  5. Select Test connection. It checks the URL and key, loads the writable product fields and confirms read access without creating anything.
  6. Select Save. Odoo is now the active connector. If you replaced a connector that was already loaded, restart SOLIDWORKS.
PDMPublisher ERP connector settings window with Odoo selected and its BOM, Connection, Items and Uploads settings: Company ID, Server URL, API key, Database, Timeout, Item code column, Skip empty values, Property mappings, Upload thumbnail, Upload exported files, Export folder and File extensions
Connector settings for Odoo. Item code column is the SOLIDWORKS value that must match the Odoo Internal Reference.

Step 3: pick the item code and map properties

  1. Under Items, set Item code column to the ERP Sync column or custom property that holds your part number. The default is PartNumber; file name without extension works if your files are named by part number.
  2. Leave Skip empty values on. A blank SOLIDWORKS property then never wipes a value someone typed in Odoo.
  3. Open Property mappings and select Load ERP fields. PDMPublisher asks Odoo which product fields this user can write.
  4. Add one row per property: SOLIDWORKS property on the left, Odoo field on the right. A sensible start is Description → name (the default), a weight property → weighta sales text → description_sale.
  5. Use the stored API field names (description_sale, not the translated label), map each Odoo field once, and remember booleans take True/FalseYes/No or 1/0 and numbers use a decimal point.
  6. Under Uploads, tick Upload thumbnail if you want the SOLIDWORKS preview on the product image, and Upload exported files if a STEP, DXF or PDF with the same base filename already sits in the export folder. The connector attaches files; it doesn’t export them.

Step 4: push and review

  1. Open PDMPublisher > ERP Sync with the assembly active. The default source is the feature tree; a BOM push needs the Indented view with no grouping.
  2. Tick only the rows to synchronise. Use Ignore Components for hardware and purchased parts that shouldn’t become Odoo products.
  3. Make sure Odoo is the selected connector at the bottom of the window.
  4. Open the arrow beside Push and choose the operations: Properties, Create items + properties, BOM, Include cut-list items. For a first run, Create items + properties only.
  5. Select Push. Nothing is written yet. Review ERP changes lists every product, field and BOM line marked Added, Changed or Deleted; Show unchanged reveals the rows that already match.
  6. Select Commit changes. PDMPublisher re-reads Odoo first; if anything changed since the preview, the commit stops and you preview again. Select Cancel to write nothing.
ERP Sync Push menu in PDMPublisher with the push operation choices
The Push menu: pick what goes to Odoo. Start with items and properties, add BOM once the products look right.

Step 5: check Odoo, then add the BOM

  1. In Odoo, open Inventory > Products. Each pushed part is there with its Internal Reference, mapped fields and, if you enabled it, the thumbnail.
  2. Back in ERP Sync, add BOM to the push operations and push again. The review now shows component additions, removals and quantity changes.
  3. After the commit, open Inventory > Bills of Materials. The assembly’s BOM is set to Manufacture this product, with one line per component and the SOLIDWORKS quantity. Existing line IDs and the BOM’s base quantity are kept when only a quantity changes.
Odoo Inventory product list showing the products created by PDMPublisher ERP Sync after a committed push
The committed products in Odoo Inventory, with names, internal references and mapped properties from SOLIDWORKS.

Settings that matter

SettingWhat it doesTip
Item code columnThe SOLIDWORKS value matched to Odoo default_code.Pick something that never changes. Duplicates or blanks stop the preview.
Skip empty valuesBlank SOLIDWORKS values don’t overwrite Odoo on push, and blank Odoo values don’t clear SOLIDWORKS on pull.Keep it on unless engineering owns every mapped field.
Property mappingsSOLIDWORKS property → writable scalar Odoo field.Standard fields plus x_ custom fields; no relational fields, each target once.
Company IDOdoo company used to create products and BOMs and to pick which BOM to update.0 uses the API user’s current company. Set it in multi-company databases.
Upload thumbnail / exported filesPreview to image_1920; matching STEP, DXF, PDF as attachments.Same base filename as the model, 20 MB per file, 64 MB per product.
Push operationsProperties, Create items + properties, BOM, Include cut-list items.Cut-list rows become separate lines for weldments and sheet metal.

Where it goes wrong

SymptomCauseFix
Test connection failsURL has an API path or trailing junk, key has whitespace, or the user lacks product read access.Use the HTTPS root only, re-paste the key, check the user’s access rights.
Push preview stops before the reviewBlank or duplicate item codes in the checked rows.Fix the part numbers in SOLIDWORKS, or change Item code column.
Commit stops with ‘data changed’Someone edited Odoo between preview and commit.Expected. Push again and review the new diff.
BOM push rejectedSeveral matching BOMs, duplicate lines, a cycle, unit mismatch, operations, by-products or variant-specific lines on the target.Tidy the Odoo BOM first; the connector refuses ambiguous cases on purpose.
Products created without a category or unitOdoo defaults are used unless a mapping supplies the value.Map the field, or set defaults in Odoo.
Wrong value after pushA mapping used the translated label, or a selection value wasn’t the stored key.Use API field names and stored selection keys.

Variations

  • Pull instead of push. Check rows, select Pull, review in Review ERP pull, then Apply to SOLIDWORKS. Only mapped properties change; the BOM structure never does.
  • From a drawing BOM table or a CSV. Switch the source selector; a BOM push from a table needs numbered indented rows (1, 1.1, 1.2) and a visible hierarchy.
  • Other ERPs. The ERPNext connector supports BOMs too; Business Central pushes and pulls items and properties only. Anything else: Request a custom ERP connector in the connector window, or build one in C#.

Documentation and related features

Frequently asked questions

Can I sync a SOLIDWORKS BOM to Odoo without SOLIDWORKS PDM?

Yes. ERP Sync runs inside SOLIDWORKS on the open assembly. PDM is not required.

Which Odoo versions work with PDMPublisher?

Odoo 19 and later, and Odoo Online, through the JSON-2 external API. The connector doesn’t use XML-RPC or JSON-RPC.

Does ERP Sync overwrite data in Odoo?

Only what you reviewed and committed. Every push shows a diff first, Skip empty values protects existing Odoo values from blank properties, and Odoo is re-read before the write.

Is the Odoo connector in the free edition?

Yes. The Community Edition of PDMPublisher for SOLIDWORKS includes ERP Sync for up to 10 rows per run. Premium removes the limit.

Can I pull Odoo data back into SOLIDWORKS?

Yes. Pull reads the matching products, reverses the property mappings and shows a review before writing to the SOLIDWORKS properties. It doesn’t change the assembly structure.

Does it sync inventory levels or create custom fields?

No. The connector synchronises products, mapped fields, attachments and manufacturing BOMs. Stock, custom field creation and missing Internal References are left to Odoo.

Where to next

PDMPublisher for SOLIDWORKS · PDMPublisher for PDM Professional · All features · Conversion guides · Pricing · Documentation · Contact

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