Magento: экспортные атрибуты - PullRequest
3 голосов
/ 15 марта 2011

Есть ли способ экспортировать атрибуты из Magento? У меня есть выпадающие атрибуты с несколькими сотнями опций каждый, и мне нужно перенести их в другую установку Magento. Я нашел инструкции о том, как импортировать атрибуты из CSV , но до сих пор не повезло с экспортом.

Ответы [ 4 ]

2 голосов
/ 16 марта 2011

Если вы создаете свой собственный пользовательский модуль , вы можете использовать сценарии sql/modulename_setup для импорта значений атрибутов. Фрагмент ниже показывает, как код, необходимый для атрибута с именем «класс», добавляется в набор атрибутов с именем «Профили». Вы можете адаптировать его к своим собственным атрибутам и наборам. Обратитесь к вики для получения дополнительной информации.

$iAttributeId = $installer->getAttributeId($iProductEntityTypeId, 'class');
$iSetId = $profileAttrSet = Mage::getModel("eav/entity_attribute_set")
    ->getResourceCollection()
    ->addFieldToFilter("entity_type_id", Mage::getModel('catalog/product')->getResource()->getTypeId())
    ->addFieldToFilter("attribute_set_name", "Profiles")
    ->getFirstItem()
    ->getId();
$installer->addAttributeToSet($iProductEntityTypeId,$iSetId,'General',$iAttributeId);

$aClasses = array('TV','DVD','Home Theatre','Air Conditioner','Stereo/Hifi','Game Console','Camcorder','VCR','Set Top Box','PVR');
$aOption = array();
$aOption['attribute_id'] = $iAttributeId;

for($iCount=0;$iCount<sizeof($aClasses);$iCount++){
    $aOption['value']['option'.$iCount][0] = $aClasses[$iCount];
}
$installer->addAttributeOption($aOption);

Вы можете использовать eav/entity_attribute API для извлечения значений и заполнения массива выше.

НТН,
JD

2 голосов
/ 15 марта 2011

Magento не имеет (насколько мне известно) компетентного способа экспорта атрибутов продукта с большими списками значений.Если на втором компьютере установлена ​​новая версия Magento (или вы не возражаете против редактирования небольшого SQL), я бы предложил, чтобы вы просто сбросили таблицы базы данных для eav_attributes и скопировали ее в новую базу данных.

Надеюсь, это поможет!

Спасибо, Джо

0 голосов
/ 28 мая 2015

Это может помочь кому-то однажды ... Этот SQL-запрос будет получать значения таблиц для атрибута EAV.В этом примере выполняется захват всех значений для кода атрибута 'color'

SELECT v.* FROM eav_attribute AS a
JOIN eav_attribute_option AS o ON a.attribute_id = o.attribute_id
JOIN eav_attribute_option_value AS v ON o.option_id = v.option_id
WHERE a.attribute_code = 'color';

Просто убедитесь, что если вы собираетесь использовать SQL для загрузки значений обратно в таблицу eav_attribute_option_value, вы сначала проверите, еслизначение для этого атрибута уже существует, и вы не указываете value_id, так как это значение с автоинкрементом.

0 голосов
/ 15 марта 2011

Вы также можете взглянуть на Unirgy's uRapidFlow .

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