Magento:使用选项创建新属性

时间:2014-10-16 12:46:57

标签: php magento

我正在为属性创建一个简单的导入脚本,我无法弄清楚如何向它们添加选项。 “属性”的每个属性都包含在内。除了添加选项外,它是直截了当的。这是否可以在创建属性时完成?

我使用的代码基本上如下。

$model = Mage::getModel('catalog/resource_eav_attribute');  
$data = array(
    'is_global'                     => '0',
    'frontend_input'                => 'text',
    'default_value_text'            => '',
    'default_value_yesno'           => '0',
    'default_value_date'            => '',
    'default_value_textarea'        => '',
    'is_unique'                     => '0',
    'is_required'                   => '0',
    'frontend_class'                => '',
    'is_searchable'                 => '1',
    'is_visible_in_advanced_search' => '1',
    'is_comparable'                 => '1',
    'is_used_for_promo_rules'       => '0',
    'is_html_allowed_on_front'      => '1',
    'is_visible_on_front'           => '0',
    'used_in_product_listing'       => '0',
    'used_for_sort_by'              => '0',
    'is_configurable'               => '0',
    'is_filterable'                 => '0',
    'is_filterable_in_search'       => '0',
    'backend_type'                  => 'varchar',
    'default_value'                 => '',
    'frontend_label'                => '',
    'attribute_code'                => ''
);  
foreach ($header as $key => $value){
    if(isset($data[$key]) !== false){
        $data[$key] = $row[$header[$key]];
    }
}

$data['option'] = ?WHAT DO I DO HERE¿

$model->addData($data); 
$model->setEntityTypeId(Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId());

$model->setIsUserDefined(1);
$model->save();

}

编辑:

感谢Marko的榜样,我尝试了以下内容;

$data['option'] = array (
        'value' => array(
                'wood' => array('Wood'),
                'metal' => array('Metal')
        )
);

他添加属性的方法略有不同,但该属性的值的工作原理相同。

W00t!

1 个答案:

答案 0 :(得分:1)

你可以创建sql脚本(教程:http://alanstorm.com/magento_setup_resources)并在里面输入类似的内容:

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

$setup->addAttribute('catalog_product', 'attr_code', array(
    'group'         => 'General',
    'input'         => 'select',
    'type'          => 'text',
    'label'         => 'Material',
    'backend'       => '',
    'visible'       => 1,
    'required'      => 0,
    'user_defined' => 1,
    'searchable' => 1,
    'filterable' => 0,
    'comparable'    => 1,
    'visible_on_front' => 1,
    'source' => 'eav/entity_attribute_source_table',
    'visible_in_advanced_search'  => 0,
    'is_html_allowed_on_front' => 0,
    'global'        => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
    'configurable' => 1,
    'option'  => array (
            'value' => array(
                    'wood' => array('Wood'),
                    'metal' => array('Metal')
            )
    ),
));

$installer->endSetup();

这应该创建具有木材和金属选项的属性材料