Клієнт fastshop — швидкий mobile-first магазин на OpenCart
Роль Solo Creator / Architect
Період Sep 2026
Стек
OpenCart 3 OpenCart PHP 8.3 MySQL Redis WebP Docker WordPress WooCommerce Хорошоп SEO 301 Каталоги товарів
fastshop — швидкий mobile-first магазин на OpenCart preview

fastshop — швидкий mobile-first магазин на OpenCart

Огляд

Незалежний проєкт: швидкий інтернет-магазин на OpenCart 3.0.5 / PHP 8.3 у вигляді надбудови над стандартним OpenCart — легка тема, фільтри за характеристиками з ЧПУ-адресами, чекаут на одній сторінці з вибором міста й відділення Нової Пошти, Redis-кеш, WebP і індекси БД — на каталозі з 30 000 товарів, з вимірюванням проти стандартного OpenCart на тих самих даних.

Результат: сторінки каталогу відповідають за 10 мс замість 34 мс, пошук — за 5 мс замість 267 мс; Lighthouse mobile — 100 зі сторінкою 19–28 КБ (стандарт: 272–336 КБ, перше відображення 2,1–2,4 с → 0,6–0,8 с).


Справжня складність

Стандартний OpenCart на великому каталозі важкий: стек JS/CSS на кожній сторінці, немає фільтрів за характеристиками, дорогий пошук, окремий SEO-запит на кожне посилання, сесії в БД і багатокроковий чекаут. Прискорення — не один прийом, а набір узгоджених змін, що мають переживати редагування товарів: індекс фільтрів і кеш сторінок мусять іти за адмінкою, інакше магазин покаже застарілі ціни.


Архітектура

fastshop: каталог, індекс фільтрів, Redis-кеш, легка тема, чекаут на одній сторінці

Сторінки рендерять контролери, підключені як події OpenCart, тому ядро для них не редагується. Денормалізований індекс фільтрів (рядок на товар і категорію, рядок на значення характеристики, покривні індекси) обслуговує лістинги й лічильники значень; дані сторінок лежать у Redis під ключем версії, який скидається правками в адмінці. Тема — один вбудований стиль і JS без бібліотек.


Ключові інженерні рішення

Рішення Чому
Індекс фільтрів із лічильниками щодо інших груп Звичайна семантика фасетів за ≈9–25 мс для сторінки з 3 фільтрами
Одна канонічна ЧПУ-адреса на стан фільтра (/smartfony/f/brand-nordix/price-5000-30000) Кожен стан — індексована сторінка; інші порядки редіректяться на неї
Фільтри оновлюються без перезавантаження; під ними звичайні посилання Швидко для користувача й працює як звичайна навігація
Події адмінки переіндексують товар і скидають версію кешу Правки видно одразу, без ручного скидання кешу
Замовлення через штатну модель OpenCart Воно зʼявляється в адмінці як будь-яке інше
Ключові слова для посилань сторінки — одним запитом Замість одного запиту seo_url на кожне посилання

Результати

Та сама машина, ті самі 30 000 товарів, стандартний OpenCart 3.0.5.1 проти цієї збірки:

Показник Стандарт fastshop
Сторінка каталогу, час сервера 34 мс 10 мс (21 мс з порожнім кешем)
Пошук 267 мс 5 мс
Пропускна здатність каталогу 160 запитів/с 506 запитів/с
Фільтр за трьома умовами — 9 мс
Lighthouse mobile 94–97 100
Обсяг сторінки 272–336 КБ 19–28 КБ

37 наскрізних перевірок покривають сторінки, кошик, чекаут і шлях через адмінку — кількості у фільтрах звірені з незалежним SQL-підрахунком із таблиць самого OpenCart.


Розвиток у ваш магазин

  • Ваш каталог: імпорт штатними інструментами OpenCart, далі одна команда будує індекс фільтрів.
  • Нова Пошта: NP_API_KEY вмикає живий довідник.
  • Оплата: замовлення йдуть через штатну модель OpenCart, тож розширення оплати може взяти на себе крок оплати.

Код: github.com/valpere/fastshop


Стек

OpenCart 3 · PHP 8.3 · MySQL · Redis · WebP · Docker