Установка модуля Magento / скрипт установки - PullRequest
5 голосов
/ 24 января 2012

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

Кто-нибудь знает, как я могу это исправить, чтобы он работал?

1 Ответ

20 голосов
/ 25 января 2012

Хитрость заключается в том, чтобы убедиться, что вы используете правильный объект установки. Объект установки по умолчанию - 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 для достижения того же результата для атрибутов клиента.

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