/* My option value */
$value = 'A value';
/* Delete an option */
$options = array();
$entity_type_id = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId(); // Product Entity Type ID
$attribute = Mage::getModel('eav/entity_attribute')->loadByCode($entity_type_id, $attribute_code); // Load attribute by code
if ($attribute && $attribute->usesSource()) {
$option_id = $attribute->getSource()->getOptionId($value); // Check Option ID from value...
if ($option_id) {
$options['delete'][$option_id] = true;
$attribute->setOption($options)->save();
}
}
/* END ! */
添加或更新选项
/* Add/Update an option */
$options = array();
$entity_type_id = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId(); // Product Entity Type ID
$attribute = Mage::getModel('eav/entity_attribute')->loadByCode($entity_type_id, $attribute_code); // Load attribute by code
if ($attribute && $attribute->usesSource()) {
$option_id = $attribute->getSource()->getOptionId($value); // Check Option ID...
$options['order'][$option_id] = 10; // Can be removed... Set option order...
$options['value'][$option_id] = array(
0 => $value, // Admin Store - Required !
1 => $value, // Store id 1 - If U want ! Can be removed
);
$attribute->setDefault(array($option_id)); /* If you want set option as default value */
$attribute->setOption($options)->save(); /* That's all */
}
/* END ! */
7条答案
按热度按时间l7wslrjt1#
下面是我用来执行这个任务的一段代码。创建一个自定义模块(使用ModuleCreator作为工具),然后在sql/modulename_setup文件夹下创建一个
mysql4-install-0.1.0.php
。它应该包含以下内容(当然,要根据您自己的数据进行调整!)。如果需要,请提供有关Magento wiki的更多文档。
如果您不想在自定义模块中执行此操作,您可以创建一个以以下内容开头的php文件:
h79rfbju2#
Jonathan的答案是正确的。但是如果你想在没有安装程序的情况下执行它,也就是在任何其他代码中,那么你可能会发现这很有帮助:
有关更多信息,请访问**here**。
j8yoct9x3#
我已经创建了一个函数来动态添加选项到属性
您可以通过提供代码和选项值来向属性添加选项
wj8zmpe14#
重要!(希望这能帮助一些人,因为我被这个问题困了2个小时)
如果您使用特殊字符(如ä,ö,ü,ß,×,...),请确保正确编码!
w51jfk4q5#
这里有一个简单而快速的方法....
删除选项
添加或更新选项
ikfrs5lh6#
在我的教程中,我解释了如何从CSV中读取选项,并以编程方式创建选项。
http://www.pearlbells.co.uk/add-attribute-options-magento-scripts/请单击教程以获得进一步的说明
rqdpfwrv7#
Arvind Bhardwaj的回答是正确的,在这里输入代码。但是如果你想在没有安装程序的情况下执行它,也就是在任何其他代码中,那么你可能会发现这很有帮助:
同意Arvind,但它只适用于插入单个选项值,如果你想执行插入多个选项值,那么你只需要替换代码“$option ['value'][$key.'*'.$manufacturer] = $manufacturer;“到“$选项['值'][$键.'*'.$制造商] = $制造商;“这。
下面是最终代码
我希望它的作品为插入多个选项。