Mixed case: pick six out of twenty
Six bottles for 59 pounds, freely chosen from twenty. How a fixed set is configured and why “mandatory field” does not apply to it.
Six bottles for 59 pounds, free choice out of twenty. That is not a discount model, it is a product of its own: the price is fixed in advance, the contents are not. This is exactly what the plugin calls a set.
The four possible set rules
A group can be run as a fixed set. Four behaviours are available, named verbatim like this:
| Behaviour | What the customer may do |
|---|---|
| free choice, maximum the selected quantity (0 to x pieces) | They may take nothing at all, but no more than x. |
| at least one piece, maximum the selected quantity (1 to x pieces) | At least one must go in, x is the ceiling. |
| at least the selected quantity, maximum the selected quantity (x to y pieces) | A range with a floor and a ceiling. |
| exactly the selected quantity (x pieces) | Neither more nor less. The mixed case. |
Only with six bottles can the case be added to the cart.
Why every bottle carries the same line
Because a single bottle has no price of its own inside this case. Two switches work together here: Products free of charge sets the lines inside the configurator to zero, Hide prices takes the numbers out of the display entirely. The price comes from the parent product - the case itself.
There is a middle ground too: Products free of charge, but show prices. The customer then sees what the bottles would cost individually but pays the case price. That is the more honest way to show an advantage without working with a struck-through price.
A set is not a mandatory field
This is the trap. The help text says it plainly: “the option “mandatory field” is not considered for sets”. The lower bound comes solely from the chosen set behaviour. And for several bottles to be selectable at all, Multiple selection has to be switched on.
The price in the category
A case with a fixed price needs no “from” price in the category. Set Price in listing to “fixed price - pre-selected items” and store a preselection, and the same number appears there as on the product page.
When stock is uneven
Twenty wines mean twenty stock levels. If one runs out it should stop being selectable - ideally without anyone touching the configurator. So feed the stream from a Dynamic product group with the condition you maintain anyway. Whatever drops out of the group drops out of the case.