我已在自定义magento模块的安装程序中添加了此代码。
$installer->addAttribute('catalog_product','size_guide',array(
'group' => 'General',
'type' => 'tinyint',
'label' => 'Enable Sizechart',
'input' => 'boolean',
'source' => 'eav/entity_attribute_source_table',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'visible' => true,
'required' => false,
'user_defined' => true,
'used_in_product_listing' => true,
'default' => '',
'unique' => false,enter code here
'apply_to' => ''
));
安装模块属性“size_guide”后添加,但“在产品列表中使用”下拉列表中的属性仍然设置为“否”,但正如您在我的代码中看到的那样,我已将产品列表中的使用设置为true。
'used_in_product_listing'=>真,
感谢您的帮助。
提前致谢。
答案 0 :(得分:3)
尝试使用
$_installer = Mage::getResourceModel('catalog/setup', 'catalog_setup');
答案 1 :(得分:2)
当您在Mage_Eav_Model_Entity_Setup
课程中查看此方法的定义时,您将获得以下代码:
$data = array_merge(
array(
'entity_type_id' => $entityTypeId,
'attribute_code' => $code
),
$this->_prepareValues($attr)
);
此代码为属性准备数据。在_prepareValues()
方法中,您可以看到返回的数组不包含used_in_product_listing
键。因此,即使您在数组中提供它,也不会传递给该方法。
要解决此问题,您必须在config.xml
<resources>
<company_module_setup>
<setup>
<module>Company_Module</module>
<class>Company_Module_Model_Resource_Setup</class>
</setup>
</company_module_setup>
</resources>
然后创建类并覆盖{/ 1}}这样的方法
_prepareValues()
它允许您将其余选项添加到属性