Skip to content

Каталог подсистем

Статус: зафиксировано (пополняется по мере решений). Исчерпывающая карта подсистем полноценной CMS корпоративного класса. Принцип: каждая подсистема — отдельный модуль (composer-пакет), кроме явно отнесённых к ядру. Ориентир по полноте — 1С-Битрикс, WordPress, Drupal, TYPO3, Magento; привязка доноров — 8 проектов студии.

У каждого модуля — отдельный файл ТЗ (возможности, API, компоненты, настройки, события, донорский код): индекс ТЗ модулей. Подсистемы ядра — в ТЗ ядра + API.

Принцип: универсальное ядро + модульное включение (модель Битрикс)

Ключевой принцип, согласованный в брейншторме:

Ядро — большое и универсальное (богатые базовые механизмы и точки расширения), но возможности раскрываются через модули, которые включаются по потребности. Чем меньше модулей включено — тем легче работает сайт.

Это в точности модель 1С-Битрикс: ядро D7 мощное и универсальное, но sale, catalog, iblock — отдельные модули. Не подключённый модуль не грузится и не тратит ресурсы.

Что относится к универсальному ядру (богатое, но не «фичи»):

  • базовые механизмы: движок полей (для типов контента и форм), шина событий/хуков, очереди, кеш, стор настроек, медиа, права, API-слой (REST/GraphQL для сущностей);
  • редакторы (внутренние инструменты): редактор сущностей и типов данных, файловый менеджер (файлы/папки/разделы), управление пользователями, конструктор форм;
  • контент-движок: страницы+блоки, произвольные типы контента, меню, виджеты, SEO-база.

Что раскрывается модулями (фичи поверх ядра):

  • e-commerce (каталог, корзина, заказы, платежи, доставка), интеграции (платёжные шлюзы, CRM, 1С, доставка, крипта, мобильные API), маркетинг, специфические подсистемы.

Что даёт такая модель:

  • лёгкость по включению, а не по коду — «тяжесть» сайта определяется числом включённых модулей, а не размером ядра на диске;
  • универсальность из коробки — ядро способно на многое (поля, события, API, редакторы), не переизобретая базу в каждом модуле;
  • независимые релизы — модуль платежей обновляется, не трогая ядро и другие модули;
  • изоляция сбоев — баг в выключенном модуле не влияет на сайт;
  • раздельное лицензирование/биллинг — модуль как единица подписки.

Ядро vs модуль: критерий

В ядреВ модуле
Базовый механизм, на котором строят другие (поля, события, API, права)Конкретная фича (платежи, доставка, блог)
Нужен любому сайту или как фундамент для модулейНужен некоторым сайтам
Редактор-инструмент (сущности, файлы, пользователи)Прикладная логика поверх редакторов
Не имеет смысла «выключить»Осмысленно включать/выключать per-сайт

Слои

СлойЧто этоПравило
ЯдроБазовые механизмы + редакторы, нужные как фундаментВ cms/core. Универсальное, всегда загружено
Инфра-модульСквозная техническая подсистемаМодуль, включается; часто нужен почти везде
Функц-модульПрикладная фича для некоторых сайтовМодуль, включается строго под заказ

Обязательный набор managed-парка — часть skeleton по умолчанию: Резервное копирование, Мониторинг/health-check, Sentry, Центр обновлений (условие процедуры cms:upgrade: бэкап → health-check → гейт) + Attack-monitor и 2FA для ролей студии (безопасность). Технически это модули (сайт вне подписки живёт без них), но на managed-сайте они не выключаются.

Ядро универсальное (богатое): движок полей, события, очереди, кеш, API-слой, редакторы сущностей/файлов/пользователей, контент-движок, SEO-база, права. Оно всегда загружено — это фундамент. Всё прикладное (поиск, CDN, платежи, доставка, интеграции) — модули: включил модуль → появилась возможность; не включил → не грузится. Тяжесть сайта = число включённых модулей.

Три оси зависимостей (заложить первыми)

