Magento:导出属性

时间:2011-03-15 14:39:13

标签: magento attributes

有没有办法从Magento导出属性?我有下拉属性,每个属性有几百个选项,需要将它们转移到另一个Magento安装。我已经找到了关于如何import attributes from CSV的说明,但到目前为止还没有运气。

4 个答案:

答案 0 :(得分:2)

Magento没有(我所知道的)使用大值列表导出产品属性的合格方法。如果第二台机器是全新安装的Magento(或者您不介意编辑一点SQL),我建议您只需转储eav_attributes的数据库表并将其复制到新数据库中。

希望有所帮助!

谢谢, 乔

答案 1 :(得分:2)

如果您创建自己的custom module,则可以使用sql/modulename_setup脚本导入属性值。下面的代码段显示了如何将名为“class”的属性所需的代码添加到名为“Profiles”的属性集中。您可以根据自己的属性和集合进行调整。有关详细信息,请参阅wiki

$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提取值,然后填充上面的数组。

HTH,
JD

答案 2 :(得分:0)

您可能还想查看Unirgy's uRapidFlow

答案 3 :(得分:0)

这可能有一天会帮助某人...这个SQL将获取EAV属性的表值。此示例抓取了&#39; color&#39;

的属性代码的所有值
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表中,首先检查该属性的值是否已存在并且您没有指定{{ 1}}因为这是一个自动增量值。