This page describes the different ways to sell products as bundles, kits, or packages in Norce Commerce. It explains the available approaches, their pros and cons, and implementation details. The goal is to help you choose the best method for your business and technical needs.
Norce Commerce supports several ways to offer bundled products. Each approach has unique benefits and trade-offs.
- Bundle Product Types: Create a product that represents a bundle or kit.
- Related Products: Present related products together and add them to the basket as a group.
- Promotions: Set up special promotions for products bought together.
You can also sell larger volumes of a single product using:
- Quantity Breaks: Offer lower prices for higher quantities.
- Recommended Quantity: Suggest or require specific purchase amounts (fixed or recommended).
Note: Use Fixed Recommended Quantity with care. Many marketplaces require that catalog prices match available purchase options.
The table below summarizes each method, with details, advantages, and disadvantages.
Solution | Details | Pros | Cons |
---|---|---|---|
Bundle Product Type | Use ManagedStructure, ManagedERPPackage, or ManagedERPPackageWithCalc product types. | - Real product in catalog - Pre-calculated prices - Exportable to marketplaces and channels | - High maintenance if you manage many packages and variants |
Product Relations | Use typed product relations to group products. | - Flexible - Less maintenance per package | - Requires more storefront development - Less visible in admin - Quantity not supported |
Promotion | Use "add product" and "select product" effects in promotions. | - Feature-rich - Flexible - Less maintenance | - Requires most storefront development - Invisible in admin - Not reusable between applications - May require many promotions |
Norce Commerce provides several product types for creating bundles. Each has a "managed" version (recommended) and an older, less functional version.
A ManagedStructure bundle is fully managed in Norce Commerce. External systems (ERP, WMS) do not need to know about the bundle. Norce calculates stock and reservations based on the bundle's children.
When to use:
If your ERP does not support bundles and you have fixed bundles with few or no choices.
Key Actions and Behaviors:
Action | Managed Version | Unmanaged Version |
---|---|---|
Create | Created in Norce (Admin UI or import). Prices calculated with Structure Calculation. | Same |
Product Integration | Not integrated to ERP, but can be sent to channels. | Same |
Enrichment | Children added manually in Admin UI. | Same |
Basket | Adding the bundle adds children automatically. Frontend can choose price display. | Acts as ordinary product; use InsertBasketItemWithChildren . Choose price display in implementation. |
Payment | Managed Adapters handle amounts. Bundle row has price 0 when sent to PSP if required. | No changes to basket when sent to PSP. |
Transactional Integration | Bundle row remains on order; recommended to remove bundle row and pass children to ERP for clarity. | Passes bundle and children as created in basket. |
Capture | Invoice sent to Norce; capture removes bundle row from PSP payment if needed. | Same |
Omni Concerns | Bundles can be sold in other channels; Norce can dress up order with children before integration. | Same |
Note: Some PSPs may behave differently. See adapter documentation for details.
A ManagedERPPackage is a bundle recognized by ERP and WMS. Norce does not calculate stock from children; this is handled by ERP/WMS.
When to use:
If your ERP supports bundles and you want to use that functionality.
Key Actions and Behaviors:
Action | Managed Version | Unmanaged Version |
---|---|---|
Create | Created in Norce or imported from ERP. Children can be added in UI or integration. Prices can use any method. | Same |
Product Integration | Integrated to ERP and other systems. | Same |
Enrichment | Children can be added in UI or integration (optional but recommended). | Same |
Basket | Adding the bundle adds children automatically. Frontend can choose price display. | Acts as ordinary product; use InsertBasketItemWithChildren . Prices must be manually adjusted. |
Payment | Managed Adapters handle amounts. Bundle row has price 0 when sent to PSP if required. | No changes to basket when sent to PSP. |
Transactional Integration | Bundle and children remain on order; recommended to remove children and pass only main row to ERP. | Passes bundle and children as created in basket. |
Capture | Invoice sent to Norce; capture removes children rows from PSP payment if needed. | Same |
Omni Concerns | Bundles can be sold in other channels. | n/a |
Note: Some PSPs may behave differently. See adapter documentation for details.
This type is similar to ManagedERPPackage, but Norce calculates stock from children and handles reservations.
Use this if your ERP supports bundles but reservations must be managed in Norce Commerce.
To implement bundles using product types in Norce Commerce:
- Add bundle creation to product integrations (optional).
- Present bundles in the frontend using
ListIncludedProducts
to fetch children for product detail views. - Map bundles correctly in transactional integrations, following recommended practices for ERP mapping.
Product relations allow you to create a bundle-like experience in the frontend. This approach requires some UI development but is low-maintenance once set up.
How it works:
- Define relation types for bundles and a product flag to signal bundle display in the frontend.
- Use
ListProductRelations
to fetch related products and display them as a bundle. - Optionally, use a promotion rule to apply discounts when certain products are bought together.
When to use:
For simple bundle presentations, such as selling accessories.
Action | Description |
---|---|
Create | Products are ordinary; relations can be created via integration, Admin UI, or automation. |
Product Integration | Both bundle and children are integrated with ERP. |
Enrichment | Texts can override defaults on relationships (via Norce Commerce Connect). |
Basket | Use InsertBasketItemWithChildren to add bundle to basket. No bundle price or quantity on relation. |
Payment | Same as ordinary basket. |
Transactional Integration | Same as ordinary basket. |
Omni Concerns | Other channels can use the same relationships to sell bundles. |
Promotions in Norce Commerce can create configurable bundles with rich UI experiences. This method requires more frontend development but offers maximum flexibility.
How it works:
- Create a promotion with requirement rules for primary bundle products.
- Use "add product" and "select products" effects to define bundle logic.
- Use
ListPromotionsByProduct
to fetch applicable rules for the frontend.
When to use:
For configurable bundles and advanced UI experiences.
Action | Description |
---|---|
Create | Promotion created in Admin UI; connect bundle product to children. |
Product Integration | Both bundle and children are integrated with ERP. |
Enrichment | Bundle rules set manually in promotion UI. |
Basket | Use InsertBasketItemWithChildren to add bundle; prices calculated by promotion rules. |
Payment | Same as ordinary basket. |
Transactional Integration | Same as ordinary basket. |
Omni Concerns | Promotion rules only apply in Norce Commerce basket and checkout; not available in external channels. |
- Quantity Breaks: Use for volume discounts on single products.
- Recommended Quantity: Use to suggest or require specific purchase amounts.