Question

We have a bunch of Virtual Products in the sense that they are not shipped, but the only way to group them into a Configurable Product is to make them Simple Products. So, it seems that we should arrange our products catalog as Configurable Products containing Simple Products. With that being said:

  1. What are the advantages & disadvantages of going with Simple vs Virtual Products?
  2. If we went with Virtual Products, I would imagine, we'd have to modify some core functionality to allow Virtual Products to be able to be grouped under a Configurable product? How difficult is this to do?
  3. If we went with Simple Products, we'd need to bypass the shipping step during checkout for those products. How is something like that accomplished?
  4. What are the advantages & disadvantages of said modifications to achieve our desired functionality?
Was it helpful?

Solution

You don't have to change anything.
Magento supports virtual products inside configurable products.
see this in the config.xml of the catalog module

<configurable translate="label" module="catalog">
   <label>Configurable Product</label>
   <model>catalog/product_type_configurable</model>
   <price_model>catalog/product_type_configurable_price</price_model>
   <composite>1</composite>
   <allow_product_types> <!- allowed child product types-->
       <simple/>
       <virtual/>
   </allow_product_types>
   <index_priority>30</index_priority>
   <price_indexer>catalog/product_indexer_price_configurable</price_indexer>
</configurable>

I tested this and it works nicely.
I've created a virtual product that contains one attribute that can be used for configurable products, then created a configurable product having that attribute configurable.
I was able to add virtual products as child products for the configurable one.
The only downside is that you cannot create the child products using the quick create form from the configurable product screen. That one will create simple products. You have to create all your virtual child products up front and then use them inside the configurable product.
Everything went smoothly. When I added the configurable product to the cart and went to the checkout, the shipping steps were missing, like they should.

An alternative to using configurable products, could be custom options.
Just create a virtual product that has as custom options what you wanted to add as configurable options in the configurable product.

Licensed under: CC-BY-SA with attribution
Not affiliated with magento.stackexchange
scroll top