我正在尝试通过设置脚本自动设置属性集和属性。该脚本正在运行,并且所有属性都添加到集合中,没有问题...但是,当我查看属性visible_on_front
时,used_in_product_listing
和global
不是设置得当。这就是我所拥有的:
$installer->addAttribute('catalog_product', '<attribute_code>', array(
'group' => 'General',
'input' => 'date',
'type' => 'datetime',
'label' => '<some_label>',
'backend' => 'eav/entity_attribute_backend_datetime',
'is_global' => 0,
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE,
'is_visible_on_front' => 1,
'visible_on_front' => 1,
'used_in_product_listing' => 1,
));
任何人都知道如何解决这个问题,以便它有效吗?
答案 0 :(得分:20)
这里的技巧是确保您使用正确的Setup对象。默认的安装对象是Mage_Eav_Model_Entity_Setup
,它会将您的属性添加到eav_attribute
表中,但它不知道catalog_eav_attribute
中的额外字段,例如used_in_product_listing
(或customer_eav_attribute
并且它是那个问题的领域)。
因此,请在安装脚本的顶部添加:
$installer = new Mage_Catalog_Model_Resource_Eav_Mysql4_Setup('core_setup');
$installer->startSetup();
这应该有所不同。
仅供参考,您可以使用Mage_Customer_Model_Entity_Setup
来实现客户属性的相同目的。