Let customers fill their own gift basket
One basket, free contents, one price. Why variants are the wrong tool for this and how the configurator solves it instead.
A gift basket is not a product, it is a sequence of decisions. Which basket, what goes in, how it is wrapped. Model that with variants and you need a separate product for every conceivable combination - with five baskets, twenty fillings and three wrappings that is more variants than the shop will ever sell.
The configurator turns it around: one parent product with several choice groups underneath. Each group is called a stream. The customer works through them in order, the price adds up as they go, and exactly one combination ends up in the cart.
What it looks like in the shop
Four groups, three kinds of behaviour. The basket is a mandatory field without multiple selection - no basket, no cart. For the goods, multiple selection is allowed and Quantity selectable is switched on. The wrapping is optional and gets its own No Selection tile, whose text and image you can set freely.
What you configure for this
1Create a configurator under Catalogues → Configurator and assign it to the parent product on its “Configurator” tab. It gets a name and a position on the product page - four fixed places are available, for instance “Below the image, above the description (full width)”.
2Create four streams. Each has an internal name and a visible title that can be translated.
3On the Products tab decide where the choices come from: a List of products or a Dynamic product group. With the group you only maintain the group from then on, never the configurator again.
4On the Options tab set the rules: mandatory field for the basket, multiple selection and quantity for the goods, No Selection for the wrapping.
5On the Display tab pick the look: as list, as slider or as gallery. For baskets with a photo, the gallery is the obvious choice.
What this saves day to day
When a new cheese arrives, it is maintained once as a product and added to the dynamic product group. From then on it appears in every configurator using that group - without anyone touching a single basket.
Limits worth knowing
The configurator does not replace a bill of materials in the warehouse. Whether the order arrives in your ERP as one line or as individual products is a separate decision in the settings - there the components can be stored as products of their own and the parent-child relation can be dissolved.
And: a group nothing can be chosen from is not a choice, it is a list. For a pure statement of contents (“This gift basket contains …”) there is the option Disable selection; the stream then only shows what is included.