我已在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,但它不起作用。
答案 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();
我希望这有效。