# Чат с посетителями Модуль добавляет переписку с менеджером на публичные страницы сайта. Регистрация посетителя не требуется. Если установлены товарный и торговый модули, менеджер видит товар на открытой странице, корзину и заказы покупателя. ИИ, файлы и внешние мессенджеры в эту версию не входят. ## Подключение 1. Откройте **Модули → Управление**, установите «Чат с посетителями». 2. Откройте **Чат с посетителями → Настройки** и включите чат. 3. Задайте дни, начало и окончание рабочего дня, часовой пояс. По умолчанию: понедельник-пятница, 09:00-16:00, Europe/Moscow. 4. Настройте заголовок окна, текст вне сети и быстрые ответы (один на строку). 5. В ролях предоставьте менеджерам право **Чат: просмотр и ответы**. Настройки и работа с чужими диалогами требуют дополнительного права **Чат: настройки и управление чужими диалогами**. Публичные шаблоны редактировать не нужно. Модуль подключает окно при штатном рендеринге HTML-страниц. На служебных документах и страницах ошибок окна нет. На автономных HTML-файлах вне движка автоматического подключения нет. ## Работа менеджера - Откройте вкладку **Диалоги** и включите **Принимаю чаты**. - Оставьте эту вкладку открытой. Присутствие подтверждается короткими запросами; через 90 секунд без подтверждения менеджер перестаёт считаться доступным. - Во **Входящих** выберите диалог и нажмите **Принять**. Он закрепится за вами и появится в **Моих диалогах**. Два менеджера одновременно принять его не смогут. - Напишите ответ или выберите быстрый ответ. Ссылка на опубликованный товар текущего магазина дополнится карточкой товара; исходный текст сохранится. Внешние ссылки остаются обычными ссылками. Товар можно также найти и отправить кнопкой выбора товара в переписке. - Режим **Внутренняя заметка** сохраняет текст только для сотрудников. - **Ожидание** оставляет диалог за вами. Новое сообщение посетителя возвращает его в работу. При завершении выберите результат; для «Связаться позже» укажите дату и время. Завершённый диалог попадает в архив. - Можно передать диалог другому менеджеру, который сейчас принимает чаты. - Новый вопрос посетителя после завершения создаёт отдельный диалог во входящих. Прежняя переписка остаётся в архиве и не смешивается с новой. Фильтры: входящие, мои, в работе, ожидание, завершённые, все. По 40 диалогов на страницу. Уведомление о новых диалогах/непрочитанных сообщениях появляется в общем колокольчике. Звук включается отдельно во вкладке диалогов. **Отправлено** означает запись в базу. **Прочитано** появляется после открытия сообщений получателем в видимой активной вкладке. Загрузка списка диалогов сама по себе не отмечает сообщения прочитанными. ## Для посетителя Окно доступно с кнопки «Написать нам». В рабочее время при наличии принимающего менеджера показывается статус «Менеджер на связи». В остальных случаях можно оставить сообщение и контакт для последующего ответа: телефон **или** email. Имя и контакт не обязательны для отправки; без контакта ответ можно прочитать только при возвращении в тот же браузер. Автоматических SMS/писем модуль не шлёт. Переписка сохраняется между переходами по сайту в том же браузере. Очистка cookie, другой браузер или истечение cookie лишают посетителя доступа к прежней переписке. Секрет посетителя хранится в HttpOnly cookie до 180 дней, в базе находится только его SHA-256. В localStorage сохраняется лишь признак наличия чата, не текст и не контакты. На общем компьютере нужно учитывать доступ следующего пользователя того же браузера к переписке. ## Технические границы - PHP 7.3, MySQL/MariaDB, обычные AJAX-запросы. WebSocket и внешний сервис не нужны. - До первого открытия чата не создаются диалоги и не опрашивается очередь. - После начала переписки открытое окно опрашивает новые сообщения раз в 4 секунды, закрытое раз в 30 секунд; скрытая вкладка приостанавливает этот опрос. - Административная очередь обновляется раз в 5 секунд в видимой вкладке. - Текст до 4000 символов, без исполняемого HTML. Отправка защищена CSRF, лимитами по IP и скрытым полем от простых автоматических отправок. - Повтор запроса с тем же ключом не создаёт дубль сообщения. - Общие изменения пишутся в аудит без содержимого сообщений и контактов. - Отключение модуля сохраняет данные. Удаление модуля уничтожает его таблицы диалогов, сообщений и присутствия. Перед удалением сделайте резервную копию. - Автоматического удаления истории по сроку в этой версии нет. При установке на рабочий сайт обновите информацию об обработке контактов в соответствии с тем, как ваша организация использует чат. # Дополнения версии 1.1.0 ## Повторное посещение и контакты (1.2.1) Переписка и ранее отправленные контакты восстанавливаются в том же браузере по cookie чата, независимо от PHP-сессии. Срок привязки продлевается на 180 дней. Очистка cookie или смена браузера/устройства не позволяет восстановить анонимную историю автоматически. Сообщения хранятся в БД, а не в localStorage. В настройках есть «Контактные поля раскрыты по умолчанию»: включено — имя и контакт сразу видны, выключено — блок нужно раскрыть. Во время текущего посещения ручное переключение блока и ввод посетителя не сбрасываются опросом. ## Архив 1.2.0 Завершённые чаты выводятся отдельным списком с фильтрами по датам завершения, менеджеру, результату, ответам и контактам. Поиск: имя, контакт, источник, точный номер. В каждой строке отдельно указаны сообщения посетителя, ответы менеджера, внутренние заметки и служебные события. Сводка учитывает всю выборку. Нажмите номер/имя для просмотра истории по дням. История не обрезается: длинная переписка имеет страницы по 100 сообщений. «К списку» сохраняет фильтры. Просмотр архива не меняет прочитанность и не включает режим приёма чатов. В версии 1.1.2 добавлены хлебные крошки и предупреждение при уходе из окна чата. Оно появляется, если включено «Принимаю чаты», идёт отправка или остался черновик. Переход по ссылке можно отменить; при закрытии/обновлении вкладки браузер показывает собственное предупреждение (его текст изменить нельзя). На мобильных устройствах закрытие приложения браузера не всегда вызывает это событие. Без других менеджеров онлайн чат переходит в «Ответим позже» после истечения присутствия (до 90 секунд). Само окно остаётся доступным и сохраняет обращения. Появились отдельные вкладки «Архив», «Статистика» и «Быстрые ответы». В очереди видны новые чаты, ожидание ответа и назначенный менеджер. Чтение сообщения не снимает ожидание ответа. Завершённые чаты не удаляются автоматически; новое обращение того же посетителя создаётся отдельно. Публичное имя отвечающего задаётся в настройках. Имена сотрудников видны только в панели. Источники, UTM, реферер, IP и браузер доступны внутри переписки. Архивная статистика отражает отдельные завершённые диалоги. Общая статистика группирует диалоги по дате создания, а ответы менеджеров считает за выбранный период. ## Товары и уведомления (1.3.0) Ссылки на опубликованные товары текущего сайта превращаются в мини-карточки с изображением, названием, артикулом и ценой, если данные есть в каталоге. Модуль не запрашивает OpenGraph у внешних сайтов. Если менеджер отправляет ссылку на рабочий домен с локального или тестового сайта, добавьте этот домен в настройку «Дополнительные домены магазина для превью товаров». Очередь ставит новые обращения выше уже принятых; видно время ожидания и недоступность назначенного менеджера. По желанию включите уведомления браузера кнопкой во вкладке диалогов. Для браузерных уведомлений нужна открытая вкладка панели и разрешение браузера. Обновление до версии 1.3.0 применяет миграцию 003. Рядом с плашками заказов и форм отображается число новых/непросмотренных чатов.