Php Magento向下拉属性添加新选项

Php Magento向下拉属性添加新选项,php,magento,Php,Magento,您好,我正在为magento编写产品同步脚本。我知道如何添加具有给定属性集的新产品。然而,我正在使用的一个atributes是一个大小字段。当遇到新尺寸时,我想将此选项添加到属性中,我想知道如何执行此操作?在仔细查看之后,我终于找到了如何执行此操作。然后,我找到了一个对XMLAPI的扩展,该扩展扩展扩展了api以支持我想要执行的操作 我使用的扩展是这里有一个脚本,用于从产品视图或块向属性添加新选项: $attributeInfo = Mage::getResourceModel('eav/ent

您好,我正在为magento编写产品同步脚本。我知道如何添加具有给定属性集的新产品。然而,我正在使用的一个atributes是一个大小字段。当遇到新尺寸时,我想将此选项添加到属性中,我想知道如何执行此操作?

在仔细查看之后,我终于找到了如何执行此操作。然后,我找到了一个对XMLAPI的扩展,该扩展扩展扩展了api以支持我想要执行的操作


我使用的扩展是

这里有一个脚本,用于从产品视图或块向属性添加新选项:

$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
 ->setCodeFilter(YOUR_ATTRIBUTE_CODE)
 ->getFirstItem();

$options = $attributeInfo->getSource()->getAllOptions(false);
$_optionArr = array(
     'value'  => array(), 
     'order'  => array(), 
     'delete' => array()
);
foreach ($options as $option) {
    $_optionArr['value'][$option['value']] = array($option['label']);
}
$_optionArr['value']['option_1'] = array(NAME_OF_OUR_NEW_OPTION);
$attribute->setOption($_optionArr);
$attribute->save();

…将文件ie:test-attribute.php放入Magento根目录中

<?php
// Include and start Magento
require_once dirname(__FILE__).'/app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
// Load attribute model and load attribute by attribute code
$model = Mage::getModel('catalog/resource_eav_attribute')->load('some_dropdown_attribute', 'attribute_code');
// Get existing options
$options = $model->getSource()->getAllOptions(false);
// Get the count to start at
$count = count($options) + 1;
// Prepare array
$data = array(
    'option' => array(
        'value' => array(),
        'order' => array()
    )
);
// You can loop here and increment $count for multiple options
$key = 'option_'.$count;
$data['option']['value'][$key] = array('Test '.$count);
$data['option']['order'][$key] = 0;
// Add array to save
$model->addData($data);
// Save
$model->save();

不要忘记在上面的代码之后调用
Mage::getModel('catalog/product')->getResource()->unsetAttributes()
,以便Magento使用新选项刷新该属性模型。