"Давайте просто візьмемо готову CMS" — розумна ідея на старті і часто помилка на дистанції. Два наші проєкти, K2BAR і Tallers, почали з готових платформ (OpenCart і WordPress/WooCommerce відповідно) і в обох випадках прийшли до одного висновку: готове рішення впирається в стелю значно швидше, ніж здається на старті.
Кейс K2BAR: коли OpenCart "із коробки" ламається на банальних речах
K2BAR — інтернет-магазин з продажу та оренди ресторанного обладнання, посуду, меблів і текстилю. Попередня версія сайту працювала на OpenCart із темою, купленою на маркетплейсі.
Що не працювало:
- Маршрутизація і ЧПУ — глобальна больова точка OpenCart "із коробки": URL-адреси генерувались непередбачувано, без нормального контролю над структурою
- Друга мова тільки погіршила ситуацію — замість того щоб додати мовну версію "по-людськи", проблеми з маршрутами подвоїлись: кожна мова генерувала свій набір непередбачуваних URL
- Оформлення замовлення — типова слабкість OpenCart "з коробки": довгий, заплутаний checkout-флоу, який відсіював частину клієнтів ще до оплати
- Конфліктуючі сторонні плагіни — щоб хоч якось довести магазин до нормальної роботи, поставили набір сторонніх плагінів, які постійно конфліктували один з одним
- Додавання товару — окремий біль — картка товару в OpenCart "із коробки" мала купу зайвих полів, які система вимагала заповнювати навіть якщо вони не мали жодного стосунку до конкретного товару
Рішення: розробка з нуля на Laravel
Замість чергової латки — повна переробка на кастомному фреймворку:
- Динамічний каталог з нормальною фільтрацією товарів, побудований під конкретну структуру асортименту (обладнання, посуд, меблі, текстиль — кожна категорія зі своєю логікою)
- Кошик без обов'язкової реєстрації, що зберігає вибрані товари при повторному вході
- Покроковий чіткий checkout замість заплутаного OpenCart-флоу
- Модуль порівняння товарів і модуль обраного — функціонал, який довелось би збирати з кількох конфліктуючих плагінів, тут написаний як частина єдиної системи
- Особистий кабінет клієнта з історією замовлень
- Картка товару в адмінці — тільки ті поля, які реально потрібні для конкретного асортименту, без обов'язкового "сміття" з коробки
Результат — сайт, де маршрутизація, мультимова і checkout більше не "болять", бо вони спроєктовані з нуля під конкретний бізнес, а не підлаштовані під чужу архітектуру.
Кейс Tallers: коли 15+ плагінів WordPress важать більше, ніж сам сайт
Tallers — протилежний за нішею (luxury fashion), але дуже схожий за суттю проєкт. Клієнт прийшов з запитом "перенести дизайн", а аудит показав: WooCommerce з масою плагінів довів сайт до Performance Score 56 і LCP 5.6 секунди.
Так само, як і в K2BAR, проблема була не в самій платформі, а в тому, що вона не витримувала реальних бізнес-вимог: мультивалютна оплата, міжнародна доставка, кастомна структура товару з кольорами і розмірами. Кожна така вимога в WooCommerce означала ще один плагін — і ще один потенційний конфлікт.
Повний кейс Tallers у блозі
Спільний патерн у обох кейсах
І K2BAR, і Tallers пройшли однаковий шлях:
- Бізнес стартує на готовій CMS, бо це швидко і дешево
- Реальні вимоги (мультимова, checkout-логіка, кастомні товарні структури, оплата/доставка) виявляються складнішими за те, на що система розрахована "з коробки"
- Замість вирішення проблеми система латається сторонніми плагінами — які самі стають джерелом нових проблем
- У якийсь момент латання коштує дорожче й повільніше, ніж переписати з нуля
Коли готові CMS все ж таки виправдані
Чесно: OpenCart, WooCommerce чи будь-яка інша готова CMS — це не погане рішення саме по собі. Вона працює добре, коли:
- Бізнес-логіка стандартна, без специфічних вимог до каталогу чи checkout
- Немає планів на мультимову чи мультивалюту найближчим часом
- Магазин невеликий, і плагінові конфлікти малоймовірні через невелику кількість встановлених розширень
- Пріоритет — швидкий запуск, а не довгострокова масштабованість
Але як тільки з'являється хоч одна нестандартна вимога — друга мова, складна товарна структура, кастомний checkout — готова CMS починає працювати проти тебе, а не на тебе.
Дивись кейси:
Потрібна кастомна розробка для вашого магазину? Розробка e-commerce