How bundles appear in the shop

Customers meet a bundle in three places: in the product list, on the product page and in the cart.

Product list

How does a bundle appear in lists and categories?

A badge marks products that have a bundle. The bundle itself is not rendered in lists, only on the product page.

The badge is controlled by the setting Show badge. Its text can be changed through the snippet dvsn-bundle.listing.badge.

Product page

Where on the product page does the bundle sit?

The position is chosen per bundle: in the product description across the full width, or compactly at the buy box below the add-to-cart button. Both positions can be used on one product at the same time.

Several bundles in the same position appear below one another in a shared block with a heading.

For the product description position, the product layout has to contain the standard element for description and reviews.

In the buy box position, the setting Position of the details decides whether the detail list sits above or below the buttons.

How is the bundle block built up?

From top to bottom: product slider, price block, buttons, detail list.

The slider shows one tile per component with:

  • An image – which one is controlled by the setting Show product image.
  • A quantity badge – such as "2x". For a quantity of one it can be hidden.
  • A plus sign – between the tiles, along with previous and next controls.

The names of the components link to their product pages in a new tab.

Which prices does the block show?

The sum of the individual prices as a strike-through price, the saving, and the price for the package.

The saving is shown differently per discount type: as a percentage, as a fixed amount or, for a fixed package price, as a calculated difference.

If the bundle contains a variant product whose variants differ in price, both prices are shown as from-prices.

Each component shows its individual price, and products with a unit of measure also show their base price.

All prices are recalculated by a storefront script on every change, without a server request. The preview calculates with the list price of the components; where tiered prices apply, the price in the cart is the one that counts.

If the discount is zero, the package acts as a recommendation without a price advantage.

How does the customer deselect components?

Only a selectable bundle shows checkboxes, and it shows them twice: on every slider tile and on every row of the detail list. The two stay in sync with each other.

The product the bundle is attached to has no visible checkbox and cannot be deselected.

Deselected components are greyed out and drop out of the calculation. Both price lines go down, including the strike-through price.

A complete bundle has no checkboxes at all.

How does the customer pick a variant inside the bundle?

If a component is stored as a variant parent, the detail list shows a select field with every variant and its price.

The order is controlled by the setting Sort variants.

If the product has a main variant, it is preselected. Otherwise the field sits on a disabled placeholder and the customer has to choose.

Components without variants are passed along invisibly.

What happens when the button is clicked?

It puts the complete package into the cart and opens the cart drawer.

It does not do so, and opens the detail list with a note instead, if a variant choice is still open or if every selectable component of a selectable bundle has been deselected.

Cart

How does a bundle sit in the cart?

As a container with the components expanded below it and its own clearly labelled discount line.

Container name
product name with a prefix, "Bundle - " out of the box
Discount line name
"Bundle Rabatt" out of the box
Product numbers
from the templates in the configuration
Quantity
changed on the container, components scale with it
Removing
only the whole bundle

If the stock of a component no longer suffices, the quantity is reduced or the bundle is removed, each with a message in the cart.

The labels come from the snippets dvsn-bundle.line-item-factory.bundle-prefix-label and dvsn-bundle.line-item-factory.discount-label and can be changed in the administration.

Frequently asked

Where does a bundle appear on the product page?

The display position is chosen per bundle, not per product: in the product description across the full width, or compactly at the buy box below the add-to-cart button. One product can use both positions at the same time, each as its own block with its own heading.

How is a bundle laid out on the product page?

First a product slider with one tile per component, with previous and next controls, a plus sign between the tiles and a quantity badge. Below it the price block and the buttons, plus the detail list, which starts collapsed or expanded depending on the setting.

Which prices does the bundle show?

The sum of the individual prices as a strike-through price, the saving and the bundle price. The saving appears as a percentage, as a fixed amount or, for a fixed package price, as a calculated difference. If the bundle contains a variant product with different prices, both prices are shown as from-prices. Every price is recalculated on each change without a server request.

What does a bundle look like in the cart?

As a container with the components expanded below it and its own clearly labelled discount line. The container carries the product name with a prefix, "Bundle - " out of the box, and the discount line is called "Bundle Rabatt" out of the box. Both labels can be changed through the snippets.

Can the customer remove a single component from the cart?

No. Only the whole bundle can be removed. The quantity selector on the container increases the bundle, and all components scale with it.

How does a customer see in the product list that a bundle exists?

Through a badge that marks products with a bundle in lists and categories. In addition, a note below the add-to-cart button points to the available packages. Both can be switched off.

What happens if a component is sold out or inactive?

That is decided by the setting "Behaviour when products are not available": the whole bundle disappears from the page, only the affected component drops out, or the package stays complete and the product is oversold.