🔒

IDB BOM Module

This specification is confidential. Enter the access code to continue.

Incorrect access code. Please try again.
Product Specification

IDB BOM Module

Odoo 19 — Bill of Materials for Bag Manufacturing

Transform CAD exports into structured Odoo BOMs. From Excel import to color variant generation, product matching, and cost simulation.

8
Spec Areas
19
Odoo Version
1+2
Phases
01 — CORE

BOM Structure

Problem

CAD software exports material data per pattern piece into Excel. Manual re-entry into ERP is slow and error-prone.

Solution

Flat BOM model — one line per (material × part). Same material on multiple pieces = multiple lines. Odoo sums automatically for MRP/purchasing.

Pattern Pieces as Labels

Stored as Char field, not products. Pieces identify where material is used but are not inventory items.

Flat Composite Materials

Composite materials (e.g. leather + foam) kept flat by default. No sub-BOMs unless explicitly configured.

Placeholder Products

On import, each material type gets a placeholder product. Real products are assigned via the matching workflow.

G2550 BOM Lines

Real data from the reference bag model

Part Material L(cm) W(cm) PCS Width Usage Type
前幅 主料贴加密1.0mm特软高弹力纯胶消光54 16.9115.41152" 0.14 m² fabric
后幅 主料贴加密1.0mm特软高弹力纯胶消光54 16.9115.41152" 0.14 m² fabric
内前幅 里布贴进口30g无纺布62 13.8915.41152" 0.12 m² lining
内后幅 里布贴进口30g无纺布62 13.8915.41152" 0.12 m² lining
前内插袋 配料贴TC棉56西园纺织 8.2611.28152" 0.05 m² fabric
后内吊袋 里布 11.448.25152" 0.05 m² lining
前右长肩带 主料双层夹贴1.2mm中性磅布54 34.540.82152" 0.02 m² fabric
手挚 主料双层夹贴1.2mm中性磅布54 13.621.66152" 0.02 m² fabric
前幅 22#鸡眼合金A 3 3 pcs hardware
前幅 3mm爪钉 17 17 pcs hardware
前幅 6mm×5mm单面蘑菇钉A 9 9 pcs hardware
侧围耳仔 5分×4分圆线D扣铁A 2 2 pcs hardware
后内窗 乌石5#尼龙拉链 8.01 8 cm hardware
02 — WORKFLOW

Import Wizard

Problem

Client re-enters BOM data manually from CAD exports — tedious, slow, and prone to transcription errors.

Solution

Odoo-native wizard: upload .xls → detect SKU → preview parsed lines → one-click import.

1
Upload
Select .xls file from CAD export
2
SKU Resolution
Auto-detect or manually enter product SKU
3
Preview & Confirm
Review parsed lines, edit, then import

BOM Mapper (External App) — Separate web app that maps CAD exports. Rejected because it requires maintaining a separate system, separate auth, and synchronization logic. The wizard-in-Odoo approach keeps everything in one place.


Hybrid Approach — External parser + Odoo API import. Rejected because it adds deployment complexity and a potential point of failure outside Odoo.

Wizard Preview Mockup

Part Material (ZH) Type Usage Status
前幅 主料贴加密1.0mm特软高弹力纯胶消光54 fabric 0.14 m² parsed
后幅 主料贴加密1.0mm特软高弹力纯胶消光54 fabric 0.14 m² parsed
内前幅 里布贴进口30g无纺布62 lining 0.12 m² parsed
前幅 22#鸡眼合金A hardware 3 pcs parsed
前幅 3mm爪钉 hardware 17 pcs parsed
03 — WORKFLOW

Product Matching

Problem

After import, every BOM line has a placeholder product. The user needs to link each material to a real Odoo product.

Solution

Smart button on BOM form → filtered list of unmatched lines → mass-edit product_id. Count decreases in real time.

🔗  Lines to Match 23

Smart button on BOM form header — count updates as products are assigned

Material Type Grouping

Unmatched lines are grouped by material type (fabric, lining, hardware, etc.) so the user can bulk-assign similar materials efficiently.

Fuzzy Search

Product selector uses Odoo's standard Many2one search with additional filters on material type and Chinese name matching.

Progressive Matching

Each assignment immediately decreases the unmatched count. Once the count reaches zero, the smart button turns green.

04 — VARIANTS

Color Mapping

Problem

