Новое: наборы товаров с подбором от ИИПодробнее ›
Технологии

Своя платформа
для сайтов продаж

Бизнес Витрину мы разработали сами: CMS и ядро на PHP 8.4/8.5, отдельная база данных у каждого клиента, отраслевые модули на общем коде. Интернет-магазины работают в нашем облаке или на сервере заказчика, решения для недвижимости и HoReCa ставятся на сервер заказчика.

3 отраслина одном ядре: e-commerce, девелопмент, HoReCa
1 кодовая базадля облака и для установки на сервер заказчика
3 библиотекисторонних в ядре, остальной код ядра наш
< 1 минутызагрузка из CRM нескольких тысяч объектов
Стек

Архитектура и стек

Современный стек и собственное ядро. Каждый компонент выбран под задачи сайта продаж: скорость, надёжность, простое сопровождение.

CMSСвоя система управления сайтом: страницы и блоки, меню, баннеры и слайдеры, SEO-настройки, шаблоны оформления, права редакторов. Можно сделать сайт целиком на платформе или встроить каталог виджетом в уже работающий сайт.
ЯдроPHP 8.4 и 8.5, строгая типизация во всём коде. Собственный микрофреймворк: DI-контейнер, маршрутизация, слои Domain, Repository и Service. Платформа мультиарендная: клиент определяется по домену, у каждого свои настройки и данные.
ДанныеУ каждого клиента своя база SQLite в режиме WAL, данные разделены на уровне файлов, а не условием в SQL-запросе. Центральный реестр облака работает на MySQL 8. Миграции схемы применяются автоматически при обновлении.
ПоискДва слоя: полнотекстовый индекс FTS5 с ранжированием BM25, затем языковая модель переупорядочивает выдачу, ответы кэшируются. Поиск понимает опечатки, синонимы и запросы своими словами. Модель клиент выбирает сам.
ФронтендВитрина и виджет на Vue 3. Виджет работает в Shadow DOM и не конфликтует со стилями и скриптами сайта, на который его ставят. Страницы каталога заранее собираются в статический HTML с разметкой Schema.org: поисковик и покупатель сразу получают готовую страницу. Картинки отдаются в WebP, на телефон уходит облегчённая версия.
Панель управленияСерверный рендеринг на Twig 3 и Alpine.js. Страницы открываются быстро, тяжёлого SPA нет.
Медиа и документыКартинки проверяются по содержимому, конвертируются в WebP с отдельной версией для телефона, одинаковые файлы хранятся один раз. Счета в PDF с QR-кодом оплаты по ГОСТ Р 56042-2014.
ИнфраструктураDebian, nginx, PHP-FPM, MySQL в Docker, сертификаты Let's Encrypt. CMS на своём сервере ставится и на обычный хостинг с Apache.
ОбновленияНовые версии выходят регулярно и ставятся без переустановки, данные и настройки сохраняются. Каждая версия проходит автоматические тесты; если после обновления что-то пошло не так, платформа сама возвращает прежнюю версию.
Интеграции
1С · CommerceMLYML-фидExcel / CSVMacroCRMDaDataЯндекс КартыБитрикс24amoCRMCalltouchCoMagicЯндекс МетрикаИнтернет-эквайрингiikor_keeperMAXTelegramSMTPDeepSeekClaude
Принципы

Что это даёт заказчику

Модульная архитектура

Вход, права, файлы, интеграции и журналы находятся в ядре, отраслевая логика в отдельных модулях. Релиз собирается под редакцию: застройщик не получает код интернет-магазина, и наоборот.

Облако или ваш сервер

Облако и CMS на своём сервере собираются из одного кода. Интернет-магазин можно запустить в облаке, а потом перенести на свой сервер без доработок. Недвижимость и HoReCa ставятся сразу на сервер заказчика. Обновления ставятся поверх, данные и шаблон не затрагиваются.

Изоляция клиентов

У каждого клиента своя база данных. Нагрузка или сбой у одного не сказываются на остальных, а чужих данных в базе клиента просто нет.

Данные из 1С и CRM

Каталог из 1С, объекты и цены из CRM обновляются по расписанию. Ручные правки хранятся отдельно, и следующая загрузка их не затирает. По каждому объекту виден журнал изменений.

Минимум зависимостей

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

Регулярные обновления

Новые возможности выходят часто и ставятся поверх, без потери данных. Автотесты и автоматический откат делают обновления безопасными.

Масштаб

Рассчитано на рост

Базы клиентов растут независимо, и большой каталог одного проекта не замедляет остальные. Центральная часть облака уже работает на MySQL 8, крупный проект можно перевести на неё же.

200–500 тысяч объектов в каталогеПо нашей оценке, столько выдерживает один сервер. Это масштаб федерального застройщика или крупного ритейлера.

Быстрое чтение каталогаПолнотекстовые индексы, кэш поиска и заранее собранные страницы каталога.

Выделенные серверыДля высокой нагрузки база и приложение разносятся на отдельные серверы.