# Квэлп: Вопросы о товаре

Полное руководство из встроенной справки qwelp.questions. Версия 1.0.0, сверка 11.10.2026.

## Начало

Покупатели задают вопросы о товаре, отвечают и голосуют за полезные ответы. Автор вопроса или модератор может выбрать лучший ответ.

Установите решение через «Marketplace → Установленные решения → Квэлп: Вопросы о товаре → Установить». Затем откройте «Квэлп → Квэлп: Вопросы». Установка добавляет компонент и административные страницы; место вывода на сайте выбираете вы.

1. Откройте настройки модуля, выберите сайт и оставьте ручную модерацию для первого запуска.
2. Добавьте компонент «Вопросы о товаре» в шаблон карточки товара — готовый пример находится в разделе «Подключение».
3. Войдите как покупатель, задайте вопрос и одобрите его в списке модерации. Проверьте результат без авторизации.

Для чтения авторизация не нужна. Для вопроса, ответа и голосования требуется учётная запись сайта.

## Подключение

Включите режим правки на странице товара и скопируйте шаблон компонента `bitrix:catalog.element` в шаблон своего сайта. Откройте `template.php` этой копии и вставьте пример после описания товара, вне уже открытого блока PHP. Значения берутся из текущей карточки; ID в этом примере менять не нужно:

```php
<?php $APPLICATION->IncludeComponent('qwelp:questions.list', '', [
    'ELEMENT_ID' => $arResult['ID'],
    'IBLOCK_ID' => $arResult['IBLOCK_ID'],
    'PRODUCT_NAME' => $arResult['NAME'],
    'QUESTIONS_PER_PAGE' => '0',
    'RULES_PATH' => '',
    'CACHE_TYPE' => 'A',
    'CACHE_TIME' => '0',
], $component); ?>
```

Значение `0` для количества вопросов и времени кеша, а также пустой `RULES_PATH` наследуют настройки выбранного сайта. Скрипты и стили подключает компонент. Дополнительный код в `init.php` не нужен.

При загрузке вместо неоформленного блока показывается заглушка с сортировкой, аватаром, строками вопроса и кнопкой. Она включена в первый HTML и в заглушку Композита. Готовый блок появляется после загрузки базовых стилей, стилей шаблона и актуальных данных. Если загрузка не удалась, появляется сообщение и кнопка повтора.

:::details Размещение на отдельной странице

Создайте обычную страницу средствами Битрикса. В визуальном редакторе найдите «Вопросы о товаре» в группе Qwelp или вставьте вызов в PHP-режиме между подключениями шапки и подвала:

```php
<?php $APPLICATION->IncludeComponent('qwelp:questions.list', '', [
    'ELEMENT_ID' => '123',
    'IBLOCK_ID' => '7',
    'QUESTIONS_PER_PAGE' => '0',
    'RULES_PATH' => '',
    'CACHE_TYPE' => 'A',
    'CACHE_TIME' => '0',
]); ?>
```

В параметрах компонента выберите «Инфоблок» из списка активных инфоблоков текущего сайта. Список показывает ID и название; для ручного ID используйте «другое значение». ID товара укажите вручную — он должен принадлежать выбранному инфоблоку.

Замените `123` на ID товара, а `7` — на ID его инфоблока. Их можно посмотреть в списке элементов и настройках инфоблока. Это пример значений, а не данные, создаваемые установкой. Товар должен быть активен, а инфоблок — привязан к текущему сайту и доступен посетителю.

:::

После подключения сохраните параметры компонента без изменений, затем измените количество вопросов, например на `3`, и сохраните ещё раз. Проверьте оба результата в обычном режиме и в режиме правки. Для вложенного компонента сохраните передачу `$component`.

Несколько блоков на одной странице поддерживаются. Каждый экземпляр получает собственный товарный контекст. Параметр RULES_PATH задаёт существующую страницу правил относительно каталога сайта; пустое значение скрывает ссылку.

## Модерация

