Налаштування окремих шаблонів для різних сайтів 1С-Бітрікс

Ми не раз стикалися з ситуацією: клієнт запускає другий (третій) магазин на тій же установці Бітрікс, а шаблон один — верстка ламається, кастомізація перетворюється на пекло. Помилка в тому, що кожен сайт отримує свій дизайн, але наслідування не налаштоване. Розбираємо, як правильно організувати шаб
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування окремих шаблонів для різних сайтів 1С-Бітрікс
Простий
~1 день

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    996
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    735
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1134

Ми не раз стикалися з ситуацією: клієнт запускає другий (третій) магазин на тій же установці Бітрікс, а шаблон один — верстка ламається, кастомізація перетворюється на пекло. Помилка в тому, що кожен сайт отримує свій дизайн, але наслідування не налаштоване. Розбираємо, як правильно організувати шаблони в мультисайті, не витрачаючи час на дублі. Наприклад, в одному проєкті через спільний шаблон правки під оптовий сайт зламали картку товару роздрібу, що призвело до простою 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С-Бітрікс, мультисайтова конфігурація підтримує окремі шаблони через налаштування кожного сайту.

Як прив'язати компоненти до шаблону?

Для кожного компонента можна задати різний шаблон у різних сайтах. Шаблони компонентів шукаються в порядку:

  1. /local/templates/{site_template}/components/{namespace}/{component}/{template}/
  2. /local/components/{namespace}/{component}/templates/{template}/
  3. /bitrix/templates/{site_template}/components/...
  4. /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/ з базовим і дочірніми шаблонами
  • Міграція існуючого дизайну в нову структуру
  • Налаштування наслідування та перевизначення компонентів
  • Перевірка крос-браузерності та мобільної адаптації
  • Документування структури для подальшої підтримки
  • Передача доступів і навчання команди клієнта

Як ми це робимо: процес

  1. Аналітика — дивимося кількість сайтів, їх спільні та унікальні елементи.
  2. Проєктування — створюємо макет структури шаблонів.
  3. Реалізація — розгортаємо базовий шаблон і дочірні.
  4. Тестування — перевіряємо кожен сайт на коректну роботу.
  5. Деплой — викочуємо на бойовий сервер.

Терміни орієнтовно

Конфігурація Термін
Налаштування 2 шаблонів (базова структура) 1–2 дні
Перенесення існуючого дизайну в структуру мультисайту 2–4 дні
Розробка шаблонів з нуля для 2–3 сайтів 5–10 днів

Вартість розраховується індивідуально після оцінки обсягу. Ми працюємо з проєктами будь-якої складності — отримайте консультацію по вашому проєкту, ми дамо точні терміни та оцінку. Замовте аудит поточної структури шаблонів, щоб виявити приховані проблеми.

Наш досвід і гарантії

Більше п'яти років займаємося розробкою на 1С-Бітрікс, виконали понад 40 проєктів з мультисайтами. Даємо гарантію на коректну роботу шаблонів та їх сумісність з оновленнями системи. Пишіть, оцінимо ваш проєкт і дамо точні терміни.