Adicione o código abaixo no seu arquivo de script de atualização
<?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();
Verifique o código do valor da opção duplicada:
<?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'
no$option['value']['r'][0] = 'Red';
?eav_attribute_option
obtém uma nova linha, mas sem uma linha correspondenteeav_attribute_option_value
. Deve ser algo com a$option
estrutura da matriz.tente isso,
para valor único: -
para vários valores: -
'any_option_name' seria um color_name (ex: red) arg_value seria seu número inteiro optionId aaik.
O que também precisaria ser adquirido primeiro é qual é a próxima opçãoId não utilizada. Para ser usado para esta nova opção de atributo.
fonte
Por exemplo, você deseja adicionar
Men
valor àgender
opção.Primeiro você precisa criar seu script de atualização no diretório module, por exemplo
app/code/local/MyCompany/MyModule/data/mymodule_setup/data-upgrade-0.1.0-0.1.1.php
.Em seguida, preencha-o com código como este:
fonte
O código a seguir adiciona opções de atributos programaticamente magento 1.
Consulte a explicação detalhada sobre como ler em CSV e comparar com as opções de atributos existentes https://www.pearlbells.co.uk/add-attribute-options-magento-scripts/
fonte