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.registrycomplements 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 MaterialstoOVT/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
Assemblyapplet
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_idmotor_idmcu_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_idtracking_number
This creates the identity payload for ov.asset.registry.
Minimum payload fields:
product_template_idfor E3-Promo_idckd_lot_idoel_serialoem_idtracking_numberchassis_idmotor_idmcu_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.registryrecord - 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/AssemblytoOVT/Test - move from
OVT/TesttoOVT/Quality - if passed, move from
OVT/QualitytoOVT/Packaging - then move from
OVT/PackagingtoOVT/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.registrycontains the newoem_id- the registry payload includes the captured
chassis_id,motor_id, andmcu_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.