У меня есть плагин шлюза оплаты, который служит универсальным сервисом для нескольких шлюзов. У меня стандартизированы эти шлюзы в классах, которые я использовал для WooCommerce и Drupal, для обработки платежей и генерации заказов.
Эти классы имеют некоторые поля конфигурации, которые отличаются от одного к другому.
В WP и Drupal я смог сгенерировать формы конфигурации с PHP динамически (из PHP).
В Magento единственный хороший способ создания опций — это файл system.xml. Это хорошо обрабатывает процесс сохранения и генерации форм.
Я пытался наследовать от класса Blockset Block и использовать класс frontend_model для динамического рендеринга полей. Но сгенерированные поля не работают должным образом.
Это связано с тем, что даже если задать одинаковые параметры для текстового поля в файле XML и в методе addField fieldset, поле не будет сгенерировано одинаково (например, я не смог получить комментарий для отображения при генерации поле из PHP).
Самый простой способ (и единственный, который я знаю) — сделать это через xml, как любой модуль magento. Вы можете взять пример в system.xml файла mage_catalog для примера.
Других решений пока нет …