Bundle Products

Introduction

If you want to offer several products together, appero quote offers you three different options:

Name

Function

Usage

Name

Function

Usage

https://factory42.atlassian.net/wiki/spaces/apperoquotedocumentation/pages/3340144209

When inserting the product, additional suitable products are displayed for selection in a separate tab. The selection of an additional product can be mandatory, but a fixed product combination can hardly be specified.

Serves mainly for better user guidance in the quoting process. Add-on products behave as independent products after insertion into the quote.

https://factory42.atlassian.net/wiki/spaces/apperoquotedocumentation/pages/3340145409

Fixed product combinations can also be saved in a brick and thus be transferred to the quote with one click. Different promotion prices can also be defined in a brick.

Bricks do not offer choices like add-on products. The individual components are calculated independently of each other, there is no hierarchy within the combined products.

Bundle Products

Bundles are fixed product combinations consisting of a parent product and one or more child products, which are also mutually dependent in the quote and are offered at a total price.

Bundle products are suitable if I want to offer a fixed (promotional) package that the user should use as is in the quoting process. This kind of price dependencies between parent and child products can neither be mapped by Bricks nor by add-on products.

This chapter is about the configuration and usage of the bundle products.

Configuration

Bundle products are created in the same way as AddOn products in the sf42_quotefx__sf42_ProductEntry__c " AddOn Product" object.

Select the type sf42_quotefx__sf42_Type__c "Component" or "Accessory".
The product hierarchy is created using lookup fields on existing products. Thus, a bundle product consists of a parent product - sf42_quotefx__sf42_ProductID1__c - and a child product - sf42_quotefx__sf42_ProductID2__c.
For each child product, you create a record as follows:

Object: sf42_quotefx__sf42_ProductEntry__c

Object: sf42_quotefx__sf42_ProductEntry__c

Field Name

API-Name

Field Type

Used for Type

Explanation

Addon Product

Name

Text

AddOn

Component

Accessory

Internal name. Not used in the quoting process.

Parentproduct

sf42_quotefx__sf42_ProductID1__c

Lookup (Product2)

AddOn

Component

Accessory

Sets the parent product, the head of the bundle.

Childproduct

sf42_quotefx__sf42_ProductID2__c

Lookup (Product2)

AddOn

Component

Accessory

Sets the child product.

The configuration defined below refers to the child product in a bundle product (type 'Component' and 'Accessory')

Type

sf42_quotefx__sf42_Type__c

Picklist

AddOn

Component

Accessory

  • AddOn (Default): The following fields do not apply to this selection.

  • Component: The quantity of the child product depends on the quantity of the parent product.

  • Accessory: The quantity of the child product can be freely edited depending on the setting.

Position

sf42_quotefx__sf42_Position__c

Number (18,0)

Component

Accessory

Set the order of multiple child products.

Display Options

sf42_quotefx__sf42_DisplayOptions__c

Picklist

Component

Accessory

Specifies where the child product should be visible:

  • Everywhere (default)

  • Only in the quote editor

  • Only in PDF

(If the option "Only in PDF" is selected, the product can still be edited in the product detail dialog).

Override Primary Product Group

sf42_quotefx__sf42_OverridePrimaryProductGroup__c

Lookup (Product Group)

 

Component

Accessory

Select another primary or secondary product group for the child product.

These product groups can be used to define product properties, they are not used to create group sums or to arrange products in the quote.

 

Override Secondary Product Group

sf42_quotefx__sf42_OverrideSecondaryProductGroup__c

Discount

sf42_quotefx__sf42_Discount__c

Percent (4,2)

Component

Accessory

Set a discount for the child product.

Discount Not Editable

sf42_quotefx__sf42_DiscountNotEditable__c

Checkbox

Component

Accessory

If this checkbox is active, all discount and unit price columns in the quote are locked for editing. Discounts via product properties such as Bulk prices can still be assigned.

Ignore Bulk Price Rules

sf42_quotefx__sf42_IgnoreBulkPrices__c

Checkbox

Component

Accessory

If this checkbox is active, all bulk price rules for the child product will be ignored and custom discounts can be applied.

Required

sf42_quotefx__sf42_Required__c

Checkbox (Default: true)

AddOn

Component

Accessory

If this checkbox is active, the employee cannot remove the child product from the bundle.

Quantity

sf42_quotefx__sf42_Quantity__c

Number (16,2)

Component

Accessory

Set a default quantity for the child product.

Minimum Quantity

sf42_quotefx__sf42_MinimumQuantity__c

Number (16,2)

Accessory

Define a minimum or maximum quantity for the child product. The values are checked when you enter them in the editor.

Maximum Quantity

sf42_quotefx__sf42_MaximumQuantity__c

Number (16,2)

Accessory

Bundle calculation options

You set the basis of bundle calculation on the product record (product2) of the parent product in the "Calculation in Bundles" sf42_quotefx__SF42_CalculationInBundles__c field:

Either only the price of the parent product applies or the prices of the child products are added to the sum price. For details see below in the section "Opportunity products calculation".

Bundle products in quote

