Agregue el siguiente código en su archivo de script de actualización
<?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 el código del valor de la opción 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'
en$option['value']['r'][0] = 'Red';
?eav_attribute_option
obtiene una nueva fila, pero sin una fila correspondienteeav_attribute_option_value
. Debe ser algo con la$option
estructura de matriz.prueba esto,
para un solo valor: -
para valores múltiples: -
'any_option_name' sería un color_name (ej: rojo) arg_value sería su entero optionId afaik.
Lo que también necesitaría ser adquirido primero, es cuál es la siguiente opción ID no utilizada. Para ser utilizado para esta nueva opción de atributo.
fuente
Por ejemplo, desea agregar
Men
valor a lagender
opción.Primero debe crear su script de actualización en el directorio del módulo, por ejemplo
app/code/local/MyCompany/MyModule/data/mymodule_setup/data-upgrade-0.1.0-0.1.1.php
.Luego llénalo con un código como este:
fuente
El siguiente código agrega opciones de atributos programáticamente magento 1.
Consulte la explicación detallada sobre cómo leer CSV y comparar con las opciones de atributos existentes https://www.pearlbells.co.uk/add-attribute-options-magento-scripts/
fuente