Я хочу обновить / добавить параметры атрибута drop down в Magento, хотя код (программно). Я нашел, как добавить параметры атрибута, но как я могу обновить значения параметров.
Пример:
Предположим, что атрибутом является «производитель». Я добавил три варианта man1, man2, man3. Теперь, используя свой код, я хочу изменить метку man1 на man11 и man2 на man22. Как я могу это достичь? Благодарю.
Ну, я нашел решение самостоятельно. Подробнее см. Здесь .
//Get the eav attribute model $attr_model = Mage::getModel('catalog/resource_eav_attribute'); //Load the particular attribute by id //Here 73 is the id of 'manufacturer' attribute $attr_model->load(73); //Create an array to store the attribute data $data = array(); //Create options array $values = array( //15 is the option_id of the option in 'eav_attribute_option_value' table 15 => array( 0 => 'Apple' //0 is current store id, Apple is the new label for the option ), 16 => array( 0 => 'HTC' ), 17 => array( 0 => 'Microsoft' ), ); //Add the option values to the data $data['option']['value'] = $values; //Add data to our attribute model $attr_model->addData($data); //Save the updated model try { $attr_model->save(); $session = Mage::getSingleton('adminhtml/session'); $session->addSuccess( Mage::helper('catalog')->__('The product attribute has been saved.')); /** * Clear translation cache because attribute labels are stored in translation */ Mage::app()->cleanCache(array(Mage_Core_Model_Translate::CACHE_TAG)); $session->setAttributeData(false); return; } catch (Exception $e) { $session->addError($e->getMessage()); $session->setAttributeData($data); return; }
Возможно, вы захотите расширить расширение AttributeController, расположенного в приложении \ code \ core \ Mage \ Adminhtml \ controllers \ Catalog \ Product \ AttributeController.php, и переопределить метод saveAction()
в соответствии с вашими потребностями.