2

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?
1

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.

  • Thank you! We're restructuring our catalog so as not to use custom options – so each product can have its own sku, seems to make for cleaner code. There will eventually be a lot of logic surrounding those primary skus and several secondary (vendor) skus. Some products may also need individual inventory tracking, so that rules out custom options, I think. – Ted Oct 21 '14 at 21:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.