Magento добавление новых опций в выпадающий атрибут - PullRequest
4 голосов
/ 16 марта 2010

Здравствуйте. Сейчас я пишу сценарий синхронизации продукта для magento. Я знаю, как добавить новый продукт с заданным набором атрибутов. Однако одним из атрибутов, которые я использую, является поле размера. Когда встречается новый размер, я хочу добавить эту опцию в атрибут, мне интересно, как это сделать, пожалуйста?

Ответы [ 3 ]

5 голосов
/ 25 августа 2010

Вот скрипт для добавления новой опции к атрибуту из представления продукта или блока:

$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();

...

4 голосов
/ 16 августа 2012

Поместите файл ie: 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

0 голосов
/ 29 марта 2010

Пройдя еще немного осмотревшись, я наконец-то узнал, как это сделать. Затем я нашел расширение для xml-api, которое расширяет api для поддержки таких операций, которые я хотел сделать.

Расширение, которое я использовал, было MagentoeXtended

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...