Bundle products are stored on the quote item in their individual components, recognizable by the object type sf42_quotefx__SF42_QuoLI_Typ__c.

Object: sf42_quotefx__SF42_GenLineItem__c

Object: sf42_quotefx__SF42_GenLineItem__c

Bundle component

Object Type sf42_quotefx__SF42_QuoLI_Typ__c

Reference to associated bundle components

Parent product

4

-

Child product

999

Reference to the "Bundle Parent”: sf42_quotefx__SF42_QuoLI_ParentQuoLi__c(Lookup to the associated quote item, i.e. this relation is valid in this quote, not parent at the product2 level).

Outline and numbering

As with AddOn products, the numbering of the subordinate products is based on the "Position number for child product items" setting (Setup Text addOnSubPos):

Bundle products in PDF

Please note that the order of bundle products cannot be changed manually in the quote editor. You will receive a corresponding message.

Also, you cannot currently influence the visibility of the columns of child products in the editor or via configuration. Please control this via the quote CSS using the following sample classes.

CSS pattern classes for the display of child products

To hide or visually modify cells at child products in the quote PDF, please control the individual columns via the CSS of the Style belonging to the quote template. You can simply add to the following sample classes as needed or customize them to your liking.

Hide Listprice column

.type999 .Listprice { visibility: hidden; }

Hide Quantity column

.type999 .Quantity { visibility: hidden; }

Hide Discount

.type999 .Discount { visibility: hidden; }

Hide Endprice

Hide Sumprice column

Hide separator line between child products

Show a column again

Here at the example of the Sumprice column:

Formatting adjustment

General adjustments of the formatting, e.g. font, font color, font size, can be defined analogously for each column. Here at the example of the list price column:

Bundle products in the Opportunity process

Calculation of the opportunity products and the opportunity amount

If you copy a quote with bundle products into the opportunity, the components will be stored as independent opportunity products.

The relation of a subordinate to its parent product is stored in the field "Bundle Parent" sf42_quotefx__SF42_BundleParent__c by means of a lookup to the corresponding opportunity product.

The calculation of each product is based on the settings on the parent product record in the "Calculation in Bundles" field:

Product2

sf42_quotefx__SF42_CalculationInBundles__c

Product2

sf42_quotefx__SF42_CalculationInBundles__c

Picklist value

Explanation

Calculation of the opportunity product

Use Parent Price

The prices of the child products are ignored for the price of the bundle.

In an Opportunity, only for the parent product the unit and sum price will be calculated, the child products will be shown with amount 0.

Child-to-Parent Rollup

The total prices of the child products add up to the unit price of the parent product (or are added to its existing unit price).

Each opportunity product is calculated separately, the parent product is issued with amount 0 or the proportional price if the price book entry is > 0.

In this way, the correct calculation of the opportunity amount is ensured at the same time.

Capabilities and limitations

The following is a list of basic possibilities and limitations when using bundle products.

Area

Explanation

Area

Explanation

Possible combinations

There can be no combination of add-on and bundle products. Similarly, nesting of bundle products, i.e. bundles as child products in a bundle, is not allowed.

Combination of subordinate products of Component type and Bundle Accessories in a bundle is also not supported.

Price dependencies

Price dependencies such as Price Calculation from Product Group or Product can only be considered within child products. Thus, the parent product cannot be used to calculate a child product, likewise products outside the bundle cannot refer to child products of a bundle for price dependencies and vice versa.

Product properties

All components of a bundle, i.e. parent and child products, can have “Product Properties with/without Price Influence”. Bulk prices are also taken into account in the calculation.

The calculation is then included in the total price depending on the bundle configuration.

MediaVelox

Currently, products with product properties from MediaVelox cannot be used in bundle products.

Summation in quote

Child products cannot be included individually in group totals. The bundle is only included in the totals with the total price and the product groups of the parent product.

Similarly, subordinate products cannot be used to calculate a total discount from a discount matrix.

Validation

If one of the child products does not have an active price book entry, the whole bundle will be disabled and cannot be added to the quote. The user will receive a corresponding notification message.

Product search

The product is found under the name of the parent product. The child products of a bundle can still be added to the quote as normal individual products via the product search.

VAT

Bundle products should currently only be created with a uniform VAT rate, as different VAT rates on parent and child products of a bundle are currently not supported. In this case, use the alternatives Bricks or AddOn products.

Opportunity Process

Currently, the quote process with bundle products cannot be started from the opportunity product search yet. Please add the products in the quote editor first.

Lower Price Limit

The so-called lowsell price, which is used, for example, to define lower price limits in the approval process, is only calculated normally for the parent product of a bundle, taking into account all total discounts. For the child products, the so-called BuyPriceDistributor is entered, the proportional value of the sum discounts is ignored here.

Particularities in the calculation

The checkbox "List Price Is Editable" has no function for the parent product of a bundle if the calculation is set to "Child-to-parent Rollup".

Apex Hooks

The external pricing, so called Apex Hooks, can currently not be applied to bundle products.

https://factory42.atlassian.net/wiki/spaces/apperoquotedocumentation/pages/3795681332