Default value of 'yes/no' dropdown custom product attribute

Try to set default value as string

'default' => '0'

or empty

'default' => ''

Update

The default values are added when you add new product for old ones it not affects.

Try to fix that in Product management with mass action

Inside manage products, there is a action called “Update Attributes”. Select all the products that you want to update and then select Update Attributes and add all the new information in.


I had the problem that with the code snippets above a select-attribute was created instead of a yes/no attribute. To fix this I had to use

'input'             => 'boolean'

instead of:

'input'             => 'select'

You should set value for all existing entity manually:

$productIds = Mage::getResourceModel('catalog/product_collection')
    ->getAllIds();

// Now create an array of attribute_code => values
$attributeData = array("my_attribute_code" =>"my_attribute_value");

// Set the store to affect. I used admin to change all default values
$storeId = 0; 

// Now update the attribute for the given products.
Mage::getSingleton('catalog/product_action')
    ->updateAttributes($productIds, $attributeData, $storeId);

source: https://stackoverflow.com/questions/4906497/default-attribute-value-for-all-product-in-magento. See Asrar Malik's answer.