Skip to main content

Bill of Materials and Routing

This page specifies the proposed BOM and routing for the driving example: producing Sugbo Blend 70g from Blu Espresso Blend 500g and a 70g coffee pouch.

Stock locations

Under Inventory > Configuration > Locations, create:

LocationTypeParentNotes
Roastery / Raw MaterialsInternalWH/StockWhere Main WH transfers raw stock for production
Roastery / WIPProductionRoasteryThe MO's source/destination during work orders
Roastery / Finished GoodsInternalRoasteryOptional — transit before pushing back to Main WH

Work centers

Under Manufacturing > Configuration > Work Centers, create:

Roastery — Grinding

FieldValue
CodeRST-GR
Capacity1 (one batch at a time)
Cost per hour(labor rate × operators) + (electricity ₱/kWh × kW) + (equipment depreciation/hr)
OEE target85% (placeholder)
Time efficiency100%

Roastery — Packaging

FieldValue
CodeRST-PK
Capacity1
Cost per hourlabor rate × operators
OEE target90% (placeholder)
Time efficiency100%

The exact ₱/hour values come from VGC payroll + utility data — see Open Questions.

Products

Coffee Pouches (raw material)

FieldValue
TypeStorable Product
CategRaw Materials / Packaging
UoMUnits
Costper-pouch landed cost
RoutesBuy

Create one variant per pouch size (e.g. Coffee Pouch 70g, Coffee Pouch 250g, Coffee Pouch 500g).

Sugbo Blend 70g (finished product)

FieldValue
TypeStorable Product
CategFinished Goods / Coffee
UoMUnits
BrandSugbo (blu_crm_sales)
Costing methodStandard (recommended — see Costing)
RoutesManufacture
SRP₱105

BOM — Sugbo Blend 70g

Under Manufacturing > Products > Bills of Materials, create:

FieldValue
ProductSugbo Blend 70g
Quantity1
BOM TypeManufacture this product

Components

ComponentQuantityUoMNotes
Blu Espresso Blend 500g0.075kg (or 0.15 ratio of one 500g pack)70g target + 5g grinding loss
Coffee Pouch 70g1UnitsOne pouch per finished unit

The 0.075 kg figure assumes a flat ~7% grinding loss. If VGC measures per-batch yield instead, model loss as a by-product with negative quantity rather than padding the input.

Operations

SequenceOperationWork CenterDefault Duration
1GrindingRoastery — Grinding2 min/unit (placeholder)
2PackagingRoastery — Packaging1 min/unit (placeholder)

Durations are per finished unit. For a 100-pouch run, MO will schedule 200 min on grinding + 100 min on packaging — adjust based on actual stopwatch data.

Multi-pouch BOM (future)

If the roastery grinds one large batch and fills multiple pouch sizes simultaneously (70g, 250g, 500g), use Odoo's By-Products feature on the BOM:

  • Primary product: e.g. Sugbo Blend 70g × N
  • By-products: Sugbo Blend 250g × M, Sugbo Blend 500g × K

This reflects the shared grinding cost more accurately than running three separate MOs.

See Open Questions — the team needs to confirm whether this is the actual physical workflow.

Manufacturing Order lifecycle

Draft ──confirm──► Confirmed ──reserve──► Ready ──start──► In Progress ──finish──► Done

└─► (cancel) ──► Cancelled

In the planned blu_mrp customization, an additional awaiting_approval state may sit between Draft and Confirmed for the raw-material pull. See Process Flow → Approval gate.