Technical Lab · 0034

Odoo for Cycle Export Bangladesh — BOM to customs, fully configured.

Bangladesh is the world's third-largest bicycle exporter. The factories that ship hundreds of thousands of units annually to Europe and the Americas manage complex multi-level BOMs, imported components from China and Taiwan, and duty drawback claims that require lot-level traceability. This guide covers how to configure Odoo to handle all of it.

Bangladesh exports over 2 million bicycles annually, primarily to the European Union, USA, and Japan. The major exporters operate EPZ factories that import 60–80% of components and assemble finished bicycles for re-export. The duty drawback system, the HS code complexity of bicycle components, and the lot-level traceability required for duty claims make this one of the most ERP-intensive manufacturing categories in Bangladesh.

Most cycle factories I have worked with are running procurement in Excel, production records in handwritten registers, and have no ability to quickly answer the question a duty drawback officer always asks: "Show me which imported components — with which import entry numbers — went into the bicycles on this export invoice." Odoo can answer that question in three clicks. This guide shows you how to set it up.

For the underlying manufacturing module setup, see the Odoo manufacturing module guide for Bangladesh factories. For customs and HS code management more broadly, see the HS code and customs management guide.

A bicycle has over 100 components. Each one is a procurement decision, a quality check, and a traceability requirement. ERP that cannot see all 100 is not ERP — it is expensive data entry.

Bangladesh cycle export: the ERP context

Bangladesh cycle manufacturers face a specific combination of challenges that makes ERP configuration non-trivial:

Multi-level BOM structure in Odoo

A bicycle BOM in Odoo should be structured as a multi-level BOM with sub-assemblies. This gives you production planning and traceability at the sub-assembly level, not just the finished bicycle level.

Level 0 26" Mountain Bicycle — Model MTB-X1 Manufacture
Frame Assembly — MTB-X1 (sub-assembly) 1 pcs Local MFG
Front Wheel Assembly — 26" (sub-assembly) 1 pcs Local MFG
Rear Wheel Assembly — 26" (sub-assembly) 1 pcs Local MFG
Drivetrain Assembly — 21-speed (sub-assembly) 1 pcs Local MFG
Handlebar + Stem + Grips (sub-assembly) 1 set Local MFG
Saddle + Seatpost 1 set Import CN
V-Brake Set (front + rear) — Shimano 1 set Import TW
Pedals — alloy platform 1 pair Import CN
Carton box + foam padding + cable ties 1 set Local
Level 1 Frame Assembly — MTB-X1 Manufacture
Hi-Ten Steel Frame — MTB-X1 (welded, painted) 1 pcs Local MFG
Front Fork — Hi-Ten steel 1 pcs Import CN
Headset — 1-1/8" threaded 1 set Import CN
Bottom Bracket — 68mm BSA 1 pcs Import CN
Level 1 Rear Wheel Assembly — 26" Manufacture
26" Alloy Rim — double-wall 1 pcs Import CN
Rear Hub — 7-speed freewheel 1 pcs Import TW
Spoke — 14G stainless, 260mm 36 pcs Import CN
Nipple — alloy 36 pcs Import CN
26" x 2.125" MTB Tyre — Kenda 1 pcs Import CN
26" Inner Tube — Schrader valve 1 pcs Import CN

In Odoo, set all sub-assembly BOMs (Level 1) with BOM Type = Manufacture. This means Odoo creates a separate Manufacturing Order for each sub-assembly — you get separate production tracking for frame assembly, wheel building, and drivetrain assembly. The top-level bicycle MO consumes these sub-assemblies as components.

If you want sub-assemblies to be produced inside the same MO as the finished bicycle (not separately planned), use BOM Type = Kit for the sub-assemblies. Use Kit when the sub-assembly is never stored separately; use Manufacture when it is produced in batches, inspected independently, or shared across multiple bicycle models.

Imported component procurement

Most high-value components in Bangladesh cycle manufacturing are imported from China (Tianjin, Wuxi) and Taiwan. Here is how to configure the procurement workflow in Odoo:

Production routing in Odoo

Operation Work Centre What happens Duration (est.) Odoo tracking
Frame Cutting Tube Cutting WC Steel tubes cut to length for frame, fork, and stays per model specifications 0.5 hrs/unit Work Order — Tube Cutting
Frame Welding Welding WC TIG/MIG welding of frame joints. Jig fixtures ensure geometry consistency. Post-weld inspection (visual, weld quality) 1.5 hrs/unit Work Order — Welding
Frame Painting Paint WC Powder coating or wet paint. Colour as per buyer colour code. Oven curing. Visual inspection for runs/chips 0.75 hrs/unit Work Order — Painting
Wheel Building Wheel Assembly WC Lacing spokes to rim and hub. Truing on tensioning machine. Tyre and tube mounting 0.6 hrs/pair Work Order — Wheel Assembly (separate MO)
Final Assembly Assembly Line WC Install fork, headset, wheels, drivetrain, brakes, handlebars, saddle, pedals. Gear and brake cable adjustment 1.0 hrs/unit Work Order — Final Assembly
QC & PDI QC WC Pre-delivery inspection: gear shifting, brake pull, wheel true, paint defects. AQL sampling per buyer spec 0.3 hrs/unit Quality Check + Scrap Order (rejects)
Packing & Cartonning Packing WC Semi-knock-down (SKD) packing per buyer spec (handlebar loose, pedals loose, partially assembled). Carton label, buyer barcode sticker 0.4 hrs/unit Work Order — Packing

HS code classification for bicycle components

