Tambahkan kode di bawah ini dalam file skrip upgrade Anda
<?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();
Periksa kode nilai opsi duplikat:
<?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'
di$option['value']['r'][0] = 'Red';
?eav_attribute_option
mendapat satu baris baru, tetapi tanpa baris yang sesuai dieav_attribute_option_value
. Pasti ada sesuatu dengan$option
struktur array.coba ini,
untuk nilai tunggal: -
untuk beberapa nilai: -
'any_option_name' akan menjadi color_name (ex: red) arg_value akan menjadi integer optionId afaik.
Hal yang juga perlu diakuisisi terlebih dahulu, adalah apa opsiId yang tidak digunakan berikutnya. Untuk digunakan untuk opsi atribut baru ini.
sumber
Misalnya, Anda ingin menambahkan
Men
nilai kegender
opsi.Pertama, Anda harus membuat skrip pemutakhiran Anda di direktori modul, mis
app/code/local/MyCompany/MyModule/data/mymodule_setup/data-upgrade-0.1.0-0.1.1.php
.Kemudian isi dengan kode seperti ini:
sumber
Kode berikut menambahkan opsi atribut secara terprogram magento 1.
Silakan merujuk penjelasan terperinci cara membaca dari CSV dan membandingkan dengan opsi atribut yang ada https://www.pearlbells.co.uk/add-attribute-options-magento-scripts/
sumber