As far as I know, you can add simple, virtual and downloadable products inside a configurable product.
Wait.. you believed me ? If I say "I am the greatest person in the entire world..", will you believe me then ? I guess you will not. Coz in the next momemnt you will reply to me.. "Proove it...if you think so". Okey. That's the point. So I have a responsibility to prove my very first statement :-)
In order to prove it, I want to you look into Mage_Catalog
module. This is one of the complex module I have ever seen ! You can find an entire universe in it. Now we just want to look on the very small portion of this giant module.
File : app\code\core\Mage\Catalog\etc\config.xml
<catalog>
<product>
<type>
....
<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>
<simple/>
<virtual/>
</allow_product_types>
<index_priority>30</index_priority>
<price_indexer>catalog/product_indexer_price_configurable</price_indexer>
</configurable>
...
</type>
</product>
</catalog>
This section defines product type specific configuration. See the node allow_product_type
and inside it you can see that it contains simple and virtual product types. This means magento by default will allow simple and virtual product inside configurable product. Wait you cant find downloadable product inside that list right ? Okey.. before cursing me.. I want you look into downloadable product configuration section (inside Mage_Downloadable
module)
File : app\code\core\Mage\Downloadable\etc\config.xml
<catalog>
<product>
<type>
....
<configurable>
<allow_product_types>
<downloadable/>
</allow_product_types>
</configurable>
...
</type>
</product>
</catalog>
See downloadable products are adding via this configuration file. Though downloadable product is added via different config file, magento is brave enough to trace this out. (It's an another story. I dont want to go into that area).
Now the most important part is, if children product that constitutes configurable product has required_option
property set to yes
, then it will not allow you to construct configurable product.
I am not going to provide proof for this point. Because I dont know any proof for this point right now. and I dont have time to look for any proof right now. :-) But expert says so...
proof 1 - David Manners, proof 2-sarah,proxiBlue , proof 3 - Rob
Hope that will help