Налаштування попередження про вікові обмеження 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування попередження про вікові обмеження 1С-Бітрікс
Проста
~1 робочий день
Часті питання

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

Етапи розробки

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

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування попередження про вікові обмеження 1С-Бітрікс

Спливаюче вікно «Вам є 18 років?» — це не декоративний елемент. Відсутність такого попередження на сайті, що торгує алкоголем, тютюном або зброєю, є адміністративним правопорушенням. При цьому реалізувати його «на коліні» через простий popup недостатньо: важливі обробка ботами, коректна робота з SEO-краулерами, зберігання підтвердження та поведінка при відмові.

Механізм зберігання підтвердження

Ключове рішення — де зберігати факт згоди. Три варіанти:

Cookie — найпоширеніший. Встановлюється на 24 години або до кінця сесії. Плюс: не потребує серверних ресурсів. Мінус: користувач може очистити cookies.

Сесія Бітрікс — надійніше для поточного візиту. Використовується \Bitrix\Main\Application::getInstance()->getSession()->set('AGE_CONFIRMED', true). Скидається при закритті браузера.

Профіль користувача — якщо користувач авторизований, прапор підтвердження можна зберігати в користувацькому полі (UF_AGE_CONFIRMED, тип boolean). Після одноразового підтвердження — більше не запитувати. Для анонімів комбінується з cookie.

Рекомендована схема: cookie для анонімів (30 днів) + UF-поле для зареєстрованих користувачів.

Компонент попередження

Попередження реалізується як окремий компонент, що підключається в шаблоні сайту (header.php або через bitrix:main.include). Компонент перевіряє наявність cookie/сесії і, якщо підтвердження не отримано, виводить оверлей.

Структура компонента:

/local/components/custom/age.warning/
├── class.php
├── templates/
│   └── .default/
│       ├── template.php
│       └── script.js
└── .description.php

В class.php — логіка перевірки та встановлення cookie:

public function executeComponent() {
    $cookieName = 'AGE_CONFIRMED';
    $request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();

    if ($request->getCookie($cookieName) === 'Y') {
        return; // Підтвердження вже є
    }

    if ($this->arParams['CHECK_AUTH'] === 'Y') {
        global $USER;
        if ($USER->IsAuthorized()) {
            $userFields = CUser::GetByID($USER->GetID())->Fetch();
            if ($userFields['UF_AGE_CONFIRMED'] === '1') {
                return;
            }
        }
    }

    $this->IncludeComponentTemplate();
}

Поведінка при відмові

Це критичний момент, який часто упускають. Якщо користувач натиснув «Ні, мені немає 18» — що відбувається?

  • Редирект на спеціальну сторінку з повідомленням про недоступність контенту
  • Блокування можливості повернутися назад через history.pushState
  • Запис у cookie відмови (AGE_DENIED=Y) на 24 години, щоб не показувати popup знову

Сторінка відмови не повинна містити посилань на захищені розділи. Її URL зазвичай /age-restricted/ або /sorry/.

SEO та боти

Пошукові краулери не повинні блокуватися попередженням. Правильна реалізація:

  1. Попередження виводиться лише через JS після завантаження сторінки — HTML-контент доступний для індексації
  2. Серверна перевірка (302-редирект) застосовується лише для реальних користувачів, виключаючи User-Agent краулерів зі списку
  3. Сторінки каталогу з товарами 18+ не закриваються від індексації — лише кнопка «Купити» замінюється
// Перевірка: чи це не бот
const isBot = /bot|crawl|spider|slurp|teoma/i.test(navigator.userAgent);
if (!isBot && !getCookie('AGE_CONFIRMED')) {
    showAgeConfirmModal();
}

Інтеграція з журналом подій

Для юридично значущих сайтів (ліцензована діяльність) факт підтвердження віку фіксується в лог. Через обробник після натискання кнопки «Так» надсилається AJAX-запит до контролера, який записує час, IP, User-Agent та ідентифікатор сесії — через \Bitrix\Main\Diag\Logger або до користувацької таблиці.

Терміни виконання

Варіант реалізації Термін
Базовий popup з cookie 4–6 годин
Компонент із сесією + редирект при відмові 8–12 годин
Повна система: авторизовані + анонімні + лог 1–2 дні

Правильно налаштоване попередження — непомітна, але юридично важлива частина інфраструктури магазину.