Magento模块设置/安装程序脚本

时间:2012-01-24 16:31:41

标签: magento installation

我正在尝试通过设置脚本自动设置属性集和属性。该脚本正在运行,并且所有属性都添加到集合中,没有问题...但是,当我查看属性visible_on_front时,used_in_product_listingglobal不是设置得当。这就是我所拥有的:

$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,
));

任何人都知道如何解决这个问题,以便它有效吗?

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来实现客户属性的相同目的。