Sale Kit Components
by Odoo DevHouse https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse$ 130.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Manufacturing (mrp)
• Sales (sale_management) • Inventory (stock) • Discuss (mail) • Invoicing (account) |
| Lines of code | 407 |
| Technical Name |
kit_component_sale |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Manufacturing (mrp)
• Sales (sale_management) • Inventory (stock) • Discuss (mail) • Invoicing (account) |
| Lines of code | 407 |
| Technical Name |
kit_component_sale |
| License | OPL-1 |
| Website | https://apps.odoo.com/apps/modules/browse?author=Odoo%20DevHouse |
| Versions | 18.0 19.0 |
BoM Kit Components for Sales Quotations & Orders
Expand Bill of Materials components inline in quotations and sales orders - color-coded by depth, portal-ready, and PDF-aware. Informational only: zero impact on invoicing or stock.
When a sales order contains kit products with a Bill of Materials, Odoo shows only the kit line. Customers receive a quotation with no visibility into what components they are actually getting.
- Sales reps must manually list components in order notes - slow and error-prone
- Customers ask "what exactly is included?" on every quotation - repeated back-and-forth
- No visibility into sub-components when kits are nested inside other kits
- Component quantities change when BoM is updated - manual notes go stale immediately
- Portal customers see no component breakdown - trust gap at sign-off
- PDFs lack component detail - printed quotations are incomplete
This module adds three header buttons - Expand BoM, Refresh BoM, and Hide BoM - to every quotation and sales order. Click Expand BoM and every kit line immediately gets its BoM components injected below it as read-only, color-coded rows. Depth 1 components appear in blue, depth 2 in orange, and deeper levels in purple. Component lines carry zero price and zero taxes - they are purely informational and never affect invoicing or stock. Customers can also toggle component visibility directly on the customer portal.
- 3 Header Buttons - Expand BoM, Refresh BoM, and Hide BoM appear on every quotation and sales order
- Color-Coded Depth - depth 1 = blue, depth 2 = orange, depth 3+ = purple
- Configurable Max Depth - set 1â10 levels in Sales settings; default is 1
- Variant-Aware Filtering - uses Odoo's to respect product variant BoM applicability rules
- Zero Invoicing Impact - component lines are excluded from invoice status computation and qty-to-invoice
- Zero Stock Impact - component lines are skipped during stock rule launch; no unwanted transfers
- Customer Portal Toggle - customers click "Show Kit Components" on their portal order page (state independent of backend)
- PDF Support - components print below each parent line with color, hierarchy indentation, and blank monetary cells
- All BoM Types - compatible with Manufacture, Subcontracting, Kit, and By-Products BoM types
- sale_mrp Compatible - works alongside sale_mrp and sale_subcontracting with no conflicts
- Multi-Company Safe - BoM lookup respects the order's company context
- Read-Only Component Lines - component rows cannot be edited or invoiced; they exist only for transparency
1. Open a Quotation - See the Three BoM Buttons
The Expand BoM, Refresh BoM, and Hide BoM buttons appear automatically above the order lines on every quotation and confirmed sales order. No configuration is required to start using them.
2. Click "Expand BoM" - Components Appear Instantly
Clicking Expand BoM reads the Bill of Materials for every kit product on the order and injects the components as indented rows below each parent line. Quantities are scaled to match the ordered quantity and BoM factor automatically.
3. Color-Coded by Depth - Blue, Orange, Purple
Component rows are color-coded and italicised so they are visually distinct from sellable lines. Blue = depth 1 direct components. Orange = depth 2 sub-components. Purple = depth 3 and deeper. Unit price, taxes, discount, and subtotal cells are intentionally left blank.
4. Click "Hide BoM" - Components Removed Cleanly
Hide BoM removes all component lines instantly, leaving the order exactly as it was before expansion. Use Refresh BoM any time the Bill of Materials changes - it hides the old components and re-expands with the latest BoM data in one click.
5. Configure Maximum Depth in Sales Settings
Go to Sales -> Configuration -> Settings and find the Sale Kit Components section. Set the Maximum BoM Expansion Depth (1â10) to control how many sub-levels are expanded. The setting applies company-wide and takes effect on the next Expand or Refresh action.
6. Customer Portal - "Show Kit Components" Toggle
Your customers see a Show Kit Components button on their portal order page. The portal state is independent of the backend expansion - customers can reveal or hide components without affecting the sales order. The toggle works via a simple URL parameter show components=1).
7. Portal Components View - Color-Coded for Customers
When the customer clicks Show Kit Components, a component table appears below the order lines. Each parent kit is shown as a section header; its components are listed below with depth arrows and the same color coding as the backend view. The totals section is unaffected - component quantities are displayed but not priced.
Made-to-Order Manufacturers
Show customers exactly which raw materials and sub-assemblies go into their order - builds confidence and reduces post-sale queries.
Kit & Bundle Sellers
Display the full contents of a bundle on the quotation. Customers see components without needing a separate product description sheet.
Subcontracting Workflows
Expose multi-level nested BoMs to procurement teams so they can verify component availability before confirming the order.
Detailed Quotations
Send PDF quotations that include the full component breakdown - a professional touch that differentiates you from competitors using plain line-item quotes.
Dynamic BoM Updates
When engineering updates a BoM, sales reps click Refresh BoM on the order to pull the latest components - no manual editing required.
Internal Sales Review
Sales managers expand BoMs during order review meetings to verify component quantities and margins before approving the quotation.
Faster Quotation Sign-Off
Customers see the component breakdown directly on the portal - fewer clarification emails before they approve and pay.
Zero Invoicing Risk
Component lines are completely excluded from invoice status and stock rules - you get full transparency with absolutely no financial side effects.
Always Up-to-Date Components
Refresh BoM pulls the latest component data in one click - no stale manual notes when engineering changes a BoM mid-deal.
Professional PDF Quotations
Printed quotations automatically include the component hierarchy with color formatting - a polished deliverable that stands out.
Step 1 - Set Maximum Depth (Optional)
Go to Sales -> Configuration -> Settings -> Sale Kit Components. Set Maximum BoM Expansion Depth to the number of sub-levels you want expanded (1â10). The default of 1 shows only direct components. Leave it at 1 for simple kits; increase it for nested multi-level BoMs.
Step 2 - Open a Quotation or Sales Order
Navigate to Sales -> Quotations or Sales -> Orders. Open any quotation or confirmed order that contains kit products with a Bill of Materials. The three BoM buttons appear above the order lines on the Order Lines tab.
Step 3 - Click "Expand BoM"
Click Expand BoM. Components are read from the Bill of Materials and inserted as rows below each parent line, indented with â³ arrows and color-coded by depth. Quantities are scaled to match the ordered quantity and the BoM's production quantity factor.
Step 4 - Send the Quotation or Print the PDF
Send the quotation by email as normal. Your customer receives an email and portal link. On the PDF, component rows appear below each kit line with their name, quantity, and UoM. Price columns are intentionally blank - components are for reference only.
Step 5 - Customer Views Components on the Portal
The customer's portal page shows a Show Kit Components button above the order table. Clicking it reveals the component breakdown, grouped by parent kit with color-coded depth rows. The portal toggle is independent of the backend state - customers can explore components without any change to the saved order.
Step 6 - Refresh or Hide as Needed
If the BoM changes, click Refresh BoM to replace all component lines with the latest data. Click Hide BoM to remove component rows entirely and restore the clean order view. Neither action affects invoicing, stock moves, or totals.
Pro Tip - Depth Colour Legend
Blue rows are direct (depth 1) components of the kit. Orange rows are sub-components (depth 2) of those components. Purple rows are depth 3 and beyond. Increasing Maximum BoM Expansion Depth in settings reveals more levels.
Need Help or Want a Custom Feature?
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module