Привет. В настоящее время я пишу сценарий синхронизации продукта для magento. Я знаю, как добавить новый продукт с заданным набором атрибутов. Однако одним из атрибутов, которые я использую, является поле размера. Когда встречается новый размер, я хочу добавить эту опцию в атрибут, мне интересно, как это сделать, пожалуйста?
Magento добавляет новые параметры в раскрывающийся список
Ответы (3)
Вот скрипт для добавления новой опции к атрибуту из просмотра продукта или блока:
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')
->setCodeFilter(YOUR_ATTRIBUTE_CODE)
->getFirstItem();
$options = $attributeInfo->getSource()->getAllOptions(false);
$_optionArr = array(
'value' => array(),
'order' => array(),
'delete' => array()
);
foreach ($options as $option) {
$_optionArr['value'][$option['value']] = array($option['label']);
}
$_optionArr['value']['option_1'] = array(NAME_OF_OUR_NEW_OPTION);
$attribute->setOption($_optionArr);
$attribute->save();
...
person
Łukasz Linczewski
schedule
25.08.2010
не забудьте вызвать
Mage::getModel('catalog/product')->getResource()->unsetAttributes()
сразу после приведенного выше кода, чтобы Magento обновила эту модель атрибутов новыми параметрами.
- person doc_id; 30.06.2013
Поместите файл, т.е.: test-attribute.php в корень вашего Magento.
<?php
// Include and start Magento
require_once dirname(__FILE__).'/app/Mage.php';
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
// Load attribute model and load attribute by attribute code
$model = Mage::getModel('catalog/resource_eav_attribute')->load('some_dropdown_attribute', 'attribute_code');
// Get existing options
$options = $model->getSource()->getAllOptions(false);
// Get the count to start at
$count = count($options) + 1;
// Prepare array
$data = array(
'option' => array(
'value' => array(),
'order' => array()
)
);
// You can loop here and increment $count for multiple options
$key = 'option_'.$count;
$data['option']['value'][$key] = array('Test '.$count);
$data['option']['order'][$key] = 0;
// Add array to save
$model->addData($data);
// Save
$model->save();
Следует создать новую опцию с именем Test X
для атрибута. Протестировано на Magento Enterprise 1.11.2
person
Kus
schedule
16.08.2012
После того, как я еще немного осмотрелся, я наконец узнал, как это сделать. Затем я нашел расширение для xml-api, которое расширяет API для поддержки операций, которые я хотел выполнить.
Я использовал расширение MagentoEXtended.
person
mfisher86
schedule
29.03.2010