Bulk import Bills of Materials, validated before they are created
Upload CSV or Excel BOM data, catch every missing product and bad quantity in a dry-run preview, then commit with confidence — row-level diagnostics and a full import history included.
A Bill of Materials is nested data — a parent product with many component lines, each carrying its own quantity, unit of measure, and optional routing. Odoo's native import handles flat records well but struggles with this structure, and rebuilding hundreds of BOMs by hand at go-live is slow and error-prone. Problems like a missing product or a barcode Excel silently turned into a number are usually discovered only after the import has already run.
This importer resolves every product, unit of measure, and quantity in a dry-run preview before anything is created. Numeric-vs-text corruption is auto-corrected, problems are reported row by row with the offending value, and you can fix flagged rows in place and reprocess just those — no full re-upload, no orphaned BOMs.
Everything you need for accurate BOM migrations
Every capability below is implemented in the module.
Validate Before You Commit
A dry-run resolves every product, UOM, and quantity before any BOM is created, so nothing is written until you have reviewed the result.
Row-Level Error Diagnostics
Errors point to the exact row and field, show the offending value, and suggest a fix — never a bare "Product does not exist".
Numeric-vs-Text Auto-Correction
Detects Internal Reference and Barcode codes that Excel silently stored as numbers (like 12345.0) and restores them automatically.
Fix and Reprocess Failed Rows
Correct a flagged row directly in the preview grid and reprocess just that row — no need to re-upload the whole file.
Multi-Line, Multi-Level BOMs
Each parent product can carry any number of component lines, and sub-assemblies with their own BOMs resolve correctly regardless of import order.
Match by Name, Code, or Barcode
Components resolve by product name, internal reference, or barcode, matching whichever identifier your source system used.
Operations & Work Center Import
Optional operation and work center columns attach routing steps to the created BOM lines.
Background Processing
Queue large files to a scheduled job so bulk imports never lock up the Odoo interface.
Auditable Import History
Every run is a persistent record with row counts, error summaries, and a link to the BOMs it created.
How it works
Upload your file
Attach a CSV or Excel export from your legacy system or spreadsheet.
Validate
A dry run resolves every product, UOM, and quantity, flagging errors by row and field.
Review & fix
Correct any flagged rows right in the preview grid, then reprocess just those.
Import
BOMs and operations are created, completion is posted to chatter, and the run is kept in history.
See it in action
From upload to validated, imported, and flagged rows — see the full import lifecycle.
Every import run is logged with its status, row counts, and who ran it — a searchable audit trail across every migration pass.
The dry-run preview resolves every row before you commit — nothing is written to your BOMs until you approve the result.
Completed imports link directly to the BOMs they created, with a row-by-row breakdown of what was imported and what still needs a fix.
Failed rows show exactly which row and field caused the problem, so you can fix your source data instead of guessing.
Frequently asked
Which file formats can I import?
CSV and Excel (.xlsx) files. Legacy .xls is not supported — export or save your source file as .xlsx first.
What happens if a product or unit of measure does not exist yet?
The row is flagged as an error with the row number, the field, and the value that did not match — nothing is auto-created, so your product catalog stays clean.
Do I have to re-upload the whole file if some rows fail?
No. Fix the flagged rows directly in the preview grid, then use Reprocess Failed Rows to import just those — already-imported rows are never duplicated.
Will a large import lock up my Odoo instance?
Enable Process in Background on the import and it is queued for a scheduled job that runs every 10 minutes, so the interface stays responsive while large files import.
Get in Touch
Have questions or need customization? Every purchase includes 30 days of free support — we are here to help.
Visit Our Website
www.cerevantix.comExplore our apps, services, and portfolio.
Empowering growth through technology.
Bulk-import Bills of Materials from CSV or Excel with validate-before-commit preview, row-level diagnostics, and a full import history.
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Manufacturing (mrp)
• Inventory (stock) • Discuss (mail) |
| Lines of code | 673 |
| Technical Name |
cerevantix_import_bill_of_materials_bom |
| License | OPL-1 |
| Website | https://cerevantix.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module