Odoo Manufacturing · CTO · ETO
Build fully custom Bills of Materials directly from a Sales Order line, with variant support, pre-filled components from your standard BOM, and a customer-ready quotation PDF, without ever leaving the sales flow.
Manufacturing
Bill of Materials
Configure to Order
Engineer to Order
More Than 150+ Brands
In standard Odoo, every Sales Order line must reference an existing product with an existing Bill of Materials. For businesses that manufacture standard, off-the-shelf products, that works fine. But for custom manufacturers, window fabricators, sheet metal shops, structural steel businesses, precision engineering firms, every order is different. The customer specifies dimensions, materials, finishes, and tolerances that rarely match anything already in the system.
The result is a workflow where every custom quote triggers an engineering interrupt: the salesperson stops, sends specs to the engineering or production team, and waits hours (sometimes days) for a new product and BOM to appear in the system before they can confirm the order. Competitors who respond faster win the business.
The Dynamic BOM from Sales Order module by Ahex Technologies solves this at the source. A Configure BOM button sits directly on the Sales Order line. The salesperson clicks it, a wizard opens with standard BOM components pre-filled, they adjust only what the customer changed, and when the order is confirmed a real mrp.bom record is automatically created in Odoo, immediately visible to manufacturing. The salesperson then prints a professional Custom BOM Quotation PDF and sends it to the customer. Total time: under 5 minutes.
The time difference between the old workflow and this module is not marginal. For businesses handling 10–50 custom orders per week, this gap represents hours of lost productivity every single day.
Without This Plugin
2–5 hrs
With Dynamic BOM
< 5 min
| Step | Old Workflow (Without Plugin) | New Workflow (With Plugin) |
|---|---|---|
| 1 | Stop sales process, email engineering with specs | Add product to SO line. 30 seconds |
| 2 | Engineer creates new product in Odoo (30–60 min) | Click Configure BOM, wizard opens instantly |
| 3 | Engineer builds BOM with correct components (1–3 hrs) | Standard components pre-filled; modify only what changed, 1–2 min |
| 4 | Salesperson notified, returns to SO, links product manually | Save the spec, real mrp.bom is created automatically upon order confirmation |
| 5 | No standard custom quotation format, customer still waiting | Print Custom BOM Quotation PDF, share with customer in minutes |
| Total | 2–5 hours minimum per order | Under 5 minutes per order |
Wizard auto-loads your standard BOM lines when it opens. Salesperson only edits what the customer wants changed.
Select existing product variants or create new ones on the fly for your components inside the wizard.
Confirming the sales order automatically creates a real mrp.bom record linked to the SO line. Manufacturing sees it immediately, no manual entry required.
A dedicated print template shows product name, any special requirements or notes, and the full component table.
Customer asks for changes? Click Configure BOM again, edit, save, reprint the updated quotation. Done in under 2 minutes.
Every generated BOM is linked back to its origin Sales Order and line. Track any custom BOM straight back to the customer who requested it.
Generated BOMs are standard Odoo mrp.bom records, fully compatible with manufacturing orders, MRP scheduler, and procurement.
No new menus to navigate. The Configure BOM button lives on the SO line. Salespeople are productive from day one.
This module is built specifically for Configure-to-order (CTO) and Engineer-to-order (ETO) manufacturers where every customer order arrives with custom specifications. Here are the most common industries where the bottleneck this module solves shows up every single day
1 of 10
Quoting custom dimensions, glass thickness, frame material, and finish to residential and commercial customers in real time.
2 of 10
Where every frame, purlin, column, and gusset is sized to order and the component list changes with each project drawing
3 of 10
Building enclosures to specific frequency attenuation, material gauge, and dimensional specs per customer requirement.
4 of 10
Where every part is machined to drawing and the BOM lists specific raw material dimensions, heat treatment, and inspection requirements.
5 of 10
Who configure busbars, breakers, and enclosures to project-specific ratings and layouts.
6 of 10
Building to room dimensions, wood species, finish, and hardware specifications with a wide raw material matrix.
7 of 10
Producing parts to OEM drawings where material grade, tolerance, and surface treatment vary per customer and model.
8 of 10
Manufacturing cladding, canopies, louvres, and façade elements to project specifications.
9 of 10
Who assemble machines to customer process requirements, with sub-assemblies that change based on output capacity or material type.
10 of 10
Cutting, bending, and assembling products to customer drawings where no two BOMs are identical.
In custom manufacturing, the biggest bottleneck isn’t the shop floor, it’s the gap between the customer’s request and a confirmed BOM in the system. Dynamic BOM from Sales Order closes that gap completely.
Create an SO as normal. In Order Lines, add the base product template (e.g. "Window Panel"). You don't need a specific variant, just the product family.
The Configure BOM button (cog icon) appears on the SO line. Click it. A clean wizard opens as a popup with your standard BOM components already pre-filled.
Add any special requirements or notes in the notes section. Modify only the components the customer wants changed. Add new lines or remove what doesn't apply.
For your BOM components, select an existing variant or toggle "Create New Variant" to generate one on the fly, without navigating away from the wizard.
Click save to link the custom specification to the quote. When the Sales Order is confirmed, a real mrp.bom record is automatically created in Odoo.
Go to Print → Custom BOM Quotation. A professional PDF downloads with the full spec block and component table. Share directly with the customer.
The wizard reopens with existing data loaded. Make the changes, save, reprint. The previous BOM is retained in Odoo for audit purposes; the SO line updates to the latest version.
The printed quotation goes beyond a standard price list. It shows the customer exactly what will be built, giving them the confidence to approve faster and reducing back-and-forth revision cycles.
Company logo, SO number, date, salesperson name, and full customer address, exactly as in the standard Odoo quote.
Per configured line: clearly displays any special requirements or free-text notes associated with the custom BOM.
Full component list showing component name, description, quantity, and unit of measure, exactly what goes into manufacturing.
Subtotal, applicable taxes (GST, VAT etc.), and final total, fully integrated with Odoo's standard pricing and tax engine.
Standard SO lines without a custom BOM print exactly as they would in any normal Odoo quotation, the layout of existing lines is completely unchanged.
Generated BOM
Standard Template BOM
Customer Modifications
Replicating this functionality from scratch in Odoo MRP requires building a transient model wizard with dynamic component loading from an existing BOM, a variant selection mechanism at both template and component level, a BOM generation function that writes to mrp.bom and mrp.bom.line, a QWeb report template with conditional spec blocks, and a traceability link back to the originating SO line. For an experienced Odoo developer, that is typically 5–10 days of work including testing.
Give your sales team the ability to configure, generate, and quote custom BOMs in under 5 minutes, directly from the Sales Order, without waiting for engineering.
Hyderabad-based IT services company strengthens its Odoo practice to help small and mid-sized businesses migrate from legacy accounting tools to
Are you a retailer or have a running e-commerce business that uses Shopify and Odoo to manage your online sales
Odoo is one of the most popular and user-friendly ERP solutions. It has over 28 million active users. It was
No. A new BOM record is always created with the SO reference attached. The template BOM is never modified — it remains intact as the default starting point for the next order. You can run Configure BOM on 100 orders and the template never changes.
Yes. Each SO line has its own independent Configure BOM button and generates a completely separate custom BOM. A single sales order for 3 different custom window sizes will produce 3 distinct BOM records in Manufacturing.
The wizard opens with empty component lines and displays a yellow warning. The salesperson can add all components manually from scratch. Once saved, the generated BOM is still a fully valid Odoo mrp.bom record.
Each generated BOM is linked to a specific SO. For a repeat specification, the salesperson runs Configure BOM again — the standard template pre-fills, and they make the same modifications. Since only changed fields need touching, this is still a 1–2 minute exercise.
Yes. The module is fully compatible with both Odoo Community and Enterprise editions running version 19. It depends only on core modules available in both editions.
Any user with standard Sales and Manufacturing access can use the wizard. No additional permission groups or developer access is required.
Generated BOMs are standard mrp.bom records. When you run Manufacturing → Planning → Run MRP, custom BOMs are included in demand calculation exactly like any other BOM in the system. No special configuration is needed.
Forem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vulputate libero et velit interdum, ac aliquet odio mattis. Class aptent taciti sociosqu ad litora
Know more ➞
Forem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vulputate libero et velit interdum, ac aliquet odio mattis. Class aptent taciti sociosqu ad litora
Know more ➞
Forem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vulputate libero et velit interdum, ac aliquet odio mattis. Class aptent taciti sociosqu ad litora
Know more ➞
DEVELOPERS
YEARS IN OPERATION
GLOBAL CLIENTS
Start your digital transformation journey now and revolutionize your business