Ajoutez le code ci-dessous dans votre fichier de script de mise à niveau
<?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();
Vérifiez le code de valeur d'option en double:
<?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
obtient une nouvelle ligne, mais sans ligne correspondanteeav_attribute_option_value
. Doit être quelque chose avec la$option
structure du tableau.essaye ça,
pour une valeur unique: -
pour plusieurs valeurs: -
'any_option_name' serait un color_name (ex: red) arg_value serait son entier optionId afaik.
La chose qui devrait également être acquise en premier, est la prochaine optionId inutilisée. À utiliser pour cette nouvelle option d'attribut.
la source
Par exemple, vous souhaitez ajouter de la
Men
valeur à l'gender
option.Vous devez d'abord créer votre script de mise à niveau dans le répertoire du module, par exemple
app/code/local/MyCompany/MyModule/data/mymodule_setup/data-upgrade-0.1.0-0.1.1.php
.Remplissez-le ensuite avec un code comme celui-ci:
la source
Le code suivant ajoute des options d'attributs par programmation magento 1.
Veuillez vous référer pour une explication détaillée sur la façon de lire à partir de CSV et de comparer avec les options d'attribut existantes https://www.pearlbells.co.uk/add-attribute-options-magento-scripts/
la source