К содержимому
Интеграции

Интеграции и события

Обновлено

Shop-Script

При установленном Shop-Script плагин ищет заказы по ID контакта автора. Если найден хотя бы один заказ с состоянием, отличным от deleted, отзыв получает признак buyer, а стандартный шаблон показывает «Проверенная покупка».

Сверки с товаром, оплатой или выполнением заказа нет. Без Shop-Script или без связанного контакта метка не появляется. Отдельный API-ключ для этой проверки не нужен: плагин читает данные магазина внутри той же установки Webasyst.

Через событие магазина frontend_my_nav добавляется ссылка на «Мои отзывы». Для содержимого страницы требуется поддержка темы.

Почта

Письма отправляются через почтовый механизм Webasyst (waMailMessage). Собственных настроек SMTP в плагине нет. Получатель — адрес из поля с ролью «Email»; содержимое определяется настройками формы и подстановками в шаблоне письма.

Таким образом, по почте передаются настроенные вами тема и текст: они могут включать имя, текст отзыва, оценку, ссылку и ответ магазина. Тексты по умолчанию и переменные перечислены в настройках формы.

Публичные маршруты

Плагин объявляет два маршрута в публичном поселении приложения «Заявки»:

Маршрут Назначение
reviews/vote/ POST-запрос отметки полезности опубликованного отзыва
reviews/list/ Получение HTML карточек для подгрузки и фильтрации ленты

Их полный адрес строится средствами приложения «Заявки». Используйте готовые скрипты render() или assets(), не подставляйте адреса вручную. Если лента видна, а голосование или подгрузка не работают, разработчику следует проверить доступность сформированных маршрутов приложения.

Для отметки «Полезно» сохраняются ID отзыва, IP-адрес, ID авторизованного контакта при его наличии, признак полезности и время. Повторный запрос с того же IP для того же отзыва обновляет существующий голос. Это ограничение по адресу, а не точный подсчёт отдельных людей.

Событие смены состояния

Для разработчиков других плагинов «Заявок» доступно событие sitereviews_state_change. Оно отправляется от имени приложения requests после успешной записи состояния и передаёт:

Параметр Значение
request_id ID заявки-отзыва
old_state Состояние до записи
new_state Записанное состояние

Состояния: pending, published, rejected. Событие используется при автопубликации, действиях из карточки и смене состояния через MCP.

В конфигурации своего плагина приложения «Заявки» добавьте обработчик в раздел handlers:

'handlers' => array(
    'sitereviews_state_change' => 'onReviewStateChange',
),

Пример метода, который выделяет переход к публикации:

public function onReviewStateChange($params)
{
    if ($params['new_state'] !== 'published'
        || $params['old_state'] === 'published') {
        return;
    }
    $request_id = (int) $params['request_id'];
    // Здесь выполняется действие вашей интеграции для опубликованного отзыва.
}

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

Собственных команд cron/CLI, настроек внешних API-ключей и отправки внешних вебхуков у плагина нет. MCP-инструменты описаны в отдельной статье.