Почему "купить тему + 20 модулей" - худшее, что можно сделать с OpenCart


143

Ставить кучу расширений на OpenCart - это не решение, это диагноз

Типичная история: накатил vanilla OpenCart > магазин выглядит как говно из 2012-го > пошёл на форум/маркетплейс > купил шаблон и десяток расширений > поставил их на сайт, получил мёртворождённого Франкенштейна, поздравляю, ты официально в extension hell. И это не баг, это стандартный путь большинства "проектов на OpenCart". Ибо модель монетизации движка вынуждает это делать. Я без претензий, просто факты.

Грустный факт: из коробки OpenCart действительно не юзабельный полноценный магазин/сайт. Нет нормального живого поиска, нет .webp без белых полей, нет сжатия CSS/JS одним кликом, нет кэширования на уровне модели, нет ответов на отзывы под ними, нет программных 301-редиректов, нет стикеров для товаров, а внешний вид кричит купи шаблон, так жить нельзя. Всё это база, но в ядре её нет. Но есть толпа энтузиастов разной степени "мастерства" и возможность продать расширения. Так и живём.

Почему 90% модулей - это не решение проблем, а их создание

Вот классический пример, который я видел десятки раз: модуль для автоматической конвертации изображений в .webp.

Что нужно было сделать правильно? Две-три элементарные правки: добавить логику в библиотеку Image (чтобы генерировал webp при ресайзе) и поправить контроллер/модель, где отдаются ссылки на миниатюры. Всё. Чисто, быстро, без оверхеда.

А что сделал автор модуля? Он модифицировал библиотеку Response - перехватывал весь вывод страницы и тупо заменял строки ссылок на .webp через str_replace или regex. Потому что не осилил разобраться, как работает базовая логика генерации изображений в OpenCart. Вместо точечной правки - глобальный костыль. Пример не притянут за уши, это реальный модуль! Утрированно, но суть именно такова - авторы модулей редко бывают специалистами по OpenCart, чаще это захудалые фрилансеры с опытом чуть здесь, чуть там и подходом "работает и ладно". Вроде звучит прагматично, но на деле для реальных магазинов и бизнесов в долгосрочной перспективе это приведет к неподдерживаемому проекту с которым никто не хочет иметь дело, ибо сделать снуля быстрее и дешевле, чем разгребать эту кучу говна.

Это не единичный случай. Это основной паттерн: автор не понимает/не хочет понимать архитектуру > лепит свой параллельный мир > плодит ещё больше костылей (клиенты жалуются > фикс-модуль > цикл). В итоге ты платишь за расширение, чтобы потом платить ещё раз за то, чтобы оно не ломало всё остальное. Несколько таких циклов и приехали. 

Я не против модулей

Обеими руками за расширения, если они решают то, что реально нельзя/не нужно пихать в ядро: интеграции с платёжками, доставками, специфические бизнес-фичи, аналитика, CRM-синхронизация и т.д.

Но модуль должен уважать платформу: опираться на MVC, использовать events, не трогать ядро без нужды. Если модуль ломает логику OpenCart - это не модуль, это малварь. А таких большинство, потому что рынок требует "быстро и дешево", а не "правильно и стабильно".

Коротко и по делу

Ставить кучу расширений - это не прагматизм, а капитуляция перед ленью и незнанием. Это лечение симптомов, вместо лечения болезни. Лучше взять чистую базу и встроить нужное в ядро/модели/контроллеры - стабильнее, быстрее, чище, логичнее, приятнее и дешевле в долгосроке.

Именно поэтому в exopencart большинство этих "обязательных" фич уже внутри: .webp без белых полей, живой поиск, нормальное кэширование, сжатие CSS/JS, ответы на отзывы, стикеры, 301-редиректы и прочее - без внешних модулей и без костылей. Минимум зависимостей, максимум контроля.

Откликнулось? Попробуй сборку! Не хочешь? Очень жаль 😢

Issues открыты, конструктивная критика приветствуется, вэлкам!


Написать комментарий
Введите код с картинки