I'm creating a computer store selling computer systems. We need to be able to allow upgrade options for some parts in new systems (eg faster CPU or a bigger screen). Currently each computer package is a product (of its own class) with attributes defining upgrade options.
Using a product kit for a computer package where the kit was made up of individual computer components (cpu, ram, hdd, etc) could be really good if:
there was a way to create groups of products in the kit such that the store admin selects products that belong in a group (so there might be a group for CPUs and a group for screens). Then when the user is viewing the kit they can select a product for each group (similar to selecting attributes but it would actually change the product in the order).
This could also be done with product classes, so the admin could select classes that the kit contains (perhaps optionally disabling certain products in the selected class for the current kit like options can be disabled for individual products).
Perhaps there could also be a setting for a max and min number of products the user can select for each group/class and a default product for each group/class for the kit.
The product kit sell price might then be the sum of default products (minus discounts), but would change if different products were selected by the user (like attributes that have a default option with zero cost).
Perhaps it would be best (most convenient to store admin) to use the previously proposed product kit classes to define product groups/classes, allowing groups and/or individual products in groups to be disabled in instantiations of the product kit class.
Apart from neatness and clarity, one of the main advantages with this is that the kit price could update automatically whenever a contained product price was updated, instead of having to individually update an attribute option in each product (on a side note, maybe it would be good to have a button in the main edit attribute option page that updated the option price in all products that have that option enabled?)
Sounds like a lot of work... but I'm guessing this sort of thing would be extremely useful in a lot of situations other than computer packages. 

Joined: 01/09/2008