Да, это возможно программно благодаря методу Mage_Eav_Model_Entity_Setup::updateAttribute($entityTypeId, $id, $field, $value=null, $sortOrder=null)
Это невозможно при использовании Attribute Management в Magento Backend, поскольку оно имеет последствия для существующих данных.В вашем случае, изменение от выбора до множественного выбора должно быть в порядке, но сделайте резервную копию базы данных и проверьте, правильно ли отображается ваш продукт.
Программно, лучший способ - сделать это из скрипта установки обновления.Я не знаю ваш модуль, но вот некоторая информация, чтобы сделать это.
Сценарий установки обновления запускается, когда вы предоставляете новую номерную версию для вашего модуля, и вы предоставляете скрипт установки со старой и новой версиейчисло в качестве имени файла.
1) Вот заголовок модуля config.xml, измените его, чтобы обеспечить более высокую версию.Например, новая версия -
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Mycompany_Mymodule>
<version>1.0.1</version><!-- the old one was 1.0.0 -->
</Mycompany_Mymodule>
</modules>
...
</config>
2), вам нужно иметь в файле config.xml, между тегами <global>...</global>
следующий код, пожалуйста, адаптируйтесь к вашей ситуации:
<resources>
<mymodule_setup><!-- name that you will give to the folder into the sql folder -->
<setup>
<module>Mycompany_Mymodule</module>
<class>Mage_Eav_Model_Entity_Setup</class><!-- You can have a setup class which extends this class -->
</setup>
<connection>
<use>default_setup</use>
</connection>
</mymodule_setup>
</resources>
3) Затем вам нужно создать скрипт установки в папке вашего модуля со старым и новым номером версии приложения / code / local / mycompany / mymodule / sql / mymodule_setup / mysql4-upgrade-1.0.0-1.0.1.php (mysql4-upgrade-old.version.number-new.version.number.php)
4) И в этом новом сценарии установите код, подобный этому, пожалуйста, адаптируйтесь к вашемуситуация:
<?php
$installer = $this;
/*@var $installer Mage_Eav_Model_Entity_Setup */
$entityTypeId = $installer->getEntityTypeId('catalog_product');
$idAttributeOldSelect = $this->getAttribute($entityTypeId, 'myold_attribute', 'attribute_id');
$installer->updateAttribute($entityTypeId, $idAttributeOldSelect, array(
'frontend_input' => 'multiselect'
));
5) Обновите свою страницу Magento и в конечном итоге очистите кеш