Same bag SKU is produced in multiple colorways — manual BOM duplication is error-prone and hard to maintain.

Solution

Matrix wizard: select color variants → check override per line per color → auto-generate variant BOMs with correct products.

Interactive Color Mapping Matrix

Toggle checkboxes to assign color-specific products to each material line

Material (ZH) Master Product Red Blue Black
主料贴加密1.0mm... Outer Leather
里布贴进口30g... Lining Fabric
配料贴TC棉56... Accent Fabric
22#鸡眼合金 Eyelet Alloy
3mm爪钉 Claw Rivets
3 variant BOMs will be generated
05 — PLM

Change Management (ECO)

Problem

BOM edits go live immediately with no traceability. No history of what changed, when, or why.

Solution

Standard Odoo PLM — ECO workflow: Draft → Review → Approved → Version archived. All changes tracked.

D
Draft
R
Review
A
Approved
V
Archived

Re-Import Diff Preview

Change Description Old Value New Value
➕ Added 新增补强 前幅底部 qty = 0.03 m²
✎ Modified 前幅 主料 usage 0.14 m² 0.16 m²
✎ Modified 后幅 defect rate 0% 3%
➖ Removed 插锁吊绳 主料双层夹贴 qty = 0.01

Custom Versioning System — Building our own change tracking from scratch. Rejected because Odoo PLM already provides this out of the box with ECOs, approval workflows, and version history. No reason to reinvent.

06 — PHASE 2

Operations & Routing

Problem

Multi-level BOMs create nested Manufacturing Orders with heavyweight overhead — not suited for bag assembly workflows.

Solution

Single flat BOM, single MO, multiple Work Orders. Materials consumed at the right operation via bom_line_id.operation_id.

Manufacturing Operations Sequence

10
Cutting
Cutting
Outer fabric, Lining
20
Interlining
Preparation
Foam, Non-woven
30
Sewing
Sewing
Thread, Adhesive
40
Hardware
Hardware
Eyelets, D-rings, Rivets
50
QC Inspection
QC
60
Packaging
Packaging
Packaging materials
07 — REFERENCE

Views & Reports

Problem

Odoo's default BOM view is hierarchical and technical — difficult for factory staff to read and verify materials.

Solution

Custom flat list view tab on the BOM form + printable QWeb PDF report. Shows all BOM lines grouped by type with totals.

Flat View Mockup

# Part Material Product Type Usage UoM Operation Matched
1 前幅 主料贴加密1.0mm... Outer Leather Red fabric 0.14 Cutting
2 后幅 主料贴加密1.0mm... Outer Leather Red fabric 0.14 Cutting
3 内前幅 里布贴进口30g... Red Lining lining 0.12 Cutting
4 前幅 22#鸡眼合金A Placeholder hardware 3 pcs Hardware
5 前幅 3mm爪钉 Placeholder hardware 17 pcs Hardware

Flat List Tab

Added as a new tab on the BOM form view, next to the existing "Components" and "Operations" tabs. Grouped by material type.

QWeb PDF Report

Printable report with company header, BOM summary, material totals per type, and cost estimates. Suitable for factory floor use.

08 — REFERENCE

Costing

Problem

Overhead, freight, and duties must not be BOM lines — they would generate MRP demand and create phantom purchase orders.

Solution

Separate cost simulation table: name, amount, currency, notes. Simulated total = BOM material cost + cost lines. No MRP impact.

Cost Simulation Table

Item Amount Currency Notes
Factory overhead ¥45.00 CNY Per unit estimate
Estimated freight ¥12.50 CNY FOB Shenzhen
Import duties €3.20 EUR EU tariff 4202
QC inspection ¥8.00 CNY AQL 2.5
Simulated Total ¥185.70 Material ¥117.00 + Overhead ¥68.70
09 — REFERENCE

Technical Scope

Module Name

mjb_idb_bom

Target Platform

Odoo 19

Models

mrp.bom.line Extended — pattern piece, material type, Chinese name fields
mjb.idb.bom.import Transient wizard — Excel upload, parsing, preview
mjb.idb.bom.cost.line Cost simulation lines — overhead, freight, duties
mjb.idb.color.mapping Transient wizard — color variant matrix & BOM generation

Dependencies

mrp mrp_plm quality

Out of Scope

  • DXF import from CAD files (Phase 2)
  • Material mapping memory / learning (Phase 3)
  • Multi-SKU per file import