2012-01-24 3 views
5

Я пытаюсь настроить атрибуты и атрибуты автоматически с помощью сценария установки. Скрипт работает, и все атрибуты добавляются к наборам, без проблем с этим ... однако, когда я смотрю на атрибуты visible_on_front, used_in_product_listing и global установлены неправильно. Это то, что у меня есть:Сценарий установки/установки модуля Magento

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

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

ответ

19

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

Это должно сделать разницу.

FYI, вы можете использовать Mage_Customer_Model_Entity_Setup, чтобы достичь того же конца для атрибутов клиента.

+0

THX для этого ..! –

+0

Ты сын бога. Благодарю. – Nikitas

+0

Блестящий, это исправило мою проблему! Вы - человек Джонатан Дэй. –

Смежные вопросы