我正在为属性创建一个简单的导入脚本,我无法弄清楚如何向它们添加选项。 “属性”的每个属性都包含在内。除了添加选项外,它是直截了当的。这是否可以在创建属性时完成?
我使用的代码基本上如下。
$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!
答案 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();
这应该创建具有木材和金属选项的属性材料