# Bundle products

**A bundle product is essentially a product that represents an empty bundle. Let's say a 'new black starter kit'. The bundle product then has actual products linked to it, which users can then choose to add to the bundle. These bundles are totally up for customization to suit your needs.**

Bundle products can be created in ** Admin Suite**, which we will go over here, or using our services.

We always recommend making use of our services in order to set up a direct relation between your golden record and your EVA products. Even for bundles.

## Bundle types and behavior

There are two types of bundles: **Promotion** and **Configurable**.

### Promotion type bundle

A promotion bundle in EVA is handled as a bundle product that has a price of zero when part of an order however, promo bundles are configured with a price. The configured price on a promo bundle is then used for calculation purposes in the discount engine (see explanation below).

The products within the bundle are expected to have a price as well. That price is used to determine the discount or price correction on the bundle product.

#### Calculation behavior with bundle type Promotion

EVA needs to first determine the price of the main bundle product. If this price is lower then or equal to zero, EVA will not perform a bundle calculation and will leave all products within the bundle as is. However, if the outcome is greater than zero, EVA will check all product bundle lines on the attached order, against that of the main bundle product. Prices on the products that can be selected in the bundle are expected to be available.

Some thing to keep in mind though that influences this calculation, is the type of product bundle line. Those are 3 types, as follows:

**Required**: The line is required to be configured in the bundle and the price is part of the bundle.**Optional**: The line is optional to the bundle and will not be discounted.**OptionalIncludedInPrice**: The line is optional, but is included in the price of the bundle, so there could be a price difference.

EVA then loops through all the **Required** and **Optional** bundle lines. If the bundle line has a default selected, EVA will calculate the difference between the default product, the selected product, and sum those up for a total of all the differences. If the difference is below zero, then it's a price correction.

Example: My bundle product is priced at €10 and contains the following products:

- Product a: €5 (Required)
- Product b: €6 (OptionalIncludedInPrice)
- Product c: €2 (Optional)

If this is the configured bundle, my total amount would be €12 (the bundle price of €10 and the €2 of Optional Product c). This would mean that:

- €2 is the discount if the optional product c is added since it is not part of the bundle price.
- €1 is the discount if the optional product c is not added (Product a and b = €11 minus the €10 (the bundle price)).

Now let's say product a is switched with product x, and that product x is priced at €6. My total amount would then still be €12 (the bundle price of €10 and the €2 of Optional Product c). This would mean that:

- €2 is the discount if the optional product c is added since it is not part of the bundle price.
- €2 is the discount if the optional product c is not added (Product x and b = €12 minus the €10 (the bundle price)).

Now lets say that product x is switched back to a, and product b is removed (since it's optional). In this scenario, my calulation will revert itself back because the bundle is still priced at €10. The total would still be €12. This would mean that:

- €5 is the discount (in this case called Bundle Price correction), because the total of product a is €5 minus the €10 (the bundle price) is (€5).
- €2 is the discount if the optional product c is added since it is not part of the bundle price.

Now, assume product c as well is removed. In this scenario, the total will become €10, because the additional €2 of Product c is gone.

In sum, discount/promotion bundles are always calculated towards the main bundle product price i.e. the €12 in our examples here.

### Promotion type Configurable

A configurable bundle is handled as a bundle product that has a price on the order that is configured for it. This price is also calculated in the order amount. The products within the bundle are expected to have a price as well, but the price on the order could be zero.

#### Calculation behavior with bundle type Configurable

The type of product bundle line also influences calculations for Configurable product bundles. Here are the 3 types and their respective caluculation behavior:

**Required**: In a configurable bundle a default selection can be set, which has a certain value. As long as the selected option has the same (or lower) prices than the default, the price of the product on the order will remain zero. But when you select an option with a higher price, the price of the selected product on the order will become the difference of the price from the default vs the price of the selected. This will never read negative therefore, if indeed a cheaper option is the scenario, then the price will remain zero.

**OptionalIncludedInPrice**: Prices of those products will always be zero regardless of the default and the price differences.

**Optional**: Those are treated as regular order lines, so the price configured for the product is the price that is calculated on the order.

## Creating bundle products

In the ** Products** module of Admin Suite, we have a

**.**

*Product bundles chapter*In order to be able to access this chapter, you need the **ProductBundles** permission.

Here you can create product bundles, which is a three-step process.

### Basic bundle information

Your bundle needs at least a ** Name** and a

**. Optionally, you can include a**

*BackendID***or a**

*Description***.**

*CustomID*### Pricing

Use this pane to specify prices for your bundle. You can select a pricelist and add a price for your bundle to that pricelist from this overview.

### Product sets

Now for the fun part: the sets in the bundle.

A set essentially represents a **'choice'**. In this example, we have a set which we called 'Stickers'. This set contains three products, which reflect three possible choices. Adding only one product will allow for only that product to be selected for the set. Adding a configurable product will make all of its children available choices.

The first field is called ** Usage of set**. Here we select whether the set is a mandatory part of the bundle or of it is 'upsell'. Selecting upsell will make this set optional in the bundle selection.

Additionally, we can check ** Allow multiple options** to allow for choosing more than one sticker here. Checking that box will show an additional field where we can specify the maximum number of stickers to be chosen.

Now, if we were to make this sticker set a mandatory choice, we would have to specify a 'default product' as well. This represents you fallback choice of some sorts.

When selecting ** Upsell**, the price of the chosen items is not included in the bundle prices, but their individual product prices are added to the bundle price.