Добавьте приведенный ниже код в файл скрипта обновления
<?php
$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$attributeCode = 'manufacturer';
$attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', $attributeCode);
if ($attribute->getId() && $attribute->getFrontendInput()=='select') {
$option['attribute_id'] = $attribute->getId();
$option['value'] = array('Red','Black', 'Yellow');
$installer->addAttributeOption($option);
}
//OR
/*
if($attribute->getId() && $attribute->getFrontendInput()=='select') {
$option['attribute_id'] = $attribute->getId();
$option['value']['r'][0] = 'Red';
$option['value']['b'][1] = 'Black';
$option['value']['y'][2] = 'Yellow';
$installer->addAttributeOption($option);
}*/
$installer->endSetup();
Проверьте дубликат кода значения опции:
<?php
$installer = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$attributeCode = 'manufacturer';
$attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', $attributeCode);
if($attribute->getId() && $attribute->getFrontendInput()=='select') {
$newOptions = array('Red','Black', 'Yellow');
$exitOptions = array();
$options = Mage::getModel('eav/entity_attribute_source_table')
->setAttribute($attribute)
->getAllOptions(false);
foreach ($options as $option) {
if (in_array($option['label'], $newOptions)) {
array_push($exitOptions, $option['label']);
}else {
}
}
$insertOptions = array_diff($newOptions, $exitOptions);
if(!empty($insertOptions)) {
$option['attribute_id'] = $attribute->getId();
$option['value'] = $insertOptions;
$installer->addAttributeOption($option);
}
}
$installer->endSetup();
'r'
,'b'
,'y'
в$option['value']['r'][0] = 'Red';
?eav_attribute_option
получает одну новую строку, но без соответствующей строки вeav_attribute_option_value
. Должно быть что-то со$option
структурой массива.попробуй это,
для одного значения: -
для нескольких значений: -
'any_option_name' будет color_name (например: red), arg_value будет его целочисленным optionId afaik.
Вещи, которые также должны быть получены в первую очередь, это то, что является следующим неиспользованным optionId. Будет использоваться для этой новой опции атрибута.
источник
Например, вы хотите добавить
Men
значение кgender
опции.Сначала вы должны создать свой скрипт обновления в директории модуля, например
app/code/local/MyCompany/MyModule/data/mymodule_setup/data-upgrade-0.1.0-0.1.1.php
.Затем заполните его следующим кодом:
источник
Следующий код добавляет параметры атрибутов программно magento 1.
Пожалуйста, обратитесь к подробному объяснению, как читать из CSV и сравнить с существующими параметрами атрибута https://www.pearlbells.co.uk/add-attribute-options-magento-scripts/
источник