That is a tough problem. It would be easy to sell boxes where you have 6, 12, 18 etc as the variants, with each having a set price. No one could screw that up, but then the fact the wine bottles are priced individually means you're not going to be able to sell generic boxes.
As soon as you venture into the territory of letting the customer bundle 6, 12, 18 etc. individual products into a cart you run into the fact that you cannot enforce the limits at 6, 12, or 18 since anyone can just hack the scripting to checkout whatever they want. You can always ignore those messy orders but it is still a pain.
So your best bet may be to find a compromise. If your "buy the box" price is set, and the customer can add only certain wines to a box of that price, you may be able to cope with that?
It does take some creative thinking. I know from writing an App that provides product bundles that there are some serious crazy issues to deal with. Most Apps in this category, as you've seen, gloss over those difficulties and are too simple for use cases like this.