30 мая 2026

    COOPSHOP. Beta-релиз

     

    Бета-релиз: одностраничный интернет-магазин на базе ИИ Qwen

    Представляем бета-версию лёгкого и автономного движка интернет-магазина, разработанного с использованием искусственного интеллекта Qwen. Решение ориентировано на небольшие проекты — до 250 товаров — и сочетает простоту развёртывания с гибкостью настройки.

    Ключевые особенности:

    • Полностью одностраничное приложение на современном стеке: PHP 8.3Foundation 6Alpine.js
    • Автоматический рубрикатор, динамическая пагинация и контекстный фильтр
    • Поддержка двух источников товаров: интеграция с СЭП «Регион» (coopteam.ru) и независимая локальная база в формате JSON
    • Корзина с сохранением в LocalStorage, отправка заказа по email и аварийный экспорт чека для ручного дублирования в мессенджер
    • Минимальные требования к хостингу — подойдёт практически любой
    • Простота сопровождения и потенциал для дальнейшего развития

    Все товары загружаются на одну страницу, что обеспечивает мгновенный отклик интерфейса. Современный браузер уверенно справляется с нагрузкой до 500 позиций.

    Первые карточки уже демонстрируют работу интеграции с СЭП «Регион».

    Ознакомиться с демо-версией:
    → https://coopteam.ru/home/shop/

    Безопасность профиля верифицированных групп пользователей на coopteam.ru

     


    Изменены правила управления профилями для групп пользователей :
    Организация (✓)
    Пользователь (✓)
    Пользователь (✓👁)

    Эти группы представляют верифицированных пользователей и для них закрыта возможность редактированть поля : ИНН, ОГРН, Наименование ЮЛ

    Эти группы имеют расширенные возможности на транзакции вывода и следовательно требуют более безопасных настроек.

    CT_Broker «Витрина брокера» : автономное представительство на базе СЭПР

     

    Витрина брокера: автономное представительство на базе Cyclos API

    Каждый брокер платформы «СЭП Регион» — это отдельная история, своя аудитория и свой стиль. Но технически все они живут в одном портале. Когда брокеру нужна персональная посадочная страница с объявлениями, новостями и формой регистрации, возникает дилемма: либо клонировать весь проект и поддерживать его отдельно, либо довольствоваться ссылкой на общий ресурс.

    Ни то ни другое нас не устроило. Мы построили третий путь — лёгкий автономный движок, который формирует представительство брокера на лету, получая данные исключительно через API Cyclos.

    Архитектура: MVC-lite без фреймворочного жира

    Движок написан на чистом PHP 8.3 + MySQL + Bootstrap 5. Никаких Laravel, Symfony или Composer. Осознанный выбор: задача узкая, зависимости должны быть минимальными, а порог входа для поддержки — нулевым.

    Ядро состоит из пяти классов:

    • Engine — оркестратор. Загружает конфиги, резолвит брокера по домену, инициирует запросы к Cyclos, передаёт управление роутеру.
    • Router — диспетчеризация по чистым URL. Ленивая загрузка обработчиков: файл маршрута подключается только при обращении.
    • Builder — сборщик HTML. Получает контракт (заголовок, блоки, модальные окна) и отдаёт готовую страницу. Не знает ничего о бизнес-логике.
    • CyclosClient — синглтон-аккумулятор данных. Все ответы API оседают в статическом хранилище, доступном любому блоку через getData().
    • BrokerResolver — маппинг HTTP_HOST → запись в БД → плоский массив с префиксом db_. Добавление колонок в таблицу не требует правки кода.

    Контент собирается из блоков: Navbar, Stats, Media, MarketplaceGrid, News, Reviews, Subscribe, Footer. Каждый блок — самодостаточный класс с методом render(). Порядок блоков определяется в маршруте, а не в шаблоне.

    Данные: один запрос — всё представительство

    При первом хите Engine выполняет четыре запроса к Cyclos:

    1. UI-метаданные платформы (название, rootUrl, версия).
    2. Профиль брокера (организация, контакты, координаты, кастомные поля).
    3. Счётчик пользователей.
    4. Объявления с файловым кэшированием.

    Результаты аккумулируются в памяти и доступны всем блокам без повторных обращений к API. Кэш объявлений живёт в /data/adv_{broker}.json, TTL задаётся в конфиге. При сбое API отдаётся просроченный кэш — витрина никогда не показывает пустоту.

    Запись кэша атомарна: сначала пишется временный файл, затем rename(). Это исключает race condition при параллельных запросах — читатель видит либо старый, либо новый файл, никогда не обрезанный.

    Мультидоменность без мультисайта

    Движок не знает, сколько брокеров он обслуживает. Резолвинг происходит по HTTP-заголовку Host. Таблица brokers хранит привязку домена к логину Cyclos. Новый брокер = новая строка в БД + DNS-запись. Код не меняется, конфиги не правятся, деплой не нужен.

    Это не мультисайт в понимании WordPress. Здесь нет общих таблиц контента, плагинов или тем. Есть один механизм рендеринга и изолированные данные для каждого представительства.

    Безопасность и изоляция

    Описание профиля брокера приходит из Cyclos в формате richText. Это пользовательский HTML, который может содержать что угодно. Перед выводом в модальном окне он проходит санитизацию: удаляются <script><iframe>, обработчики событий on*, глобальные CSS-селекторы. Контент оборачивается в изолирующий контейнер со своими стилями.

    Поле field_secret фильтруется на уровне CyclosClient и никогда не попадает в память, логи или JSON-ответы API. Пароли и токены хранятся только в .env вне webroot.

    Оформление: фирменная палитра вместо шаблона

    Вместо чёрного bg-dark и стандартных синих кнопок Bootstrap — два акцентных цвета кооперативной платформы: стальной синий #2795c4 и янтарный #d9851e.

    Навбар получил glassmorphism-эффект: полупрозрачный градиент с backdrop-filter: blur(16px) saturate(1.8). Кнопки — янтарный градиент с объёмом через inset box-shadow. Фон страницы — многослойный CSS-паттерн из пересекающихся ромбов на пастельном градиенте. Без анимации скролла, без тяжёлых картинок, без мерцания.

    Все кастомные стили изолированы префиксом sem-. Bootstrap не перезаписывается, конфликтов нет.

    Почему не фреймворк

    Cyclos API возвращает специфическую структуру данных, которая не ложится на ORM без костылей. Бизнес-логика проекта — это по сути маппинг и рендеринг, а не CRUD. Фреймворк добавил бы сотни файлов, зависимость от обновлений и сложность отладки ради задачи, которая решается пятью классами.

    Чистый PHP здесь — не экономия, а точность. Каждый компонент делает ровно одно дело, тестируется глазами, деплоится копированием файлов.

    Что дальше

    Движок работает в продакшене на orsk.coopteam.ru. В планах — форма регистрации через API Cyclos прямо на сайте брокера, фильтрация объявлений по категориям и интеграция с AI-сервисами ADVIZOR для генерации описаний товаров.

    Но главное уже сделано: каждый брокер получил своё лицо, не потеряв связь с общей платформой. Кооперация — это когда общее усиливает частное, а не поглощает его.