I sell dolls.
Each doll requires the customer to select a dress: red, blue, green (I implemented that with Commerce Product Option).

What I want

Now I want to offer optional accessory products for those dolls: a bicycle, a bed, hula hoop, … you get it.

1) Those accessories must not be purchased without a doll.
2) The relationship between the doll and the selected accessories needs to be there (the shop owner needs to see which accessory was selected for which doll).

A quantity field is not needed for the accessory. If the customer adds the quantity of the doll, it implicates that he wants the same accessory for each of the dolls. Otherwise the customer would have to add the same doll with different accessory again (reloading/revisting the product display).

There might be ~ 50 different accessories and all of them are suitable for each doll (so it wouldn't really make sense to have to add all those accessories for each doll individually; besides, the shop owner should be able to add new accessories without updating all doll products).

How to display that at the doll product display?
→ It should be displayed as a list of checkboxes. Check those accessories you need and with the press of "Add to cart", the doll and all checked accessories are added to the cart.

How to display that at the cart?
→ I think the best way would be to combine the doll and accessories in one line item (like Commerce Product Bundle does), with the doll as the main product (linked), and the accessories subordinated (not linked).

Possible solutions?

I think core product variants are not the right concept here: doesn't make sense to create a variant "Doll with bed", "Doll with bed and hula hoop", "Doll with hula hoop", …. Could be used for the dress, though (I used commerce_option, because the option consists of only 3 values and doesn't change the price nor is there stocking … I think having 3 variants per doll wouldn't give me any benefit).

Commerce Product Bundle gives a nice and appropriate shopping cart display (all in one line item), but I think the workflow of the shop owner and the customer experience is not right for this use case. (in addition: it doesn't work with commerce_option)

Commerce Product Option is the way I use at the moment for this. I simply added the accessory products as Option Sets (using a vocabulary where each term is one accessory) and displayed it with check boxes. The shopping cart display is appropriate, too (with the help of Commerce Product Attributes). Well, the "problem" with this: an accessory is no product anymore.
Instead of using terms I tried product references: it seems to work principally, but it can only display the 'product' title/sku instead of the 'product display' title (which I need because of i18n).

I think the ideal solution would be:
Creating a View that lists all accessories (with a checkbox), and attaching that View to doll product displays. Now this View should be added to the add-to-cart form, so that checking the accessories adds them to the submit.
With this method one could even use Views arguments/conditionals to filter the accessory listing depending on the doll (no bicycles for alien dolls that only have 1 leg!), if needed.

The View listing is possible. With Commerce core, each accessory would have its own add-to-cart button. But it should be possible to display each accessory with a checkbox and only one add-to-cart-button for all accessories. Maybe Commerce add to cart extras could be used (if this feature request would be implemented).
But with this method you don't get only one (but two) add-to-cart button (so it would be possible to purchase accessory without a doll) and you miss the relationship (from the doll to the chosen accessories) in the cart/order.

Comments

rszrama’s picture

Component: Other » Contributed modules
Category: support » feature

I'm not really sure what the best solution will be, as product kits / bundles are uncharted territory so far. Just make sure whatever module you end up using is still being maintained. Some of those created by hunziker are in varying states of maintenance.

bengt’s picture

@no2e: I need something similar. Did you find any solution?

@rszrama: have you at Commerce Guys worked any more with product kits or sub products? I have posted a question here: http://www.drupalcommerce.org/discussions/4699/using-other-products-subp... (maybe a duplicate of http://www.drupalcommerce.org/discussions/2551/product-sub-products-and-... - I found that after I posted my question).

no2e’s picture

@bengt: Unfortunately not. I still want to accomplish it, but I have no idea how.

However, in contrast to your use case, my "accessory" products shouldn't be bought separately.

rszrama’s picture

Status: Active » Closed (duplicate)