Skip to content

3.1 E3-Pro CKD To FG Odoo Flow

Purpose

This page describes a standard Odoo operating flow that converts lot-tracked CKD material into one serial-tracked finished-goods E3-Pro vehicle, with ov.asset.registry added as the lifecycle identity layer.

Scope

This process assumes:

  • CKD inventory is received and tracked by lot in Odoo
  • the active OVT BoM is 1 CKD Package -> 1 Finished Motorcycle
  • finished goods are tracked by serial in Odoo
  • assembly operators use a PA applet named Assembly
  • the applet creates the registry payload using the actual part IDs found on the physical kit
  • ov.asset.registry complements Odoo rather than replacing standard Odoo stock or manufacturing logic

Example Objects

Use the following example references:

  • product: E3-Pro
  • CKD package serial or OEL serial: OEL-E3PRO-BOX-0001
  • CKD lot: CKD-E3PRO-2026-05-LOT01
  • manufacturing order: MO/E3PRO/0001
  • finished-goods serial: E3PRO-FG-0001
  • registry identity: OEM-ID-E3PRO-0001
  • tracking number: TRK-E3PRO-0001
  • warehouse stock location: OVT/CKD Materials
  • assembly location: OVT/Assembly
  • test location: OVT/Test
  • quality location: OVT/Quality
  • packaging location: OVT/Packaging
  • finished-goods location: OVT/Finished Goods

Standard Odoo Location Pattern

This note-derived process uses the following standard location flow:

OVT/CKD Materials -> OVT/Assembly -> OVT/Test -> OVT/Quality -> OVT/Packaging -> OVT/Finished Goods

BoM Assumption

This flow assumes OVT does not explode the CKD package into individual stock-managed subcomponents for manufacturing consumption. The stock-level manufacturing input is one CKD package, while component identities are captured at assembly and stored in the registry layer.

Step-By-Step Process

1. Confirm CKD Stock Exists In Odoo

Before assembly starts, Odoo should already show the E3-Pro CKD material in stock as lot-tracked inventory.

Expected Odoo state:

  • the CKD lot exists in inventory
  • the required CKD quantities are available
  • the lot is eligible for reservation to the manufacturing order

Main Odoo objects:

  • product
  • lot
  • stock quant
  • stock move

2. Create And Release The E3-Pro Manufacturing Order

Create a standard Odoo manufacturing order for one E3-Pro FG unit.

Expected Odoo action:

  • create MO/E3PRO/0001
  • reserve or prepare CKD lot stock against the MO
  • set the MO ready for assembly execution

Main Odoo objects:

  • mrp.production
  • BoM
  • raw material moves

3. Move One CKD Package From Warehouse To Assembly

Before assembly starts, move one E3-Pro CKD package from the warehouse stock location to the assembly location.

Expected Odoo action:

  • create an internal transfer from OVT/CKD Materials to OVT/Assembly
  • move one CKD package linked to CKD-E3PRO-2026-05-LOT01
  • make that package no longer available in the warehouse stock location
  • make that package available to the assembly operation

Main Odoo objects:

  • internal picking
  • stock move
  • source and destination locations
  • lot-tracked package reference

4. Scan The CKD Box For The OEL Serial Number

At the start of the line-side operation, scan the CKD box for the OEL serial number so the selected package is identified automatically.

Expected system action:

  • identify the actual CKD package and its source lot
  • confirm that the package on the line is the package being assembled
  • load the package context into the PA Assembly applet

Expected inventory result:

  • the scanned CKD package is treated as the active package for this build
  • it is no longer available as warehouse stock
  • it remains traceable as the source package for the FG unit

Operational intent:

  • CKD trace remains batch or lot based
  • the package selection step is automated by scan
  • component serial capture is deferred until the assembly station reveals the real part IDs

5. Open The PA Assembly Applet

The operator opens the PA applet called Assembly for the active MO.

Expected app context:

  • product: E3-Pro
  • manufacturing order: MO/E3PRO/0001
  • source CKD lot: CKD-E3PRO-2026-05-LOT01
  • source OEL serial: OEL-E3PRO-BOX-0001

The applet should not replace the Odoo MO. It should collect identity data and prepare the lifecycle payload that Odoo does not manage natively.

