您好我正在为magento编写产品同步脚本。我知道如何添加具有给定属性集的新产品。但是我使用的一个属性是一个大小字段。当遇到新尺寸时,我想将此选项添加到属性中,我想知道如何做到这一点?
答案 0 :(得分:5)
以下是从“产品视图”或“阻止”中向属性添加新选项的脚本:
$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();
...
答案 1 :(得分:4)
在Magento根目录中放置一个文件ie:test-attribute.php。
<?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();
应该在属性上创建一个名为Test X
的新选项。 在Magento Enterprise 1.11.2上进行了测试
答案 2 :(得分:-2)
在做了一些更多的环顾四周后,我终于找到了如何做到这一点。然后我找到了xml-api的扩展,扩展了api以支持我想做的操作。
我使用的扩展程序是MagentoeXtended