Интеграции и события
Обновлено
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-инструменты описаны в отдельной статье.