有没有办法从Magento导出属性?我有下拉属性,每个属性有几百个选项,需要将它们转移到另一个Magento安装。我已经找到了关于如何import attributes from CSV的说明,但到目前为止还没有运气。
答案 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}}因为这是一个自动增量值。