Как добавить атрибут программно

Я хотел бы добавить атрибут к продуктам, и я хочу сделать это программно. Поэтому я добавил mysql-install-0.1.0.php в свой модуль, и я добавил его (на основе существующих примеров):

<?php

$installer = $this;

$installer->startSetup();

$installer->addAttribute('catalog_product', 'collection', array(
        'type'              => 'varchar',
        'backend'           => '',
        'frontend'          => '',
        'label'             => 'Collection',
        'input'             => 'text',
        'class'             => '',
        'source'            => '',
        'global'            => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
        'visible'           => false,
        'required'          => false,
        'user_defined'      => false,
        'default'           => '',
        'searchable'        => false,
        'filterable'        => false,
        'comparable'        => false,
        'visible_on_front'  => false,
        'unique'            => false,
        'apply_to'          => '',
        'is_configurable'   => false
    ));

$installer->endSetup();

Синтаксис кажется ОК, но когда дело доходит до выполнения этой части кода, вот в чем проблема:

Неустранимая ошибка: вызов метода undefinedMage_Core_Model_Resource_Setup:: AddAttribute() в /home/frleq/Dev/projets/AVIP/WORKSPACE/avip _magento/app/code/local/Smile/Magentaho/sql/magentaho_setup/mysql4-install-0.1.0.php в строке 7

Вы видите, что неправильно? Код не настолько сложный, и он вдохновлен существующими и волнующими...

Спасибо

Ответы

Ответ 1

Вы используете неправильный класс установки. Проверьте свое объявление класса установки в файле config.xml. Вы используете Mage_Core_Model_Resource_Setup. Вместо этого попробуйте Mage_Eav_Model_Entity_Setup.

Ответ 2

Если вы хотите использовать связанные с продуктом параметры (фильтруемые, доступные для поиска и т.д.), вы должны использовать класс Mage_Catalog_Model_Resource_Eav_Mysql4_Setup.

В последних версиях Magento вы должны использовать класс Mage_Catalog_Model_Resource_Setup.