1. Перейдите в «Квэлп → Квэлп: Вопросы → На модерации» и выберите сайт.
2. Откройте вопрос, проверьте текст и ответы. Одобрите подходящую запись либо отклоните её.
3. Проверьте карточку товара: опубликованный ответ появляется у покупателей; отклонённый не отображается.

Рабочие настройки находятся в «Квэлп → Квэлп: Вопросы → Настройки». В штатном разделе «Настройки модулей» остаётся только вкладка «Доступ». В рабочих настройках доступны ручная и автоматическая публикация. При ручной модерации новые записи ждут проверки. Статус вопроса также ограничивает видимость его ответов.

| Право | Возможности |
| --- | --- |
| D | Доступ в администрирование модуля закрыт. |
| M | Модерация вопросов и ответов, удаление, документация. |
| W | Модерация, настройки модуля и права групп. |

Лимиты защищают от частой отправки: по умолчанию 3 вопроса и 10 ответов за 300 секунд на пользователя. Параметры задаются отдельно для каждого сайта.

### Почтовые уведомления

При установке модуль создаёт типы почтовых событий на русском и английском языках и активные HTML-шаблоны для языков действующих сайтов. Шаблоны привязываются к этим сайтам. Редактирование доступно в «Настройки → Настройки продукта → Почтовые события → Почтовые шаблоны»; найдите события с префиксом `QWELP_QUESTIONS_`.

- `QWELP_QUESTIONS_NEW_QUESTION` — администратору о новом вопросе, ожидающем модерации. Письмо содержит текст вопроса, товар, автора и ссылку на этот вопрос с выбранным сайтом. При автоматической публикации такое письмо не отправляется.
- `QWELP_QUESTIONS_NEW_ANSWER` — администратору о новом ответе со ссылкой на вопрос.
- `QWELP_QUESTIONS_THREAD_REPLY` — автору вопроса и участникам с опубликованными ответами о новом опубликованном ответе, с текстом и ссылкой на товар. Автор ответа не уведомляется о своём ответе; одинаковые адреса не дублируются, адрес администратора исключается. Учитываются активность пользователя и доступ к товару.
- `QWELP_QUESTIONS_BEST_ANSWER` — автору ответа, выбранного лучшим.

Адрес администратора берётся из поля E-mail в настройках соответствующего сайта; если поле пустое — из общего адреса отправителя главного модуля. Адрес пользователя берётся из его профиля. Проверьте адреса, активность шаблонов и привязку к сайту. Письма передаются в штатную почтовую очередь Битрикса; фактическая доставка зависит от обработки очереди и настройки почты сервера. Сам модуль не подключает внешнюю почтовую службу.

В рабочих настройках рядом с шаблоном URL товара доступна кнопка «Переменные». Выберите код в открывшемся окне: он вставляется в позицию курсора или заменяет выделение. Это действие не сохраняет настройки автоматически. Поддерживаются `#SITE_DIR#`, `#IBLOCK_ID#`, `#ELEMENT_ID#`/`#ID#`, `#ELEMENT_CODE#`/`#CODE#`, `#SECTION_ID#`, `#SECTION_CODE#` и `#SECTION_CODE_PATH#`. Путь задаётся относительно каталога выбранного сайта; `#SITE_DIR#` заменяется пустой строкой, каталог добавляется автоматически. Пустое поле использует шаблон инфоблока. Окно закрывается крестиком, клавишей Escape или нажатием за его пределами; кнопки доступны с клавиатуры.

Голосовать за собственный вопрос или ответ нельзя, в том числе администратору. При отказе в голосовании показывается причина, полученная от сервера. Если подтверждение не получено, обновите страницу и проверьте состояние голоса перед повторной попыткой.

После подтверждённой сервером отправки вопроса или ответа рядом со списком остаётся видимое сообщение. При ручной модерации оно поясняет, что запись появится после одобрения; при автоматической публикации подтверждает публикацию. Сообщение не зависит от всплывающих уведомлений и не исчезает по таймеру. Ожидающая запись до одобрения не добавляется в публичный список.

