В старых системах одно неудачное расширение кладёт весь сайт вместе с админкой, и вы узнаёте об этом от покупателей. Мы построили плагины так, чтобы поломка одного не касалась остальных.
Как работают плагины
Плагин — это папка с кодом, написанным по открытому контракту. Магазин читает её на лету: положили папку или нажали «Установить» в маркетплейсе — раздел появился. Компилировать, собирать и перезапускать ничего не нужно. Обновление плагина — та же кнопка.
Контракт описывает, что плагин может: добавить пункт меню, страницу, свою таблицу в базе, вмешаться в расчёт корзины. Ничего сверх контракта плагин сделать не может.
Изоляция
Каждый плагин работает в своих границах. Если он падает с ошибкой, магазин отключает только его: витрина, корзина, заказы и админка продолжают работать, а в журнале появляется запись, какой плагин и почему. Вы видите это в админке, а не в отзывах.
Несовместимый после обновления ядра плагин тоже просто отключится, а не сломает сайт. Автор поправит его, вы обновите кнопкой.
Маркетплейс и модерация
Плагины публикуют партнёры через кабинет на этом сайте. Перед публикацией код читает модератор: проверяет, что плагин делает то, что обещает, и не делает лишнего. В маркетплейсе — только прошедшие проверку. Установка из админки магазина — одна кнопка, платные плагины оплачиваются там же.
Хотите своё расширение? Написать его может любой разработчик на Go по инструкции, и оно не обязано быть в маркетплейсе: папку можно просто положить на сервер.