Я хочу добавить атрибут к цене продукта в Magento с помощью скрипта установки. Это должно быть поле выбора, отображаемое в группе "Цены" и состоящее из двух значений: "Да" и "Нет". Но я столкнулся с проблемой: мой код не работает. Несмотря на долгое просматривание моего кода, проблема все еще не устранена. Не могли бы вы помочь мне в этом вопросе? Вот мой код:
Часть /../etc/config.xml
<module>
<My_Module
<version>1.0.0</version>
</My_Module
</module>
<global>
<models>
<module>
<class>My_Module_Model</class>
</module>
</models>
<resources>
<module_setup>
<setup>
<module>My_Module</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</module_setup>
<module_write>
<connection>
<use>core_write</use>
</connection>
</module_write>
<module_read>
<connection>
<use>core_read</use>
</connection>
</module_read>
</resources>
</global>
/../sql/mymodule_setup/mysql4-install-1.0.0.php
$installer = $this;
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
$installer->startSetup();
$setup->addAttribute("catalog_product", "price_offer", array(
'group' => 'Prices',
'type' => 'int',
'attribute_set' => 'Price',
'backend' => '',
'frontend' => '',
'label' => 'Allow Price Offer',
'input' => 'select',
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL,
'backend' => 'eav/entity_attribute_backend_array',
'visible' => true,
'required' => false,
'user_defined' => true,
'default' => '0',
'visible_on_front' => false,
'used_in_product_listing' => true,
'apply_to' => 'simple,configurable',
'sort_order' => 10,
'is_configurable' => 1,
'option' => array (
'values' => array(
0 => 'No',
1 => 'Yes',
)
),
));
$installer->endSetup();
Наконец, здесь /etc/modules/My_Module.xml:
<config>
<modules>
<My_Module>
<codePool>local</codePool>
<active>true</active>
</My_Module>
</modules>
</config>
Надеюсь, ты поможешь мне с этой проблемой.
Ваш скрипт установки определенно не является проблемой, форматирование кода прост. Похоже, что это что-то с конфигурацией, которая вызывает вашу проблему. Вы имеете в виду, что скрипт установки не запущен, поэтому база данных не обновляется или не является значением в базе данных и не отображается на Magento?
Для вашего конфига, я думаю, вам нужен обработчик базы данных, поэтому вам нужна модель ресурса:
<module>
<My_Module>
<version>1.0.0</version>
</My_Module>
</module>
<global>
<models>
<module>
<class>My_Module_Model</class>
</module>
</models>
<my>
<class>My_Module_Model</class>
<resourceModel>my_module_resource</resourceModel>
</my>
<my_module_resource>
<class>my_module_Model_Mysql4</class>
</my_module_resource>
<resources>
<module_setup>
<setup>
<module>My_Module</module>
<class>Mage_Catalog_Model_Resource_Setup</class>
</setup>
<connection>
<use>core_setup</use>
</connection>
</module_setup>
<module_write>
<connection>
<use>core_write</use>
</connection>
</module_write>
<module_read>
<connection>
<use>core_read</use>
</connection>
</module_read>
</resources>
</global>
Не забудьте добавить модель ресурса в папку Model, если вы следуете этому коду.
у вас есть ошибка в этом классе Mage_Eav_Model_Entity_Setup Use ($ installer - класс Mage_Catalog_Model_Resource_Setup)
$installer->addAttribute( ...);