При отправке ответа кнопка показывает «Отправляем…», форма временно блокируется от повторной отправки. При отказе текст остаётся в форме. Сообщение о предыдущей отправке означает, что запрос ещё выполняется; это не лимит количества ответов. При достижении лимита сообщение показывает количество ответов и период в секундах. После потери соединения сначала проверьте, появился ли ответ, чтобы не отправить его повторно.

## Оформление

Скопируйте весь каталог `/bitrix/components/qwelp/questions.list/templates/.default/` в `/local/templates/ВАШ_ШАБЛОН/components/qwelp/questions.list/.default/`. Копируйте вместе PHP, CSS, JavaScript и lang: они образуют один шаблон.

Меняйте `style.css` в вашей копии. Базовый стиль находится рядом в `base.css`, разметка — в `template.php`, динамические карточки — в `view.js`. После изменения очистите кеш компонента.

:::details Пример своего цвета

```
.qwq-questions { --qwq-color-link: #246b97; --qwq-color-link-rgb: 36, 107, 151; }
```

:::

Стандартный шаблон использует собственные стили и штатные средства Битрикса. Обновление модуля не перезаписывает клиентский шаблон.

## Проверка

1. Проверьте пустой список и товар с опубликованными вопросами. Откройте форму, закройте её и откройте снова.
2. Под обычной учётной записью отправьте вопрос и ответ. Проверьте минимальную длину, ограничение частоты, голосование и выбор лучшего ответа.
3. Одобрите и отклоните записи; сравните видимость у автора, модератора и гостя.
4. Повторите после включения кеша и Композита. Проверьте второй запрос, несколько экземпляров и замену блока через AJAX.
5. В многосайтовой установке повторите на каждом сайте: настройки и вопросы должны относиться к выбранному сайту.

:::details Если блок не появился

Проверьте установку модуля, корректность товара и инфоблока, привязку инфоблока к сайту, права чтения и ошибки JavaScript. Убедитесь, что старые копии в /local/ не перекрывают установленный компонент или расширение.

:::

Старый шаблон не обновляется автоматически: сравните его с текущим стандартным шаблоном перед обновлением.

## Справка

Требуются PHP 8.2 или выше и главный модуль Битрикса 25.900.0 или выше, модуль «Информационные блоки». Код использует синтаксис PHP 8.2.

| Параметр | Назначение |
| --- | --- |
| ELEMENT_ID / IBLOCK_ID | Товар и его инфоблок. |
| PRODUCT_NAME | Название в форме вопроса. |
| QUESTIONS_PER_PAGE | От 1 до 50; 0 выбирает настройку сайта, по умолчанию 5. |
| RULES_PATH | Страница правил относительно каталога сайта; пусто — настройка сайта. |
| CACHE_TYPE / CACHE_TIME | CACHE_TYPE: A — автокеширование, Y — кешировать, N — не кешировать. CACHE_TIME: 0 наследует настройку сайта; явное время ограничивается 60–36000000 секундами. |

По умолчанию модуль устанавливается в `/bitrix/modules/qwelp.questions/`, компонент — в `/bitrix/components/qwelp/questions.list/`, расширение — в `/bitrix/js/qwelp/questions/`. Общий /local/ не требуется. Клиентские копии в /local/ имеют приоритет и сохраняются.

:::details Удаление и сохранение данных

Откройте «Marketplace → Установленные решения», выберите модуль и удаление. По умолчанию сохраняются вопросы, ответы и голоса. Снятие флажка подтверждает удаление этих данных. Изменённые и неучтённые пользовательские файлы автоматически не удаляются; при конфликте операция сообщает об ошибке.

:::

События браузера: `qwelp:questions-auth` (отменяемый запрос авторизации), `qwelp:questions-count` (число вопросов). Подключайте свои обработчики на стороне сайта.

Для гостя кнопки голосования и «Задать вопрос» открывают окно штатной авторизации Битрикса поверх текущей страницы. Положение страницы сохраняется. После входа страница обновляется для применения новой сессии. Восстановление пароля, регистрация и дополнительные проверки выполняются штатными формами Битрикса. Обработчик события `qwelp:questions-auth` может отменить стандартное окно через `preventDefault()` и открыть форму сайта.
