【问题标题】:Magento - import attribute with custom source modelMagento - 使用自定义源模型导入属性
【发布时间】:2013-03-11 14:17:44
【问题描述】:
我在导入具有自定义源模型的产品属性值时遇到了问题(因此属性编辑页面中没有可见选项)。
只是它不适用于选项 ID 值或选项标签。
当我尝试导出具有此属性的产品时,出现错误
Invalid option ID specified for ceneo_category_id (2278), skipping the record. (Line 1, SKU: ...)
有人可以帮我解决这个问题吗?
【问题讨论】:
标签:
magento
import
attributes
【解决方案1】:
我想我刚刚遇到了同样的问题:
- 使用自定义源模型创建了自定义多选属性
产品。
- 标签是“人类可读”并且值是字母数字
代码。
- 在 csv 产品导入文件中使用了字母数字代码。
- 试图使用 Magento 导入来加载一个产品
属性。
- 收到错误:“test_attr”的行中的值无效:1
经过一些调试,这似乎是因为:
- Mage_ImportExport_Model_Import_Entity_Abstract#isAttributeValid(..) 报告属性值无效(case 'multiselect' 行)。
- 这是因为它正在检查 csv 文件中的值(字母数字代码)并发现它不在此属性的有效选项列表中。这是因为它的有效选项列表包含标签。
- 选项列表包含标签而不是值/代码的原因是因为在 Mage_ImportExport_Model_Import_Entity_Abstract#getAttributeOptions(..) 它决定使用标签,因为该属性不在属性数组中应该使用该值。此数组在 Mage_ImportExport_Model_Import_Entity_Abstract 中声明:
protected $_indexValueAttributes = array(
'status',
'tax_class_id',
'visibility',
'enable_googlecheckout',
'gift_message_available',
'custom_design'
);
因此,答案是在 csv 文件中使用属性的标签。或者覆盖 Mage_ImportExport_Model_Import_Entity_Abstract 以将您的属性放入属性数组中,在产品导入期间,该属性的值而不是标签。