Почти всё в CMS висит на трёх сквозных подсистемах ядра. Если их не спроектировать идеально в фазе 0, модульность будет неполноценной:

  1. События/хуки — точки расширения для любого модуля. Без них модуль не может вклиниться в поток ядра, и вся расширяемость рушится. См. расширяемость.
  2. Очереди — почти вся коммуникация, интеграции, обработка медиа и импорт уходят в фон. Синхронная отправка письма/вебхука в HTTP-запросе — антипаттерн.
  3. Настройки/Конфигурация — каждый модуль регистрирует свои настройки в единой панели. Без общего стора настроек каждый модуль изобретает свой — хаос в админке.

Отдельно стоит шина интеграций (integration core) — единый слой коннекторов (креды, ретраи, логи, очереди) вместо разрозненных интеграций. Все внешние сервисы (платёжные шлюзы, CRM, доставка, 1С) подключаются через неё, а не каждый сам по себе.

Как именно подсистемы обмениваются данными (пять каналов, владение таблицами, запреты) — обмен данными: ядро ↔ модули ↔ компоненты; универсальные требования к построению любого модуля — стандарт модуля.


1. Инфраструктурные подсистемы

Сквозные, технические. Часть — в ядре (без них не живёт ничего), часть — модули.

ПодсистемаЧто делаетСлойДонор студииЗависимости
Kernel/DI/bootstrapЗагрузка модулей, контейнер, service providersЯдро— (Laravel)
Реестр модулейУстановка/включение/порядок загрузки, зависимости модулейЯдроnwidart (референс)Kernel, События
События/хукиШина доменных событий + фильтры (перехваты)Ядро— (проектируется)
Конфигурация (settings store)Единый стор настроек env→config→БД, кешЯдроuniversal, gulaev-devКеш
Локализация ядра (i18n строк)Переводы строк UI, локали, форматы дат/чиселЯдровсеКонфигурация
API-слой (REST)API для всех сущностей ядра, headless-ready, версии; GraphQL — отдельный инфра-модуль (Lighthouse), см. API-контрактЯдроАутентификация, RBAC
Broadcasting/realtimeWebSocket/SSE для админки и фронтаИнфра-модульОчереди, События
Локальные переопределения (/local)Аналог Битрикс local+init.phpЯдроСобытия
Кеш-слойТеговый page-cache + инвалидация из админкиЯдроcatalog, universalСобытия
МедиатекаЗагрузка/ресайз/конверсии, presetsЯдровсе (spatie/medialibrary)Файл-хранилище
Обработка изображенийРесайз, webp/avif, водяные знакиЯдровсеМедиатека
Файловое хранилищеАбстракция диска (local/S3), приватные файлыЯдро
ОчередиАсинхронные задачи (Redis/Horizon)Ядровсе
Планировщик (cron)Регулярные задачи (sitemap, прогрев, отчёты)ЯдровсеОчереди
ЛогированиеКаналы логов, ротацияЯдровсе
Отладка/профилированиеTelescope/Pail, query-log, N+1-детектИнфра-модульЛогирование
Мониторинг/health-checkЖивость сервисов, метрики, alertingИнфра-модуль (обяз. в managed-парке)er (SEO health), catalogУведомления
Sentry/трекинг ошибокСбор исключений с прода, гейт обновленийИнфра-модуль (обяз. в managed-парке)Логирование
Поиск (индексация)Полнотекст Scout+Meilisearch/ES, intentИнфра-модульcatalog, freelanceОчереди
CDN-инвалидацияPurge при изменении контентаИнфра-модульcatalog (Bunny/CF)События, Кеш
Аудит действийЖурнал «кто что изменил»Инфра-модульfreelance, referendumСобытия
Резервное копированиеБэкап БД+файлов: регулярный + перед обновлениемИнфра-модуль (обяз. в managed-парке)— (инфра студии)Планировщик
Импорт данныхИмпорт из CSV/XML/API (каталог, контент)Инфра-модульuniversal (Import/*)Очереди
Экспорт данныхВыгрузка (прайс XLSX, отчёты)Инфра-модульuniversalОчереди
Feature-flagsМеханизм (laravel/pennant) — в ядре (состояния модулей); UI-таргетинг по роли/проценту — модульЯдро (механизм) + Инфра-модуль (UI)Настройки
Миграции данныхВерсионные преобразования данных (не схемы)Ядро

2. Коммуникационные подсистемы

Всё, что уходит наружу пользователю/команде. Ядро даёт только базовую отправку заявки; каналы — модули.

ПодсистемаЧто делаетСлойДонор студииЗависимости
Заявки (Leads)Форма → лид → админка (без корзины/оплаты)Ядроuniversal (Contact), freelanceФормы, Очереди
Email/SMTPОтправка писем, конфиг транспортаЯдровсеОчереди
Шаблоны писемРедактируемые шаблоны транзакционных писемИнфра-модульEmail
Шина уведомленийРезолвер каналов + preferences получателяИнфра-модульfreelance (BaseNotification), notalОчереди
Push (web/mobile)Web-push / FCMФункц-модуль(push-server)Шина увед.
SMSОтправка SMS через шлюзФункц-модульШина увед.
TelegramУведомления команде/клиенту в TelegramФункц-модульmasha, notalШина увед.
WhatsApp/мессенджерыКаналы мессенджеровФункц-модульШина увед.
Рассылки (newsletter)Списки подписки, кампании, отписка, double opt-inФункц-модульEmail, Очереди
Исходящие вебхукиPOST во внешние системы на события, подпись, ретраиФункц-модульСобытия, Очереди
Входящие вебхукиПриём колбэков (платежи, мессенджеры, CRM), верификацияИнфра-модульnotal (платёжные)События, Безопасность
Внутренние уведомленияКолокольчик в админке, непрочитанныеИнфра-модульfreelanceШина увед.
Чат/онлайн-консультантВиджет чата, операторы, историяФункц-модульRealtime, Шина увед.

3. Безопасность и доступ

ПодсистемаЧто делаетСлойДонор студииЗависимости
АутентификацияЛогин/сессии/сброс пароляЯдровсе
RBAC/праваРоли и permission'ы (Shield+spatie)Ядроfreelance, referendumАутентификация
Политики (Policies)Авторизация действий над моделямиЯдровсеRBAC
Rate-limitingТроттлинг форм/APIЯдровсе
Защита формКапча/honeypot/CSRFЯдровсеФормы
2FAДвухфакторка (TOTP/QR)Функц-модульer, freelance (google2fa)Аутентификация
OAuth/соцвходВход через Google/VK/ЯндексФункц-модульАутентификация
Magic-loginВход по ссылке (passwordless)Функц-модульnotalEmail
API-токеныSanctum/Passport, ключи для APIИнфра-модульfreelanceАутентификация
АнтиспамФильтр спама в формах/комментарияхФункц-модульФормы
АнтифродДетект накрутки отзывов/заявокФункц-модульcatalog, erОтзывы, Заявки
Согласия/152-ФЗРасширенные согласия: журнал, экспорт/удаление данных. Базовое (чекбокс согласия + consent_at на лиде) — в ядре: формы ядра собирают ПДн с первого дняФункц-модуль (база — ядро)Аудит
Cookie-consentБаннер, категории cookie, хранение выбораФункц-модульСогласия, Настройки
Шифрование полейШифрование чувствительных данных в БД (encrypted casts)Ядро
Session-управлениеАктивные сессии/устройства, принудительный выходИнфра-модульАутентификация
Attack-monitor (статистика атак)Детект SQLi/XSS-паттернов, брутфорса, сканеров, флуда; журнал атак, автоблокировка со ступенями, экспорт блок-листа в Caddy, дашборд, алерты — см. безопасностьИнфра-модуль (обяз. в managed-парке)catalog/er (антифрод), freelance (Reputation)Логирование, Аудит, Уведомления
Политика паролейСложность, срок, история, проверка компрометации (HIBP)Инфра-модульАутентификация

4. E-commerce

Целиком набор функц-модулей. Даже каталог — модуль (сайту-визитке не нужен).

Граница «лид ≠ заказ» (важно). Корпоративному/каталожному сайту магазинные бизнес-процессы не нужны: нет корзины, оплаты, налогов, чеков, бухгалтерии. Ему достаточно заявки (лида) — форма собирает контакт и уходит напрямую в админку (см. Заявки в ядре). Это подтверждено донором universal: там есть Contact (лид: тип, статус, согласие ПДн, опц. привязка к товару, город) и Product (каталог-витрина), но нет Order, Cart, Payment, Invoice — сайт работает на заявках без магазина.

Корзина, заказы, платежи — отдельные модули интернет-магазина, включаются только когда сайту действительно нужна онлайн-продажа. Витрина каталога (просмотр товаров без покупки) возможна и без корзины — как в universal. Заявка «оставить заявку на товар» — это лид с привязкой к товару, а не заказ.

Доменная модель слоёв (торговые предложения, мульти-склад, типы цен, НДС/чеки, цифровые товары/услуги, rule-engine скидок и бонусов) — модель e-commerce.

ПодсистемаЧто делаетСлойДонор студииЗависимости
КаталогТовары/услуги, категории, вариации/SKUФункц-модульuniversal, catalog (гео)Медиа; suggests Поиск (fallback — PG tsvector)
Свойства/характеристикиТипы свойств, значения, фильтруемость, единицыФункц-модульcatalogКаталог
Фасетный фильтрФильтрация по свойствам/цене/наличию, агрегацииФункц-модульcatalogКаталог, Поиск
Цены/типы ценРозница/опт/старая/price1-2; видимость по группам пользователей и уровню лояльности; тир-прайсинг от количестваФункц-модульmashaКаталог, Валюты
КорзинаСессионная/персистентная корзинаФункц-модульmashaКаталог
Брошенные корзиныДетект и напоминание о незавершённом заказеФункц-модульКорзина, Email
ЗаказыОформление, статусы, историяФункц-модульmasha, notalКорзина
ПлатежиШлюзы: приём, возвраты, вебхукиФункц-модульnotal (YooKassa+эскроу), er (Cashier)Заказы, Очереди
Подписки/рекуррентные платежиПериодическое списание, тарифы, продлениеФункц-модульer (Cashier), notalПлатежи, Планировщик
ДоставкаРасчёт стоимости, интеграции ПВЗ/курьерФункц-модульЗаказы
НалогиРасчёт НДС/налогов по правиламФункц-модульЗаказы
Скидки/промокодыПравила скидок, промокоды, сертификатыФункц-модульnotalКорзина, Заказы
Мульти-склад/остаткиНесколько складов: остатки и резервы per-склад, журнал движений, доступность по городу/каналуФункц-модульmashaКаталог
Цифровые товарыВыдача файлов/лицензий после оплаты, чеки с признаком «цифровой товар»Функц-модульКаталог, Платежи
Продажа услугУслуга как позиция заказа (без склада), мост с модулем «Услуги»Функц-модульКаталог
Возвраты (RMA)Оформление возвратов/рефандовФункц-модульnotal (споры)Заказы, Платежи
Чеки/ОФД (54-ФЗ)Фискализация, отправка чека в ОФДФункц-модульПлатежи
ВалютыМультивалютность, курсы (ЦБ РФ)Функц-модульer (крипто)Каталог
Инвойсы/документыСчета, накладные (PDF)Функц-модульreferendum (dompdf)Заказы
Wishlist/избранноеОтложенные товары пользователяФункц-модульКаталог, Пользователи
Сравнение товаровСписок сравнения по характеристикамФункц-модульКаталог, Свойства
B2B (юрлица/договоры/кредит-лимит)Юрлица, отсрочка, персональные прайсыФункц-модульЗаказы, Цены
Маркетплейс/мультивендорПродавцы, их товары/заказы, комиссии, выплатыФункц-модульnotal (эскроу)Каталог, Заказы, Платежи

5. Контент

ПодсистемаЧто делаетСлойДонор студииЗависимости
Страницы + блокиPage + PageBlock + BlockRegistry, drag&dropЯдроuniversal, gulaev-devСобытия
Произвольные типы контентаПользовательские сущности (JSONB+GIN, не EAV)Ядро
Конструктор формКлиент собирает форму самЯдроЗаявки
Черновики/версииdraft/published + история, откатЯдро— (референс Twill)Страницы
Менюheader/footer data-drivenЯдроuniversalСтраницы
ВиджетыСквозные элементы в областях (сайдбар/футер)ЯдроСтраницы
Настройкиsetting('group.key') из БДЯдроuniversal, gulaev-dev
МультиязычностьПеревод контента (city-based / translatable)Функц-модуль (заготовка в ядре)referendum, universalСтраницы
Таксономии/тегиКатегории, метки, иерархии, привязка к контентуЯдронесколькоТипы контента
Публикация по расписаниюОтложенная публикация/снятие, статусыФункц-модульПланировщик, Страницы
Блог/статьиПосты, рубрики, теги, блочный контентФункц-модульgulaev-dev, universalСтраницы
КомментарииКомментарии к контенту, модерацияФункц-модульАнтиспам
Отзывы/рейтингиОтзывы, агрегат рейтинга, модерацияФункц-модульcatalog, erАнтифрод
Модерация (workflow)Согласование контента, статусы, роли-редакторыФункц-модульRBAC, Черновики
FAQВопрос-ответ + Schema.org FAQPageФункц-модульнесколькоSEO
Глоссарий/справочникТермины (SEO-полезно)Функц-модуль3 проекта (Dictionary)SEO
Баннеры/слайдерыРекламные блоки, ротация, таргет по страницеФункц-модульнесколькоМедиа
Галереи/портфолиоКоллекции изображений/работФункц-модульнесколькоМедиа
Связанный контент/рекомендации«Похожее», «с этим смотрят», ручные связиФункц-модульТипы контента
КалькуляторыКонструктор калькуляторов из секций/полейФункц-модульuniversal, gulaev-dev, referendumФормы
Опросы/голосованияОпросы, голосаФункц-модульreferendumФормы
Wizard/анкетыМногошаговые формы с сессиейФункц-модульreferendumФормы

6. Маркетинг и SEO

ПодсистемаЧто делаетСлойДонор студииЗависимости
ЧПУ/маршрутизация URLЧеловеко-понятные URL, slug, канонизация, транслитЯдровсеСтраницы
SEO (мета/шаблоны)Резолвер мета, шаблоны с переменнымиЯдроgulaev-dev, erСтраницы
SitemapГенерация xml (+HTML), пинг поисковикамЯдроer, catalog, notalПланировщик
Robots/редиректыrobots.txt, 301-редиректы, лог 404Ядроgulaev-dev
Schema.orgJSON-LD микроразметка по типу страницыЯдроgulaev-devSEO
OpenGraph/шарингOG-теги, кнопки шаринга, превью соцсетейЯдронесколькоSEO
SEO-движок (расшир.)Auto-linking, hreflang, аудит, orphan-детектФункц-модульgulaev-dev, erSEO
Мультигород/геотаргетингГород по гео, контент/цены/телефон по регионуФункц-модульuniversal, gulaev-dev, erSEO, Настройки
Аналитика/счётчикиGA4/Метрика, вставка кодов, целиФункц-модульНастройки
Пиксели/tag managerVK/Meta Pixel, GTM, события конверсийФункц-модульАналитика
UTM/трекинг источниковРазбор UTM, атрибуция заявок/заказовФункц-модульЗаявки
A/B-тестыВарианты страниц/блоков, сплитФункц-модульFeature-flags, Аналитика
ЛендингиОтдельные посадочные (как панель студии)Функц-модуль(studio-core)Страницы
Поп-апы/лидогенерацияВсплывающие формы, exit-intent, таргетингФункц-модульФормы, A/B
Email-маркетингТриггерные цепочки, сегменты, автоворонкиФункц-модульРассылки
Купоны/промо-кампанииПромо-посадочные, таймеры акцийФункц-модульnotalСкидки, Лендинги
Реферальная программаКоды, бонусы, балансовые транзакцииФункц-модульnotalЗаказы
Лояльность/бонусыБонусные баллы, уровни, кэшбэкФункц-модульnotalЗаказы

7. Администрирование

ПодсистемаЧто делаетСлойДонор студииЗависимости
Админ-shellПанель Filament, навигацияЯдроFilamentRBAC
Дашборд/виджетыСтатистика, новые заявки, кнопки действийЯдронесколькоЗаявки
Настройки сайтаFilament-страница настроекЯдроuniversalНастройки
Центр обновленийcms:upgrade, версии, откатИнфра-модуль (обяз. в managed-парке, ставится skeleton'ом)Бэкап, Health-check
Маркетплейс модулейКаталог расширений, установка, лицензииФункц-модульРеестр модулей, Центр обновлений
Онбординг/визард установкиПошаговая установка, проверка требованийИнфра-модульНастройки
Панель разработчикаКеш-очистка, миграции, диагностика из UIИнфра-модульКеш, Планировщик
Локали/переводы (UI)Управление языками сайта и строками из админкиФункц-модульЛокализация ядра
Личный кабинет пользователяФронт-кабинет: заказы, данные, подписки — зона 3 (Inertia+React SSR) либо вторая Filament-панель, см. фронт-архитектуруФункц-модульнесколькоПользователи, Заказы
МногосайтовостьНесколько сайтов на одной установкеИнфра-модульНастройки, Маршрутизация
МультитенантностьИзоляция данных по тенанту (БД/схема/префикс)Инфра-модульАутентификация
Управление доменамиПривязка доменов к сайтам/тенантамИнфра-модуль(proxy)Многосайтовость
Флит-дашбордТелеметрия парка сайтов, волны обновленийФункц-модуль(proxy dns watch)Центр обновлений

7a. Внутренние редакторы (инструменты ядра)

Универсальное ядро даёт набор редакторов-инструментов — они всегда доступны и служат фундаментом для модулей. Это то, что в Битрикс размазано по «Контенту», «Настройкам» и «Пользователям», а у нас собрано как явный слой инструментов.

РедакторЧто делаетСлойЗависимости
Редактор сущностейCRUD любой сущности (Filament-ресурсы, авто-генерация)ЯдроТипы контента, RBAC
Редактор типов данныхСоздание пользовательских типов контента и полей (JSONB+GIN)ЯдроДвижок полей
Движок полейТипы полей, валидация, рендер — общий для типов/формЯдро
Файловый менеджерФайлы, папки, разделы; загрузка, перемещение, чисткаЯдроМедиатека, Хранилище
Управление пользователямиПользователи, роли, права, статусы, сессииЯдроАутентификация, RBAC
Редактор разделов/структурыДерево разделов сайта, привязка контентаЯдроСтраницы, Меню
Конструктор формФормы из полей (переиспользует движок полей)ЯдроДвижок полей, Заявки
Редактор менюДерево пунктов, вложенность, привязка к URLЯдроСтраницы
Редактор блоков (drag&drop)Сборка страницы из блоков, средняя свободаЯдроBlockRegistry

Эти редакторы — причина, по которой ядро «большое»: они универсальны и не имеют смысла «выключаться». Модули используют их (модуль каталога заводит тип «Товар» через редактор типов; модуль вакансий — тип «Вакансия»), а не переизобретают.

8. Интеграции (РФ-специфика)

ПодсистемаЧто делаетСлойДонор студииЗависимости
Шина интеграций (integration core)Единый слой коннекторов: креды, ретраи, логиИнфра-модульОчереди, Настройки
ЮKassa/Тинькофф/Робокасса/СБПРФ-платёжные шлюзы, СБП QRФункц-модульnotalПлатежи, Вх. вебхуки
Крипто-платежиПриём крипты, курс, подтвержденияФункц-модульerПлатежи, Валюты
ОФД/фискализация (АТОЛ/Эвотор)Отправка чеков в ОФД по 54-ФЗФункц-модульЧеки 54-ФЗ, Платежи
1С-обмен (CommerceML)Двусторонний обмен товарами/заказами/остаткамиФункц-модульКаталог, Заказы, Склад
CRM (Битрикс24/amoCRM/RetailCRM)Отправка заявок/сделок/контактов в CRMФункц-модульЗаявки, Исх. вебхуки
Службы доставки (СДЭК/Почта/Boxberry)Расчёт, отправления, трек, ПВЗФункц-модульДоставка
Маркетплейсы (Ozon/WB/ЯМаркет)Выгрузка товаров, приём заказовФункц-модульКаталог, Заказы, Склад
Яндекс-сервисыКарты, Метрика, SmartCaptcha, БизнесФункц-модульнесколькоШина интеграций
Google-сервисыMaps, Analytics, reCAPTCHAФункц-модульШина интеграций
Госуслуги/ЕСИААвторизация и данные через ЕСИАФункц-модульOAuth, Согласия
ЭДО (Диадок/СБИС)Обмен юридически значимыми документамиФункц-модульШина интеграций, B2B
DaData/ФИАСПодсказки адресов, реквизитов по ИННФункц-модульФормы, Заказы
Курсы валют (ЦБ РФ)Автообновление курсовФункц-модульВалюты, Планировщик
Объектное хранилище (S3/Selectel/YOS)Бэкенд для файлов/медиа/бэкаповИнфра-модульФайл-хранилище
Видеохостинг (VK Video/YouTube/Rutube)Встраивание, превьюФункц-модульМедиа
Email/SMS-провайдеры (Unisender/SMS.ru)Транспорт для рассылок и SMS через APIИнфра-модульEmail, SMS
Календари (Google/Яндекс/CalDAV)Синхронизация событий/бронированийФункц-модульШина интеграций
ERP/учётные системыОбмен номенклатурой, ценами, документамиФункц-модуль1С-обмен, Заказы

Что в ядре, а что — модуль (сводка)

Ядро (cms/core) — только то, без чего не работает сайт-визитка:

Kernel/DI · Реестр модулей · События/хуки · Конфигурация · Локализация строк · /local · Кеш · Медиа/картинки/хранилище · Очереди · Планировщик · Логи · Миграции данных · API-слой (REST) · Заявки · Email · Аутентификация · Пользователи · RBAC · Политики · Rate-limit · Защита форм · Согласия ПДн (база) · Шифрование · Страницы+блоки · Произвольные типы · Таксономии · Конструктор форм · Черновики · Меню · Виджеты · Настройки · ЧПУ/маршрутизация · SEO/Sitemap/Robots/Schema/OG · Админ-shell · Дашборд · Настройки сайта · (+заготовка мультиязычности)

Всё остальное — модули. Ставятся под конкретный заказ. Первый заказ (новый клиентский сайт) определит, какие модули портируются первыми — см. реестр модулей и дорожную карту.

Российская специфика — отдельными модулями

РФ-подсистемы вынесены из дефолтной поставки в отдельные модули: бизнес-логика (Платежи, Доставка, Чеки, Согласия) — абстрактна в ядре/базовых модулях, а РФ-коннекторы подключаются поверх. Так международное ядро не тащит локальную специфику, а РФ-проект ставит нужное:

54-ФЗ/ОФД · ЮKassa/Тинькофф/Робокасса/СБП · СДЭК/Почта/Boxberry · 1С-обмен (CommerceML) · маркетплейсы Ozon/WB/ЯМаркет · Яндекс (Метрика/Карты/SmartCaptcha) · Госуслуги/ЕСИА · ЦБ РФ курсы · DaData/ФИАС · 152-ФЗ (Согласия/cookie) · ЭДО (Диадок/СБИС)

Уточнения — закрыты

Вопросы, открытые на момент первой версии каталога, решены и зафиксированы:

Было открытоРешениеГде
Граница каталог/e-commerceКаталог — модуль-витрина (universal-модель «каталог + лид»); магазин — метапакет зависимых модулей поверхмодель e-commerce
Обобщение калькуляторов/глоссария/антифродаПо одному конфигурируемому модулю с назначенным доноромТЗ cms/calculator, cms/glossary, cms/antifraud в индексе
Метапакеты под типовой заказКанонические составы зафиксированыкаталог модулей
«Часто забываемые» подсистемыВсе внесены в каталог и получили отдельные ТЗиндекс ТЗ модулей

Смежные разделы

Отдельные крупные темы вынесены в свои страницы (там детальный разбор возможностей):

  • ТЗ модулей — отдельное ТЗ на каждый модуль этого каталога; стандарт модуля — требования к построению;
  • Обмен данными — пять каналов ядро↔модули↔компоненты, владение данными, запреты;
  • Модель e-commerce — ТП, мульти-склад, типы цен, НДС/чеки, rule-engine, highload-требования каталога;
  • SEO — гибкость — правила, редиректы, переменные, умный фильтр, региональность, подмена URL;
  • Мультиязычность — стратегии переводов, резолв локали, hreflang;
  • Интеграции и API — REST/GraphQL, вебхуки, платёжные шлюзы, доставка, крипта, CRM/1С, маркетплейсы, мобильные приложения;
  • Клиентские кабинеты — ЛК B2C/B2B, мультивендор-маркетплейс, UGC-публикации от пользователей.

Внутренняя база знаний студии