Bundle
A bundle (a set) is several products sold together as one: its own page (/bundle/{id}-{slug}), with its own price,
images and texts. A bundle is made of variants of products; every variant is one colour (the main characteristic) of
a product, in one or more sizes. A bundle is listed while every colour of every product in it has at least one size
on sale, so a sold-out black does not keep a set alive because the red is still available.
The bundle pages use bundle.twig; the lists of bundles (a group of bundles at /bundles/{id}-{slug} or the bundles of
a category at /category/{id}-{slug}/bundles) use list.twig.
Bundle card
In a list the bundle is a product card with is_bundle: true. These values differ from a
variant card:
| Variable | Description |
|---|---|
id, variant_id | ID of the bundle (the bundle page's ID) |
is_bundle | true; is_variant is false |
serial | BUNDLE-{id} |
title | The bundle's name in the current language |
url | /bundle/{id}-{slug} on the current sale channel |
product_ids | The IDs of the products in the bundle |
variant_ids | The IDs of the variants in the bundle (every size of every colour) |
price, original_price, discount_price | The sum of the pieces' prices (one piece of every product): price is the discount price when the sum is lower, discount_price is null otherwise |
stock | 1 while every colour has a size in stock, else 0 |
preorder | Always false |
Bundles made of the same pieces in other colours are the "other colours" of a set: variant_ids show which colour of a
product a set is made of.
Bundle page
| Variable | Description |
|---|---|
bundle | The bundle object, see below |
title | The bundle's name; the page title |
description | Meta description of the bundle page |
lang | Current language code |
currencyCode | The currency of the sale channel |
mainVariant | The main variant of the set: the values of a product (codes, images, availability) |
variants | The pieces of the set, by product: each has its mainVariant, its variants and sizes, and the size tables (measurements) of its category |
measurements | The size tables of all the pieces together, every table once |
shops | List of available shops or sales channels |
top_categories | The category path of the main variant, for the breadcrumb |
layout | Layout data for rendering the page |
similar_products | Other bundles of the same group, for recommendation blocks |
recommended_products | "Recommended for you": products picked from the visitor's recent activity |
other_bundles | Other bundles that contain at least one product of this one |
delivery_estimate | The estimated delivery: from, to (Y-m-d) and country |
delivery_date | The estimated delivery as a text |
The bundle object
| Variable | Description | Comment |
|---|---|---|
id | ID of the bundle | |
product_ids | The IDs of the products in the bundle | |
serial | BUNDLE-{id} | |
name, title | The bundle's name in the current language | |
short_descripton | Empty | |
description | Full description in the current language | |
slug, url | The slug, and the full URL of the bundle page | |
images | The bundle's images | |
price, original_price, discount_price | As on the card (amount, currency) | discount_price is null without a discount |
availability, availability_button | Availability of the main variant | |
stock | 1 | |
release_date | Release date of the main variant | Nullable |
sales_channel | Sales channels of the main variant | |
created_at, updated_at | Timestamps of the main variant |