Skip to content

Odoo Manufacturing Order No Components — Empty BOM and Missing Materials Fix

DeployMonkey Team · March 24, 2026 9 min read

Manufacturing Order Without Components

When creating a manufacturing order, the components tab is empty or shows wrong materials:

Issues:
- Manufacturing Order created but no components listed
- "No Bill of Materials found for this product"
- Components don't match expected recipe
- Wrong BOM version applied
- Product variant doesn't match any BOM

Fix 1: BOM Not Defined

# A Bill of Materials must exist for the manufactured product

# Check:
# Manufacturing > Bills of Materials
# Search for the product

# If missing, create one:
# Manufacturing > Bills of Materials > Create
# - Product: select the finished product
# - BOM Type: Manufacture This Product
# - Components: add each raw material with quantity

# The BOM must be for the EXACT product (variant), not just the template
# Product Template with variants → separate BOM per variant or use "Apply on Variants"

Fix 2: BOM Not Linked to Product

# The product field on the BOM must match the MO product

# Check the BOM:
# Manufacturing > Bills of Materials > open the BOM
# Verify the Product field matches exactly

# Common issue with product variants:
# BOM for "T-Shirt" (template) won't apply to "T-Shirt / Red / Large" (variant)
# unless the BOM's "Apply on Variants" includes that variant

# Check via database:
sudo -u postgres psql -d mydb -c "
  SELECT mb.id, pt.name as product_template,
    pp.id as product_variant_id,
    pp2.default_code as variant_code,
    mb.type, mb.active
  FROM mrp_bom mb
  JOIN product_template pt ON mb.product_tmpl_id = pt.id
  LEFT JOIN product_product pp2 ON mb.product_id = pp2.id
  CROSS JOIN product_product pp
  WHERE pp.id = YOUR_MO_PRODUCT_ID
  AND (mb.product_tmpl_id = pp.product_tmpl_id)
  AND (mb.product_id IS NULL OR mb.product_id = pp.id)
  AND mb.active = true;
"

Fix 3: BOM Archived or Inactive

# The BOM may exist but be archived:
# Manufacturing > Bills of Materials
# Remove the "Active" filter to show archived BOMs

# If found, unarchive it:
# Select the BOM > Action > Unarchive

# Or check via database:
sudo -u postgres psql -d mydb -c "
  SELECT id, product_tmpl_id, active, type
  FROM mrp_bom
  WHERE product_tmpl_id = PRODUCT_TEMPLATE_ID;
"

Fix 4: Wrong BOM Type

# BOM types:
# - "Manufacture this product" → creates MO with components
# - "Kit" → auto-explodes into individual products on SO (no MO)
# - "Subcontracting" → sent to external manufacturer

# If BOM type is "Kit", it won't create MO components
# Change type to "Manufacture this product" for manufacturing

# Manufacturing > Bills of Materials > open BOM
# Change "BoM Type" to "Manufacture this product"

Fix 5: Multi-Level BOM Resolution

# If components are themselves manufactured products:
# Odoo can auto-generate MOs for sub-assemblies

# Check if the component has its own BOM:
# The MO should show the top-level components
# Sub-MOs are created when the top-level MO is confirmed

# If sub-components appear instead of the expected components:
# The "Manufacturing Lead Time" on sub-assembly products
# determines the planning order

Fix 6: MO Created from Sale Order

# When an MO is auto-created from a sale order:
# The route on the product must include "Manufacture"

# Product > Inventory tab > Routes
# Enable: "Manufacture" (or "Replenish on Order (MTO)" + "Manufacture")

# If the MO was created but has no components:
# The BOM might not have existed when the MO was generated
# Fix: Create the BOM, then recompute the MO:
# Open the MO > Components tab > "Recompute" or recreate the MO

Fix 7: Quantity and UoM Mismatches

# BOM quantity and MO quantity use Units of Measure
# If the BOM is defined for 1 Unit but MO requests 1 Dozen:
# Components must scale correctly based on UoM conversion

# Check UoM configuration:
# Product > General tab > Unit of Measure
# BOM > Quantity field + Unit of Measure
# These must be compatible (same category)

Prevention

DeployMonkey's AI agent validates BOM configurations during product setup. The agent ensures proper product-to-BOM linking, correct variant matching, and component availability before manufacturing orders are created.