Ядро — каркас: конвейер импорта, события, хранилище, шаблонизатор и оболочка интерфейса. Своих товарных функций у него почти нет, всё, что видит магазин, приходит из плагинов. Поэтому свой плагин — это не обход архитектуры, а способ, которым она задумана.
Что это такое
Папка в custom/Plugins с классом Plugin. Класс объявляет название, описание и раздел, в который встаёт его вкладка. Ничего регистрировать не нужно: программа находит папку сама.
Куда можно вклиниться
Плагин подписывается на события конвейера — тем, что объявляет метод с нужным именем. Между чтением прайса и записью в магазин он может:
- поменять цену, название, описание, характеристики;
- подменить или дообработать картинки;
- скрыть позицию, чтобы она не попала в магазин;
- вести свой журнал.
Что плагин получает
- свои таблицы в базе;
- свою страницу настроек в панели;
- то же хранилище, которым пользуется ядро.
Чего делать не надо
Писать в базу магазина напрямую. Это работа драйвера: он знает таблицы конкретной CMS, и только благодаря этому один и тот же плагин работает на разных движках. Плагин решает, что сделать с товаром, а как его записать — знает драйвер.
Привязка плагина к одному движку или даже к одному магазину — это нормально и встречается. Такой плагин так и остаётся плагином, ядро при этом не трогается.
Если писать некому
Опишите задачу — оценим отдельно. Часто выходит быстрее, чем разбираться самому.