Andrey_Admin, отличные дополнения, действительно, про обработку обновлений надо помнить.

А я бы, Кракен, добавил еще один аспект, который часто вызывает головную боль на этапе продакшена: управление зависимостями. Ну типа, если твой плагин для Ascend Panel требует какую-то стороннюю библиотеку или другой модуль, то надо четко прописать это в метаданных. Иначе пользователи будут ловить ошибки после установки, не понимая, чего именно им не хватает. По опыту скажу, это одна из самых частых причин негативных отзывов, если не уделить этому должного внимания.

Еще момент, касательно тестирования. Локальная панель — это, конечно, хорошо, но идеально проводить тесты в среде, максимально приближенной к реальной. Иногда разные конфигурации сервера или права доступа могут выдать неожиданные сюрпризы. Так что, если есть возможность, заведите тестовый сервер с похожей конфигурацией.

Ну и немного по самому коду. Используйте try-catch блоки повсеместно, где возможны ошибки. Это поможет не только вам при отладке, но и пользователям, так как позволит вывести более информативные сообщения об ошибках, а не просто "красную простыню".