| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • eCommerce (website_sale) • Discuss (mail) • Website (website) |
| Lines of code | 3156 |
| Technical Name |
ecommerce_product_bundles |
| License | OPL-1 |
| Website | https://www.hexalian.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Inventory (stock)
• Invoicing (account) • eCommerce (website_sale) • Discuss (mail) • Website (website) |
| Lines of code | 3156 |
| Technical Name |
ecommerce_product_bundles |
| License | OPL-1 |
| Website | https://www.hexalian.com |
🎁 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
Type: Service Product
Shipping: Components ship individually
Stock Tracking: Component-level tracking
Best For:
- Digital product bundles
- Service packages
- Mixed product-service offerings
- Flexible delivery requirements
Type: Stockable Product
Shipping: Bundle ships as single unit
Stock Tracking: Bundle-level tracking
Best For:
- Pre-packaged product kits
- Gift sets and starter packs
- Assembly-required bundles
- Warehouse-managed inventory
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: support@hexalian.com
🌐 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)
E-commerce Product Bundles
Create and sell product bundles with automatic pricing, stock management, and flexible configuration for your Odoo e-commerce store.
Features
Virtual Bundles
- Non-shippable bundles where components are delivered individually
- Perfect for digital products or service combinations
- Components ship separately while customer pays bundle price
Physical Bundles
- Shippable product packs with integrated stock management
- Bundle ships as a single unit
- Stock tracked at bundle level
Automatic Pricing
- Set percentage discounts for bundle pricing
- Automatic price calculation based on component prices
- Real-time price updates when components change
Stock Management
- Real-time stock availability for bundle components
- Intelligent stock handling for both bundle types
- Stock warnings and notifications
Admin Interface
- Easy bundle management from backend
- Visual bundle configuration
- Component selection with quantities
Integration
- Proper handling of bundle lines in sale orders
- Correct invoice generation
- Stock move integration
Configuration
Creating a Bundle
- Go to Inventory → Products
- Click Create
- Fill in product details
- Check Is Bundle
- Select Bundle Type (Virtual or Physical)
- Set Bundle Discount (%)
- Add Bundle Items with quantities
- Save
Bundle Types
Virtual Bundle
- Product Type: Service
- Components ship individually
- No stock tracking for bundle itself
- Stock checked for each component
Physical Bundle
- Product Type: Stockable Product
- Bundle ships as one unit
- Stock tracked for bundle
- Components consumed when bundle is sold
Usage
For Customers
Bundles appear in the shop with:
- Special bundle badge
- Discounted price
- Original price (crossed out)
- Savings amount
- List of included products
For Administrators
Sale Orders
- Bundle appears as main line
- Components shown as sub-lines
- Only bundle price charged
- Components have zero price
Invoices
- Bundle line with full price
- Component details in description
- Clean invoice presentation
Stock Moves
- Virtual: Components create stock moves
- Physical: Bundle creates stock move
Technical Details
Models
- product.template - Extended with bundle fields
- product.bundle.line - Bundle component lines
- sale.order.line - Bundle line handling
- account.move.line - Invoice line handling
Key Fields
- is_bundle - Marks product as bundle
- bundle_type - Virtual or Physical
- bundle_discount - Discount percentage
- bundle_items - One2many to bundle lines
- min_qty - Minimum purchase quantity
Stock Logic
Virtual Bundles:
# Check each component stock
for component in bundle.bundle_items:
if component.product_id.type == 'product':
check_stock(component.product_id)
Physical Bundles:
# Check bundle stock check_stock(bundle.product_variant_id)
Pricing Example
Component A: €10 x 2 = €20 Component B: €15 x 1 = €15 Total: €35 Discount: 20% Bundle Price: €28 Savings: €7
Compatibility
- Odoo 17.0
- Community and Enterprise editions
- Compatible with standard Odoo modules
Dependencies
- base
- web
- website_sale
- stock
- sale_stock
- account
License
OPL-1 (Odoo Proprietary License v1.0)
Credits
Developed by Hexalian
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