8712.00 Finished bicycles (two-wheeled, non-motorised) — the export product HS code. Subcodes: 8712.0010 (children's), 8712.0020 (mountain/road), 8712.0090 (other).
8714.91 Frames and forks for cycles. Used for imported steel frames and fork sets.
8714.92 Wheel rims and spokes. Alloy rims and stainless spokes imported from China.
8714.94 Brakes and brake parts. Shimano V-brakes, cantilever brakes, caliper brakes.
8714.95 Saddles. Imported vinyl, leather, or padded bicycle saddles.
8714.99 Other cycle parts — derailleurs, gear shifters, cranksets, bottom brackets, pedals, hubs.
4011.50 Pneumatic rubber tyres for cycles. Kenda, Cheng Shin, and generic imported tyres.
7315.11 Roller chains for cycles. KMC and SRAM chains imported from Taiwan/China.

In Odoo, enter each HS code in the product's HS Code field. When you generate a commercial invoice or packing list from a Delivery Order, the HS code is available for the customs declaration. For the duty drawback claim, you need the HS code of the imported component (input) and the HS code of the exported bicycle (output) to demonstrate eligible input-output relationship under the Customs Duty Drawback Rules.

Export documentation from Odoo

A standard bicycle export shipment from Bangladesh requires these documents, all of which Odoo can generate or support:

Duty drawback traceability in Odoo

The duty drawback claim in Bangladesh requires you to prove, for each export shipment, which imported materials were used and what import duty was paid on them. Odoo enables this through lot-level traceability:

Note · Cycle exporter, Chattogram EPZDuty drawback audit
An EPZ-based bicycle exporter applied for a duty drawback claim covering a year of exports and could substantiate barely half of it. The components had been imported, the duty paid, and the bicycles genuinely exported — but receipts had been booked without lot numbers, so there was no way to prove which import shipment fed which export consignment. The drawback officer rejected every line that could not be tied to a Bill of Entry. We enabled lot tracking on all imported components and linked each lot to its B/E number; the next year's claim cleared in full. The traceability chain has to exist at the moment the import is received. It cannot be reconstructed at claim time.
  1. Enable lot tracking on all imported components: In the product master, set Tracking = "By Lot" for all imported components (derailleurs, hubs, tyres, rims, etc.). When you receive these components against a PO, assign lot numbers that correspond to the import shipment batch (e.g., LOT-2026-CN-042 for the 42nd China import shipment of 2026). Record the Bill of Entry (B/E) number and duty amount in the lot notes.
  2. Record component lot consumption in production: In the Manufacturing Order work order, when components are consumed, Odoo records which specific lots were used. This is the key step — it links imported component lots to specific finished bicycle MOs.
  3. Trace from export delivery to import lot: After a shipment is exported, go to Inventory → Traceability → select the finished bicycle product and the export delivery date range. Odoo's traceability report shows the chain: Export Delivery → Manufacturing Order → Component Lots → Purchase Receipts. From the Purchase Receipts, you have the import shipment details, the B/E numbers, and the duty paid amounts needed for the drawback claim.
  4. Generate drawback claim data: Export the traceability data to Excel. The drawback application to Bangladesh Customs requires: export invoice number + date, FOB value, imported component description + HS code + quantity + B/E number + duty paid. All of this is in Odoo's traceability data.

Bangladesh cycle export — specific considerations

Bottom line

The two configurations that deliver the most value for a Bangladesh cycle exporter are: (1) multi-level BOM with sub-assemblies, so you have production planning and traceability at every level; and (2) lot tracking on all imported components, so you can generate the duty drawback claim with confidence. Both require upfront configuration discipline — but the return is measurable in both operational visibility and recovered duty. Need help setting up Odoo for your cycle factory? Get in touch →

Frequently asked questions

How to configure Odoo BOM for bicycle manufacturing in Bangladesh?

Use a multi-level BOM structure: the finished bicycle (Level 0) references sub-assemblies (Frame Assembly, Wheel Assembly, Drivetrain Assembly) as Level 1 BOMs. Set sub-assembly BOMs to type "Manufacture" if they are produced separately and inspected independently, or "Kit" if they are assembled inline with the finished bicycle. Imported components are set with their HS codes and lot tracking enabled. This gives you separate production orders per sub-assembly, full traceability from finished bike to imported component lot, and correct cost accounting at every BOM level.

How does Odoo handle imported components for cycle export in Bangladesh?

Imported components are received against Purchase Orders with HS codes recorded on the product. Enable lot tracking on all imported items — the lot number corresponds to your import shipment batch, and you record the Bill of Entry number in the lot notes. Landed costs (import duty, freight, clearing charges) are applied to receipts and distributed across components. When production consumes these lots, Odoo records the chain from finished bicycle → MO → component lots → import receipts — enabling the duty drawback traceability claim.

What HS codes apply to bicycle export from Bangladesh?

Finished bicycles export under HS 8712.00 (subcodes 8712.0010 children's, 8712.0020 mountain/road, 8712.0090 other). Key import component codes: frames/forks (8714.91), rims/spokes (8714.92), brakes (8714.94), saddles (8714.95), derailleurs/hubs/pedals (8714.99), tyres (4011.50), chains (7315.11). Enter HS codes in Odoo's product HS Code field — they appear on commercial invoices and packing lists for customs clearance at both import and export stages.

How do I track duty drawback for bicycle exports in Odoo?

Enable lot tracking on all imported components. Assign lot numbers that map to import shipment batches, and record the Bill of Entry number and duty amount in the lot notes. When production MOs consume these lots, Odoo records which import lots went into which bicycle MOs. After export, use Odoo's Traceability report (Inventory → Traceability) to trace from the export delivery back to the input component lots and their import receipts. This gives you the B/E numbers, duty amounts, and component HS codes needed for the Customs duty drawback application.