默认选择产品属性 - Magento

时间:2012-08-14 04:59:59

标签: magento attributes default product

我已在Magento中为产品创建了自定义是/否属性,在升级文件中使用此代码:

$model = Mage::getModel('catalog/resource_eav_attribute');

$attributeData = array(
    'attribute_code' => 'custom_attribute',
    'frontend_label' => 'My custom attribute',
    'is_global' => '1',
    'frontend_input' => 'boolean',
    'backend_type' => 'int',
    'default_value' => null,
    'is_unique' => '0',
    'is_required' => '0',
    'is_configurable' => '1',
    'is_searchable' => '1',
    'is_visible_in_advanced_search' => '1',
    'is_comparable' => '1',
    'is_used_for_price_rules' => '0',
    'is_wysiwyg_enabled' => '1',
    'is_html_allowed_on_front' => '1',
    'is_visible_on_front' => '1',
    'used_in_product_listing' => '1',
    'used_for_sort_by' => '1',
    'is_filterable_in_search' => 1,
    'is_filterable' => 1,
    'source_model' => null,
    'option' => array(),
    'apply_to' => 'simple,configurable,bundle,grouped',
    'is_user_defined' => true,
    'global' => true,
);

$model->addData($attributeData);
$model->setEntityTypeId(
    Mage::getModel('eav/entity')->setType(Mage_Catalog_Model_Product::ENTITY)->getTypeId()
);
$model->save();

代码有效。但是我希望在创建新产品或我尝试编辑新产品时默认选择是选项。现在,只有No先显示。我尝试将defult_value更改为true或1,但它不起作用。

3 个答案:

答案 0 :(得分:1)

我发现default_value用于创建新产品时的选项值,而不是没有设置属性的产品。所以我认为为了在所有产品上显示“是”,我应该制作一个脚本来更新具有此属性的所有产品。

答案 1 :(得分:0)

要添加属性,您应该转到文件夹:

/var/www/html/<YOUR APP>/app/code/core/Mage/Catalog/etc

并编辑文件:config.xml,转到以下部分:

<product> 
<collection> 
<attributes>

并添加所需的属性。接下来,转到文件夹:

/var/www/html/<YOUR APP>/app/design/frontend/base/<YOUR THEME>/template/catalog/product

并编辑文件new.phtml以及何时需要使用属性调用:

<?php echo $_product→getAttributeName();?>

例如,如果您的属性名为size,请使用:

<?php echo $_product→getSize();?>

答案 2 :(得分:0)

我认为你需要更新属性。假设'custom_attribute'是新属性的属性代码,'default value'是您想要更改/更新的属性代码,然后您将以下代码添加为新的升级脚本。

    $installer = new Mage_Eav_Model_Entity_Setup('core_setup');
    $installer->startSetup();

    $aAttribute = $installer->getAttribute('catalog_product', 'custom_attribute');
    $aAttribute['default_value'] = '1';

    $installer->updateAttribute('catalog_product', 'custom_attribute', $aAttribute);
    $installer->endSetup();

我希望这有效。