How to make configurable options autoselected on Product view page

How to make configurable options autoselected on Product view page

If you ever tried to do anything with Magento configurable products view page, most likely you needed changes in  /js/varien/product.js in case you wanted to manipulate dropdowns.

This will be one of the ways to do it.

Basically, what we need to do in order to make initial selection of a product is the following:

Open this file: /app/design/frontend/default/your_theme/template/catalog/product/view/type/options/configurable.phtml

Right below

var spConfig = new Product.Config(< ?php echo $this->getJsonConfig() ?>);

add this JavaScript code:

//we create new function
 
spConfig.setInitialState = function(dropdown_id)
{
 
//select dropdown
 
var dropdown = $(dropdown_id);
//remove empty option from dropdown so it is not selectable after initial selection
 
dropdown[0].remove();
//change selections in dropdowns
for(index = 0; index < dropdown.length; index++)
{
 
if(dropdown[index].value != "")
{
dropdown.selectedIndex = index;
 
var element = dropdown;
var event = 'change';
 
//fire events
if(document.createEventObject)
{
 
var evt = document.createEventObject();
return element.fireEvent('on'+event,evt)
}
else
{
 
var evt = document.createEvent("HTMLEvents");
evt.initEvent(event, true, true );
return !element.dispatchEvent(evt);
}
}
}
 
};
 
<!--?php foreach($_attributes as $_attribute): ?-->
spConfig.setInitialState("attribute< ?php echo $_attribute->getAttributeId() ?>")
< ?php endforeach; ?>

That’s it. I hope you can find this usable, however don’t use it on production site without extensive testing.

As you can see, all prototype functions in Magento (and in general) can be added as new into already existing class.

Same way you could override existing methods in existing classes.

I have coded this feature for the purpose of this article and I’m not claiming that it is production ready. It is only for informative purposes.

You made it all the way down here so you must have enjoyed this post! You may also like:

Sorry, we can’t ship there Sasa Brankovic
Sasa Brankovic

Sorry, we can’t ship there

Shell script for converting configurable to grouped products Tsvetan Stoychev
Tsvetan Stoychev

Shell script for converting configurable to grouped products

Getting selected simple product id in configurable product on client side. Goran Sambolic
Goran Sambolic

Getting selected simple product id in configurable product on client side.

Tell us about your project

Drop us a line. We'd love to know more about your project.