6. Capture Actual Part IDs From The Physical Build

During assembly, the operator records the real component IDs revealed on the physical unit, for example:

  • chassis_id
  • motor_id
  • mcu_id

Operational rule:

  • these IDs come from the actual E3-Pro being assembled
  • they are not assumed from upstream CKD inventory records

7. Generate oem_id And tracking_number

The PA Assembly applet uses the captured part IDs and current build context to generate:

  • oem_id
  • tracking_number

This creates the identity payload for ov.asset.registry.

Minimum payload fields:

  • product_template_id for E3-Pro
  • mo_id
  • ckd_lot_id
  • oel_serial
  • oem_id
  • tracking_number
  • chassis_id
  • motor_id
  • mcu_id

8. Use Assembly Complete To Commit The Payload

The Assembly Complete step in the app should commit the payload into the system and synchronize the standard Odoo completion actions.

Expected combined result:

  • create the ov.asset.registry record
  • create active component-lineage records if used
  • consume the CKD package or lot quantity from OVT/Assembly
  • produce one FG serial-tracked E3-Pro unit in Odoo
  • update the assembly-side package so it is no longer available as open CKD stock

Expected created links:

  • Odoo FG serial links back to the MO
  • registry record links to the FG serial
  • registry record links to the CKD source lot
  • registry record links to the scanned OEL serial when available

9. Create The Serial-Tracked FG Vehicle In Odoo

When the MO is completed, Odoo should create one finished-goods serial for the assembled E3-Pro.

Expected Odoo result:

  • FG product exists as one serial-tracked unit
  • example serial: E3PRO-FG-0001
  • the unit is now available in the correct FG location or stock state

Main Odoo objects:

  • finished-goods lot or serial
  • finished stock move
  • MO completion record

10. Move The New FG Unit Through Test, Quality, And Packaging

After MO completion, the finished E3-Pro should move through the post-assembly operational locations defined in the note.

Expected Odoo result:

  • move from OVT/Assembly to OVT/Test
  • move from OVT/Test to OVT/Quality
  • if passed, move from OVT/Quality to OVT/Packaging
  • then move from OVT/Packaging to OVT/Finished Goods
  • the unit becomes saleable inventory only after the quality pass and FG move

11. Verify The New E3-Pro Exists

After completion, verify that the newly assembled vehicle exists in both systems.

Verification checklist:

  • Odoo shows one new E3-Pro FG serial
  • the MO is completed
  • ov.asset.registry contains the new oem_id
  • the registry payload includes the captured chassis_id, motor_id, and mcu_id
  • the FG serial is in OVT/Finished Goods

12. Verify CKD Inventory Reduction And Location Update

After completion, verify that the CKD lot inventory was reduced correctly.

Verification checklist:

  • the consumed CKD quantity is reduced from CKD-E3PRO-2026-05-LOT01
  • the stock move history ties the lot consumption to MO/E3PRO/0001
  • the scanned CKD package is no longer available in OVT/CKD Materials
  • the warehouse-to-assembly move is visible in stock history
  • no duplicate FG serial or duplicate registry record was created

13. Verify Financial And Valuation Updates

The assembly completion should also trigger the normal Odoo financial or valuation consequences for manufacturing completion.

Expected business result:

  • inventory valuation reflects CKD consumption and FG creation
  • manufacturing completion is reflected in the normal Odoo accounting or stock valuation flow
  • the result is consistent with one E3-Pro unit being added to FG stock

Control Points

  • do not create the FG unit without actual part-ID capture
  • do not create the registry record without linking it to the MO and CKD lot
  • do not skip the warehouse-to-assembly move for the selected CKD package
  • do not leave the scanned CKD package available in warehouse stock after line issue
  • do not bypass standard Odoo stock consumption and FG production
  • do not overwrite history when corrections are needed; use traceable updates

Success Condition

The process is successful when one lot-tracked CKD build input becomes one serial-tracked E3-Pro FG vehicle in Odoo, and that same unit is anchored in ov.asset.registry with its captured component identities, oem_id, and tracking_number. The selected CKD package is no longer available in warehouse stock, and the new FG serial is available in OVT/Finished Goods.