Product Bundles & Kits - Combo Deals for Odoo
Create and sell product bundles with automatic pricing and intelligent stock management (Odoo 17)
🎁 Product Bundles
Create and Sell Product Bundles with Automatic Pricing and Stock Management
Complete bundle solution for Odoo e-commerce. Sell product bundles with automatic discount calculation, intelligent stock tracking, and seamless integration with sale orders and invoices.
Key Features
Everything you need for powerful product bundles
🌐 Virtual Bundles
Create non-shippable bundles where components are delivered individually. Perfect for digital products, service combinations, and mixed product-service offerings.
- ✓ Components ship separately
- ✓ Service-type product handling
- ✓ Individual component tracking
- ✓ Flexible fulfillment options
📦 Physical Bundles
Shippable product packs with integrated stock management. Bundle ships as a single unit with bundle-level stock tracking.
- ✓ Single shipment unit
- ✓ Bundle-level stock tracking
- ✓ Stockable product type
- ✓ Warehouse ready integration
💰 Automatic Pricing
Set percentage-based discounts and let the system automatically calculate bundle prices based on component values.
- ✓ Percentage discount configuration
- ✓ Real-time price updates
- ✓ Savings calculation & display
- ✓ Dynamic price computation
📊 Intelligent Stock Management
Real-time stock availability for both bundle types with component-level tracking and automatic stock status updates.
- ✓ Component stock tracking
- ✓ Real-time availability checks
- ✓ Stock warnings & alerts
- ✓ Maximum quantity calculation
⚙️ Easy Backend Management
Intuitive backend interface for creating and managing bundles with visual component builder and comprehensive settings.
- ✓ Visual bundle builder
- ✓ Component selection & quantities
- ✓ Discount configuration
- ✓ Product variant management
🔗 Complete Integration
Seamless integration with Odoo's sale order, invoice, and stock management systems.
- ✓ Sale order bundle handling
- ✓ Invoice generation with components
- ✓ Stock move automation
- ✓ Reporting & analytics support
Bundle Types Explained
Beautiful Frontend Display
Professional product presentation for your customers
🎨 Bundle Information Widget
Comprehensive bundle display on product pages showing all components, pricing, savings, and stock availability:
- Bundle Header: Clear badge with discount percentage
- Pricing Breakdown: Regular price vs. Bundle price with savings highlight
- Component List: Visual display of all included products with images, quantities, and individual stock status
- Stock Status Alert: Real-time availability indicator with color-coded messaging
- Call-to-Action: Prominent "Add to Cart" prompt for bundle
🏷️ Shop Listing Badge
Bundles are clearly identified in product listings with a distinctive yellow "Bundle" badge, helping customers identify special offers at a glance.
🛒 Shopping Cart Display
Bundle components are elegantly displayed under the main bundle line in the cart, showing customers exactly what they're getting:
- Main bundle line with total price
- Expandable component list with quantities
- Clean, hierarchical display
- No duplicate price calculation
Technical Excellence
Built for performance, reliability, and maintainability
Core Features
- Product Model Extension: Clean inheritance of product.template with bundle fields
- Bundle Line Management: Dedicated model for component configuration
- Stock Integration: Intelligent stock checking for both bundle types
- Price Computation: Automatic pricing with discount calculation
- Sale Order Handling: Parent-child relationship for bundle components
- Invoice Integration: Proper invoice line creation with bundle details
- Stock Movement: Correct stock moves based on bundle type
- Validation: Comprehensive constraints and checks
File Structure
ecommerce_product_bundles/
├── models/
│ ├── product_bundle.py # Bundle logic
│ ├── sale_order.py # Order handling
│ ├── account_move.py # Invoice integration
│ └── __init__.py
├── controllers/
│ ├── product.py # Bundle detail pages
│ ├── stock.py # Stock operations
│ ├── stock_check.py # Stock API
│ └── __init__.py
├── views/
│ ├── product_bundle_view.xml
│ ├── website_templates.xml
│ └── sale_order_report_bundle.xml
├── static/
│ └── src/
│ ├── css/
│ │ └── bundle.css
│ └── js/
│ ├── bundle_concatenated_text_fix.js
│ └── bundle_form_translations.js
├── security/
│ └── ir.model.access.csv
└── i18n/
├── en.po
└── es.po
Advanced Capabilities
📋 Stock Validation
Real-time stock checks ensure bundles can only be purchased when all components are available. Automatic maximum quantity calculation.
🔄 Quantity Updates
When bundle quantity changes in cart, all component quantities update automatically. Maintains correct ratios throughout order lifecycle.
📊 Reporting Ready
Bundle sales are properly tracked in all reports. Component details included in sale order and invoice PDFs for complete transparency.
🚫 Validation Rules
Prevents recursive bundles, duplicate components, and invalid configurations. Ensures data integrity at all times.
🎯 Smart Caching
Performance-optimized stock calculations with intelligent caching to reduce database queries and improve page load times.
🌍 Multilingual
Full English and Spanish translations included. All frontend and backend texts are translatable for global commerce.
📸 Module Screenshots
See how Product Bundles works from configuration to delivery
⚙️ Backend Configuration
General Settings & Frontend Personalization
Configure bundle-related settings including stock thresholds, display options, and frontend customization. The General Settings section allows you to enable or disable the bundle feature globally, while the Frontend Personalization section lets you customize how bundles appear in your store.
Stock Management Settings
Control stock management behavior for bundles, including low stock thresholds and availability alerts. Configure how the system handles stock calculations for both physical bundles (bundle-level tracking) and virtual bundles (component-level tracking).
📦 Physical Bundle Configuration
Backend Bundle Configuration (Physical Type)
Create and configure physical bundles in the backend. The Bundle Configuration view shows:
- Bundle Type: Set to "Physical" for stockable bundles
- Bundle Discount: Define the discount percentage applied to the bundle
- Bundle Items: Add component products with their quantities
- Inventory Tracking: Physical bundles appear in inventory as stockable products
- Automatic Pricing: Bundle price is automatically calculated based on component prices and discount
Frontend Bundle Display (Physical)
Professional frontend widget showcasing physical bundles on your e-commerce store:
- Bundle Badge: Clear "Bundle" indicator with discount percentage
- Pricing Breakdown: Regular price vs. Bundle price with savings highlighted
- Component List: Visual display of all included products with images and quantities
- Stock Status: Real-time availability indicator for the bundle
- Add to Cart: Prominent call-to-action button
Shopping Cart Display
When customers add a bundle to their cart, they get a clear view of what they're purchasing:
- Bundle Line: Main bundle product with total price
- Component Details: Descriptive text showing quantity and name of each product in the bundle
- Clear Hierarchy: Bundle components are displayed under the main bundle line
- Transparent Pricing: Customers see exactly what they're paying for
Sale Order View
Bundle orders are clearly structured in the sales order view:
- Bundle Header: Main bundle product line with bundle name and total price
- Component Lines: Individual products included in the bundle (price = 0 to avoid double-counting)
- "Included in" Label: Each component shows which bundle it belongs to
- Clear Documentation: Sales team can see exactly what's being sold
- Order Line Details: Complete breakdown for order fulfillment
Delivery Screen (Physical Bundle)
Physical bundles ship as a single unit in the delivery process:
- Bundle as One Item: The entire bundle is treated as a single shippable product
- Inventory Management: Stock is tracked at the bundle level, not individual components
- Simplified Picking: Warehouse staff picks the pre-packaged bundle
- Single Delivery Line: Clean delivery documentation showing the bundle product
Delivery Confirmation
When validating the delivery, the system clearly shows bundle composition:
- "This bundle includes": Clear header indicating bundle contents
- Component Breakdown: List of all products included in the bundle
- Delivery Validation: Confirmation before completing the shipment
- Documentation: Complete record of what was delivered
Invoice View
Bundle invoices provide complete transparency for customers and accounting:
- Bundle Line Item: Main bundle with final price after discount
- Component Details: All included products listed for clarity
- Accurate Accounting: Proper revenue tracking and reporting
- Professional Presentation: Clean invoice format for customers
🌐 Virtual Bundle Configuration
Backend Bundle Configuration (Virtual Type)
Virtual bundles are configured similarly to physical bundles, with key differences:
- Bundle Type: Set to "Virtual" for non-shippable bundles
- Service Product: Virtual bundles are service-type products
- Component Shipping: Each component ships individually
- Stock Tracking: Stock is checked at the component level
- Flexible Fulfillment: Perfect for mixed product-service offerings or digital products
- Same Discount System: Percentage-based discount calculation
Frontend Bundle Display (Virtual)
Virtual bundles are displayed beautifully on the frontend with the same professional widget:
- Consistent UI: Same visual treatment as physical bundles
- Component-Level Stock: Stock status reflects individual component availability
- Clear Bundle Type: Customers understand what they're purchasing
- Full Product Details: All components shown with images and descriptions
Delivery Screen (Virtual Bundle)
Key Difference: Virtual bundles show individual component products in the delivery screen, not the bundle itself:
- Individual Products: Each component appears as a separate delivery line
- Component-Level Tracking: Stock is managed for each product individually
- Flexible Delivery: Components can be shipped separately or at different times
- Bundle as Container: The virtual bundle acts as a logical container for pricing, but physical fulfillment is done at the component level
- Perfect for Services: Ideal when products need individual attention or when mixing physical and digital/service products
Ideal Use Cases
- 🎮 Gaming Starter Kits: Bundle gaming mouse, keyboard, headset, and mouse pad at a discounted price
- 📷 Photography Sets: Camera body + lens + bag + memory card as a complete package
- 🎁 Gift Sets: Curated product collections for holidays and special occasions
- 🏠 Home Office Bundles: Desk, chair, lamp, and accessories sold together
- 👶 Baby Starter Packs: Essential items for new parents bundled with savings
- 🍽️ Kitchen Bundles: Cookware sets, utensils, and accessories
- 💼 Professional Kits: Industry-specific tool and equipment packages
- 📚 Educational Bundles: Course materials, books, and digital content combined
- 🎨 Craft & Hobby Sets: All necessary supplies for specific projects
- 🔧 Maintenance Packages: Service bundles with mixed products and services
How It Works
🛠️ Setup Process
- Install the module from Apps menu
- Go to Sales → Products → Products
- Create or edit a product
- Check "Is Bundle" checkbox
- Select bundle type (Virtual or Physical)
- Add components in the Bundle Items tab
- Set quantities for each component
- Configure discount percentage
- Save and publish to website
🔄 Order Processing Flow
- Customer adds bundle to cart
- System creates parent bundle line
- Component lines auto-generated (price = 0)
- Order confirmation shows all items
- Invoice displays bundle with component details
- Virtual: Components ship individually
- Physical: Bundle ships as single unit
- Stock moves created accordingly
- Delivery process completes
📝 Real-World Example
Bundle Components
- 🖱️ Gaming Mouse × 1 → $50.00
- ⌨️ Gaming Keyboard × 1 → $80.00
- 🎧 Gaming Headset × 1 → $65.00
- 🖱️ Mouse Pad × 1 → $15.00
Pricing Calculation
- Individual Items Total: $210.00
- Bundle Discount: 20%
- Bundle Price: $168.00
- Customer Saves: $42.00
Easy Installation
- Copy the
ecommerce_product_bundlesfolder to your Odoo addons directory - Restart your Odoo server
- Go to Apps → Update Apps List
- Search for "Product Bundles"
- Click Install
- Module is ready to use - no additional configuration required!
Requirements
System Requirements
- Odoo Version: 17.0 (Community or Enterprise)
- Python: 3.8+
- Database: PostgreSQL 12+
Module Dependencies
base- Odoo base moduleweb- Web interfacewebsite_sale- E-commerce functionalitystock- Inventory managementsale_stock- Sales & stock integrationaccount- Accounting & invoicing
Support & Updates
Professional support and lifetime updates included with your purchase
📧 Email Support: [email protected]
🌐 Website: https://www.hexalian.com
📚 Documentation: Comprehensive user guide included with module
- ✓ Free lifetime updates
- ✓ Bug fix guarantee
- ✓ Email support
- ✓ Installation assistance
- ✓ Configuration guidance
Product Bundles v1.0.0 | Developed by Hexalian LLC
License: OPL-1 (Odoo Proprietary License)
Before You Buy
- Confirm your Odoo version: v17, v18, v19.
- Review module scope carefully to validate your exact use case.
- Plan installation on staging first, then deploy to production.
- Need help evaluating fit? Email [email protected].
Secure checkout · No account required
Download link sent to your email after payment. Lost your link?
Powered by Stripe
- 100% source code included
- Lifetime access to download
- Odoo 17 & 18 & 19 supported
- Email delivery (72h link)
- Sold as-is under OPL1 — all sales final