I'm currently importing products into Odoo 18, followed by a Bill of Materials (BoM) import using External IDs. However, I'm encountering the following error:
"Invalid external ID import.400034: expected model 'product.product', found 'product.template'"
What I’ve Tried
- When importing products, Odoo correctly creates product.template records.
- According to the official documentation and community threads (e.g., -->odoo.com/forum/help-1/producttemplate-vs-productproduct-94430), a corresponding product.product should be automatically generated for each template.
- However, in my case, this automatic creation doesn't seem to happen — or at least it's not visible for linking via external ID.
Troubleshooting Steps Attempted
- Re-exported the products after import to check for the product.product external IDs — but only product.template entries are exported. External IDs are the one I set (__import__.XXXX)
- Tried importing with and without enabling variants — the result is the same.
- Verified that the product shows up in the UI, but BoM import still fails due to the mismatch in expected model.
- Why is the product.product record not being generated or not linked via external ID?
- How can I correctly import BoMs using external IDs that reference the product variant (product.product) instead of just the template?
I've scouted the depth of the internet to find a solution, there are no clear answer. ChatGPT 4.5 is as lost as I am.
What is the correct way to import product and bom, I can't link by name as there duplicated names with different ids, those are data extracted from SAP with over 10'000 products and 30'000 bom entries.
Any clarification or recommended workflow would be appreciated.
It would probably be beneficial if you'd add a trimmed down version of your import files showing the header and relevant data for an example dataset.