Разработка сайта онлайн-школы на 1С-Битрикс
При разработке онлайн-школы на Битрикс ключевая сложность — организовать продажу курсов и гибкий контроль доступа после оплаты. Стандартная LMS вроде Moodle плохо приспособлена для продажи и маркетинга, а Битрикс с модулем sale и торговым каталогом требует грамотной архитектуры. Разберём технические решения, которые мы применяем в проектах.
В нашей практике мы реализовали десятки проектов для онлайн-школ — от монокурсов до платформ с 50+ курсами и интеграцией с Moodle. Основное время уходит на модуль контроля доступа и LMS-функционал. Клиенты часто приходят с задачей объединить витрину, платёжную систему и закрытый контент — и мы находим оптимальную архитектуру под каждый кейс.
Почему Битрикс для онлайн-школы?
Битрикс из коробки предоставляет торговый каталог, корзину, заказы, скидки и купоны — это 60% функционала для продажи курсов. Остальное — доработка контроля доступа, личного кабинета и интеграций. В отличие от специализированных LMS, Битрикс не требует отдельного маркетингового инструмента: SEO-модуль, формы, рассылки уже встроены.
Как организовать продажу курсов и контроль доступа?
Ключевая механика: пользователь оплачивает курс и получает доступ. Реализация зависит от бизнес-модели: разовая покупка, подписка, пакеты курсов, корпоративный доступ.
Каталог курсов
Инфоблок Courses с торговым каталогом (подключён модуль catalog). Разделы — направления обучения. Свойства элемента:
| Свойство |
Тип |
Назначение |
| LEVEL |
Список |
Начальный / средний / продвинутый |
| FORMAT |
Список |
Видеокурс / вебинар / текст / смешанный |
| DURATION_HOURS |
Число |
Общая длительность в часах |
| LESSONS_COUNT |
Число |
Количество уроков |
| TEACHER_ID |
Привязка E |
Преподаватель (инфоблок Teachers) |
| PREVIEW_LESSONS |
Множественная привязка E |
Бесплатные уроки для превью |
| CERTIFICATE |
Логический |
Выдаётся ли сертификат |
| START_DATE |
Дата |
Дата старта (для потоковых курсов) |
| ACCESS_DAYS |
Число |
Срок доступа после покупки (0 = бессрочно) |
| USER_GROUP_ID |
Число |
ID группы пользователей для доступа |
Цена курса — стандартное свойство торгового каталога. Для курсов с вариантами используются торговые предложения (SKU) — вложенный инфоблок с разными ценами и составом.
Механизм контроля доступа
Три подхода имеют свои компромиссы. Первый — группы пользователей: при оплате заказа пользователь добавляется в группу, привязанную к курсу. Реализация через событие OnSaleOrderPaid.
// Псевдокод обработчика
$order = \Bitrix\Sale\Order::load($orderId);
foreach ($order->getBasket() as $item) {
$courseId = $item->getProductId();
$groupId = getGroupIdByCourse($courseId);
addUserToGroup($order->getUserId(), $groupId);
}
Недостаток — при 200 курсах возникает 200 групп, управление становится громоздким. Второй подход — Highload-блок CourseAccess с полями UF_USER_ID, UF_COURSE_ID, UF_ORDER_ID, UF_DATE_FROM, UF_DATE_TO, UF_STATUS. При оплате создаётся запись, при просмотре контента проверяется активность записи. Cron-агент ежедневно обновляет статус для истёкших записей. Этот подход гибче: легко реализовать ограниченный доступ, заморозку, продление, корпоративные лицензии.
Третий — гибрид: группы для базового разграничения (зарегистрированный, купивший хотя бы один курс, подписчик) и Highload-блок для точечного контроля по конкретным курсам. Гибридный подход на 30% быстрее в реализации для школ с 20+ курсами по сравнению с чистым Highload.
Как работают платёжные системы и промокоды?
Модуль sale поддерживает ЮKassa, Робокасса, CloudPayments, Stripe. Для онлайн-школ критичны рекуррентные платежи (подписка), 54-ФЗ с автоматической фискализацией через ОФД (АТОЛ, OrangeData) и возвраты через API платёжной системы. Настройка платежей занимает 1–2 дня.
Промокоды реализуются штатными купонами (b_sale_discount_coupon). Для реферальной программы — кастомный модуль: уникальный код в профиле, при покупке реферер получает бонус (скидку или на внутренний счёт).
Как реализовать LMS-функционал на Битрикс?
Собственная LMS — кастомный модуль. Уроки — инфоблок Lessons с типом контента (видео, текст, тест). Прогресс прохождения — Highload-блок UserProgress: UF_USER_ID, UF_LESSON_ID, UF_STATUS, UF_COMPLETED_AT, UF_SCORE. Данные обновляются AJAX-запросом при завершении урока. Тесты — Highload-блок TestQuestions с ответами в JSON. Результаты тестов — в UserProgress и отдельном HL-блоке TestResults. Сертификаты — генерация PDF через mPDF при завершении всех уроков и тестов с минимальным баллом.
Интеграция с Moodle в 2 раза ускоряет запуск LMS, если не требуются уникальные функции. Битрикс отвечает за витрину и продажи, Moodle — за обучение. Аналогично — интеграция с GetCourse.
Вебинарная комната и рассылки
Битрикс не имеет встроенного вебинарного модуля. Интеграция с Zoom через API (OAuth 2.0): создание вебинара (POST /v2/users/{userId}/webinars), регистрация участников после оплаты. Для российских школ — Телемост или VK Звонки. Расписание вебинаров — инфоблок Webinars.
Рассылки по сегментам через модуль sender. Сегменты строятся на основе Highload-блоков CourseAccess и UserProgress: купившие курс, прошедшие 50%, завершившие, зарегистрированные без покупки, неактивные 30+ дней. Каждый сегмент — connector в sender.
Какие сроки разработки?
| Масштаб |
Описание |
Срок |
| Монокурс / мини-школа |
1–5 курсов, продажа через sale, базовый ЛК, видеоуроки на Vimeo |
6–8 недель |
| Средняя онлайн-школа |
10–30 курсов, подписочная модель, тесты, сертификаты, вебинары, рассылки |
14–20 недель |
| Крупная платформа |
50+ курсов, интеграция с Moodle, реферальная программа, корпоративные лицензии, мобильное приложение (API) |
24–32 недели |
Если интегрироваться с Moodle или GetCourse вместо разработки с нуля, сроки сокращаются на 4–8 недель, что снижает бюджет в 1.5–2 раза.
Что входит в разработку?
- Анализ бизнес-процессов и проектирование архитектуры
- Настройка торгового каталога, корзины и платёжных систем (с фискализацией)
- Разработка модуля контроля доступа (Highload-блоки, группы)
- Создание личного кабинета ученика с прогрессом и сертификатами
- Интеграция с LMS (Moodle, GetCourse) или разработка кастомной LMS
- Интеграция вебинарных сервисов (Zoom, Телемост)
- Настройка триггерных рассылок
- Тестирование, деплой и документация
- Обучение администраторов
- Гарантийная поддержка 3 месяца
Процесс работы
- Аналитика — изучаем бизнес-модель, целевую аудиторию, требования к доступу и интеграциям. Фиксируем архитектуру в ТЗ.
- Проектирование — структура инфоблоков, HL-блоков, схема прав доступа, интеграционные сценарии.
- Реализация — модули, платёжные системы, вёрстка, интеграции.
- Тестирование — покрытие ключевых сценариев, нагрузочные тесты.
- Деплой и поддержка — развёртывание, документация, обучение.
Свяжитесь с нами для консультации — обсудим ваш проект и предложим оптимальное архитектурное решение. Получите коммерческое предложение с детальным планом работ. Закажите разработку сайта онлайн-школы на 1С-Битрикс уже сегодня.
Как правильно проектировать инфоблоки?
Мы видим десятки проектов, где неправильная структура инфоблоков превращает сайт в тормоз. Типичный сценарий: заказчик просит «каталог товаров». Разработчик создаёт один инфоблок catalog, закидывает туда 15 свойств. Через полгода — 40 свойств, 8 из которых используются только для одной категории. Фильтр тормозит, таблица b_iblock_element_property разрослась до миллионов строк, CIBlockElement::GetList выполняется 3 секунды. Последствия — падение конверсии, потеря клиентов, дополнительные затраты на оптимизацию. В одном проекте после рефакторинга каталога время генерации страницы снизилось с 4,2 до 0,8 секунды, а стоимость поддержки сократилась на 250 000 рублей в год — за счёт устранения избыточных запросов и агентов.
Наш подход: проектируем инфоблоки до первой строки кода. Отдельные инфоблоки под сущности (товары, категории, бренды), свойства-справочники через highload-блоки, торговые предложения для SKU. Это закладывает производительность на годы вперёд. Если хотите получить предварительный аудит вашей схемы инфоблоков — свяжитесь с нами, разберём типовые ошибки и дадим рекомендации бесплатно.
Почему 1С-Битрикс выгоднее альтернатив?
Выбор CMS диктуется не предпочтениями, а бизнес-задачами. Вот ключевые аргументы:
- Нативный обмен с 1С — модуль
catalog.import.1c обеспечивает двусторонний обмен товарами, ценами, остатками и заказами через CommerceML. Без сторонних модулей. Это в 5 раз быстрее, чем разработка собственного обмена на OpenCart или WordPress. Подробнее о формате — в Wikipedia. Экономия на интеграции составляет в среднем 150 000–300 000 рублей по сравнению с кастомными решениями.
- Проактивная защита — модуль
security включает WAF, контроль целостности файлов, защиту от SQL-инъекций, двухфакторную аутентификацию. Для проектов с требованиями ФСТЭК — сертифицированное решение.
- Модульная архитектура — подключаем только нужные модули:
iblock, catalog, sale, search. Меньше модулей — меньше запросов к БД на каждый хит.
- Регулярные патчи — вендор выпускает security-патчи, закрывая уязвимости быстрее, чем open-source проекты (среднее время исправления CVE — 2 недели). Официальная документация по модулям — dev.1c-bitrix.ru.
Что дают HL-блоки и как мы ускоряем каталог
Highload-блоки — это альтернатива расширенным свойствам инфоблоков, когда список значений может расти до тысяч записей. Типичный пример: производители, страны, цвета. Если хранить их как свойства-списки в инфоблоке, каждая фильтрация вызывает полное сканирование таблицы b_iblock_property_enum. С HL-блоками выборка идёт по индексу — время ответа фильтра снижается с 1–2 секунд до 50 мс. Мы используем HLB компонент и кастомные запросы через Bitrix\Highloadblock\DataManager. Это особенно критично для каталогов с 100 000+ товарами.
Из нашей практики — проект интернет-магазина с 500 000 товаров. Стандартный фильтр по бренду выполнялся 4 секунды. Сервер не выдерживал нагрузку в 50 одновременных запросов — страницы падали. Мы перевели справочник брендов в HL-блок, добавили тегированное кэширование на 15 минут и настроили агент для сброса кэша при изменении. После доработки время фильтрации составило 120 мс, средний LCP страницы — 1,8 секунды. Проект работает стабильно без сбоев.
Что входит в разработку сайта на 1С-Битрикс
Каждый проект включает полный комплект документации и артефактов, исключающий потерю знаний после передачи.
-
Техническое задание — user stories, диаграммы инфоблоков, схемы интеграций.
-
Исходный код в Git — с историей коммитов, тегами релизов, правилами ветвления.
-
Административная документация — описание кастомных компонентов, инструкции по разворачиванию, перечень агентов и событий.
-
Обучение сотрудников — до 3 часов вебинара: панель управления, работа с заказами, настройка цен. Записываем, чтобы можно было пересмотреть.
-
Доступ к staging на время разработки — тестируете сами до деплоя на продуктив.
-
Гарантийная поддержка — исправление ошибок кода в течение 30 дней после запуска. Постгарантийные абонентские пакеты с SLA (реакция 2 часа, решение 8 часов).
Наш процесс и технологии
| Тип проекта |
Сроки |
Сложность |
Ключевые особенности |
| Корпоративный сайт |
от 1 месяца |
Средняя |
Каталог, новости, формы, CRM-интеграция |
| Интернет-магазин |
от 2 месяцев |
Высокая |
54-ФЗ, маркетплейсы, обмен с 1С, SKU |
| B2B-портал |
от 3 месяцев |
Очень высокая |
Персональные цены, документооборот, Bizproc |
| Лендинг |
от 2 недель |
Низкая |
LCP < 2с, композитный кеш, статика |
| Многосайтовая структура |
от 1,5 месяцев |
Высокая |
Раздельный контент, общий каталог, hreflang |
Стек: вёрстка mobile-first, тестируем на физических устройствах (iPhone, iPad, Android). Используем BrowserStack для Safari на iOS. Производительность — LCP < 2,5 с, FID < 100 мс, CLS < 0,1. Включаем композитный сайт (composite), CDN, тегированное кэширование, WebP/AVIF, lazy loading. SEO — Schema.org через JSON-LD, автогенерация sitemap.xml модулем seo, canonical и hreflang для мультиязычных версий. robots.txt закрываем /bitrix/ от индексации. CI/CD — Git, автодеплой через GitLab CI, staging. Миграции базы — модуль sprint.migration с версионированием.
Процесс работы:
-
Аналитика — изучаем конкурентов, собираем требования, рисуем прототипы в Figma. На выходе — ТЗ с user stories.
-
Дизайн — UI/UX с дизайн-системой. Компоненты переиспользуются.
-
Разработка — пишем компоненты с кастомными шаблонами в
local/templates/. Бизнес-логику выносим в модули local/modules/.
-
Тестирование — функциональное, кроссбраузерное, нагрузочное (до 1000 запросов). Критичные баги исправляем до запуска.
-
Запуск — деплой на прод, мониторинг через UptimeRobot, алерты в Telegram. Устраняем первые 48 часов.
Интеграции, мультиязычность и редизайн
| Направление |
Сервисы |
| CRM и аналитика |
Битрикс24 (нативная), amoCRM, Roistat, Calltouch, Mindbox |
| Платежи |
ЮKassa, CloudPayments, Тинькофф, Apple Pay, Google Pay |
| Фискализация 54-ФЗ |
АТОЛ, OrangeData — настройка через sale.cashbox |
| Логистика |
СДЭК, Boxberry, ПЭК, Почта России, Яндекс.Доставка |
| Коммуникации |
JivoSite, Carrot Quest, SendPulse |
-
Полная локализация через языковые файлы lang/ и механизм SITE_ID. hreflang для каждой версии. Региональные версии с разными ценами и контентом — определение по IP (main.geo) или ручной выбор. Мультидоменность — единое управление несколькими доменами.
-
Редизайн без потери позиций: аудит производительности (PageSpeed, WebPageTest), SEO (Screaming Frog). Новый шаблон в local/templates/ с сохранением URL-структуры. 301-редиректы только если URL меняется существенно. Обновление ядра, переход на D7 ORM, реструктуризация инфоблоков, миграция через sprint.migration с Git.
Гарантия и поддержка
Мы работаем с 1С-Битрикс 12+ лет, реализовали 500+ проектов. В штате сертифицированные разработчики. Фиксированная стоимость в договоре — без сюрпризов. Гарантийный период покрывает ошибки кода. После — абонентские пакеты с SLA (время реакции — 2 часа, решение — 8 часов). Мониторинг доступности 24/7, алерты в Telegram. Получите консультацию и предварительный расчёт: свяжитесь с нами через форму на сайте или напишите в чат — ответим в течение часа. Закажите разработку под ключ — мы спроектируем инфоблоки, интегрируем 1С и разгоним каталог. Если уже есть сайт на другой CMS — закажите аудит производительности и миграцию на Битрикс.