Как добавить атрибут программно - PullRequest
16 голосов
/ 11 августа 2010

Я хотел бы добавить атрибут к продуктам, и я хочу сделать это программно.Поэтому я добавил 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();

Синтаксис выглядит нормально, но когда дело доходит до его выполнениячасть кода, вот проблема:

Неустранимая ошибка: вызов неопределенного метода Mage_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

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

Спасибо

Ответы [ 2 ]

27 голосов
/ 11 августа 2010

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

13 голосов
/ 23 июня 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...