Мы не раз сталкивались с ситуацией: клиент запускает второй (третий) магазин на той же установке Битрикс, а шаблон один — вёрстка ломается, кастомизация превращается в ад. Ошибка в том, что каждый сайт получает свой дизайн, но наследование не настроено. Разбираем, как правильно организовать шаблоны в мультисайте, не теряя времени на дубли. Например, в одном проекте из-за общего шаблона правки под оптовый сайт сломали карточку товара розницы, что привело к простою 3 дня и потерям около 15% заказов. Раздельные шаблоны в мультисайте сокращают время на внесение правок в 4 раза по сравнению с единым шаблоном.
Почему важно разделять шаблоны?
Если несколько сайтов живут в одной копии Битрикс, но используют один шаблон, рано или поздно вы упираетесь в конфликт стилей, правки под один сайт ломают другой. Раздельные шаблоны дают гибкость: розничный сайт может иметь свою карточку, оптовый — другую, мобильная версия — третью. Общая логика при этом выделяется в базовый шаблон.
Структура шаблонов в мультисайте
Битрикс хранит шаблоны в /bitrix/templates/ (системные) и /local/templates/ (пользовательские). Для каждого сайта в административной панели задаётся шаблон по умолчанию: Настройки → Сайты → Список сайтов → {Сайт} → Шаблон сайта.
Рекомендуемая структура при нескольких сайтах:
/local/templates/ base/ # Общий базовый шаблон (layout, хедер, футер) site_retail/ # Шаблон розничного сайта site_wholesale/ # Шаблон оптового сайта site_mobile/ # Мобильная версия (если не адаптив) Наследование шаблонов. Битрикс не поддерживает наследование шаблонов нативно, но его имитируют через include или символьные ссылки:
// /local/templates/site_retail/header.php // Подключаем общий хедер и переопределяем только нужное define('TEMPLATE_BASE_PATH', $_SERVER['DOCUMENT_ROOT'] . '/local/templates/base/'); include TEMPLATE_BASE_PATH . 'header.php'; Как мы настраиваем шаблоны: реальный кейс
Недавно настраивали мультисайт для клиента: розничный магазин (шаблон retail) и оптовая площадка (wholesale) на одной базе. В base вынесли общий хедер, футер, скрипты аналитики. Для retail кастомизировали карточку товара — заменили шаблон catalog.element в своей папке. Для wholesale — убрали цены и добавили кнопку "Запросить КП". Всё заработало без копирования лишнего кода. Согласно документации 1С-Битрикс, мультисайтовая конфигурация поддерживает раздельные шаблоны через настройки каждого сайта.
Как привязать компоненты к шаблону?
Для каждого компонента можно задать разный шаблон в разных сайтах. Шаблоны компонентов ищутся в порядке:
-
/local/templates/{site_template}/components/{namespace}/{component}/{template}/ -
/local/components/{namespace}/{component}/templates/{template}/ -
/bitrix/templates/{site_template}/components/... -
/bitrix/components/{namespace}/{component}/templates/{template}/
Это значит: чтобы у розничного сайта была своя карточка товара, достаточно создать /local/templates/site_retail/components/bitrix/catalog.element/.default/template.php.
Практические нюансы
CSS и JS ресурсы. Каждый шаблон имеет свой style.css и script.js в корне. Битрикс автоматически подключает их. Для сборки через Vite или Webpack задают publicPath под каждый шаблон.
Проверка текущего сайта в коде:
// Получить ID текущего сайта $siteId = \Bitrix\Main\Context::getCurrent()->getSite(); // 's1', 's2', etc. // В компонентах и шаблонах — глобальная константа define('SITE_ID', $siteId); // Условный рендеринг в шаблоне if (SITE_ID === 's2') { // Логика для оптового сайта } Языковые файлы. Шаблон-специфичные переводы хранятся в /local/templates/{template}/lang/{lang}/. Битрикс подгружает их автоматически при использовании GetMessage().
Сравнение подходов: общий vs раздельные шаблоны
| Критерий | Один шаблон для всех | Раздельные шаблоны (наш подход) |
|---|---|---|
| Гибкость дизайна | Ограничена, конфликты стилей | Максимальная, каждый сайт уникален |
| Сложность поддержки | Высокая, правки ломают другие сайты | Низкая, изолированные изменения |
| Дублирование кода | Нет явного, но много условий | Минимально за счёт базового шаблона |
| Скорость разработки новых сайтов | Медленная, правки в общий код | Быстрая, наследуется основа |
Развёрнутый пример структуры
Для проекта с тремя сайтами (розница, опт, мобильный) оптимальная структура:
/local/templates/ base/ header.php footer.php style.css retail/ header.php (include base/header.php с доработками) components/bitrix/catalog.element/.default/template.php wholesale/ header.php (include base/header.php, убрана корзина) components/bitrix/catalog.element/.default/template.php (без цен) mobile/ header.php (адаптивный) style.css Что входит в работу
- Анализ текущей архитектуры шаблонов и карты сайтов
- Проектирование структуры
/local/templates/с базовым и дочерними шаблонами - Миграция существующего дизайна в новую структуру
- Настройка наследования и переопределения компонентов
- Проверка кросс-браузерности и мобильной адаптации
- Документирование структуры для дальнейшей поддержки
- Передача доступов и обучение команды клиента
Как мы это делаем: процесс
- Аналитика — смотрим количество сайтов, их общие и уникальные элементы.
- Проектирование — создаём макет структуры шаблонов.
- Реализация — разворачиваем базовый шаблон и дочерние.
- Тестирование — проверяем каждый сайт на корректную работу.
- Деплой — выкатываем на боевой сервер.
Сроки ориентировочно
| Конфигурация | Срок |
|---|---|
| Настройка 2 шаблонов (базовая структура) | 1–2 дня |
| Перенос существующего дизайна в структуру мультисайта | 2–4 дня |
| Разработка шаблонов с нуля для 2–3 сайтов | 5–10 дней |
Стоимость рассчитывается индивидуально после оценки объёма. Мы с проектами любой сложности — получите консультацию по вашему проекту, мы дадим точные сроки и оценку. Закажите аудит текущей структуры шаблонов, чтобы выявить скрытые проблемы.
Наш опыт и гарантии
Более пяти лет занимаемся разработкой на 1С-Битрикс, выполнили свыше 40 проектов по мультисайтам. Даём гарантию на корректную работу шаблонов и их совместимость с обновлениями системы. Пишите, оценим ваш проект и дадим точные сроки.







