Отзывы о товарах повышают доверие покупателей и дают дополнительный уникальный контент для страниц каталога, полезный и для SEO. Разберём, как реализовать отзывы на сайте 1С-Битрикс через инфоблоки — штатного специализированного модуля отзывов в системе нет, но задача решается стандартными средствами.
Отзывы как отдельный инфоблок, привязанный к товару
Практичная структура — отдельный инфоблок "Отзывы" со свойством привязки к элементу инфоблока каталога (тип свойства "Привязка к элементу"), именем автора, текстом отзыва, оценкой и статусом модерации. Такая структура позволяет использовать штатный API инфоблоков для всех операций — добавления, выборки, модерации — без написания собственных таблиц базы данных.
Форма добавления отзыва
<?php
use Bitrix\Main\Loader;
Loader::includeModule('iblock');
if ($_SERVER['REQUEST_METHOD'] === 'POST' && check_bitrix_sessid()) {
$el = new CIBlockElement;
$reviewId = $el->Add([
'IBLOCK_ID' => REVIEWS_IBLOCK_ID,
'NAME' => htmlspecialcharsbx($_POST['author_name']),
'ACTIVE' => 'N', // не публикуется сразу, ждёт модерации
'PROPERTY_VALUES' => [
'PRODUCT_ID' => (int)$_POST['product_id'],
'RATING' => (int)$_POST['rating'],
'REVIEW_TEXT' => htmlspecialcharsbx($_POST['review_text']),
],
]);
}
Проверка check_bitrix_sessid() защищает форму
от CSRF-атак — обязательный элемент любой формы, изменяющей данные,
а не только формы отзывов. Экранирование текстового ввода через
htmlspecialcharsbx предотвращает возможность вставки
произвольного HTML или скриптов через поле отзыва.
Нужна помощь с Битрикс?
Модерация перед публикацией
Отзыв со статусом ACTIVE = 'N' не виден на публичной
части сайта до тех пор, пока администратор не проверит его
и не активирует вручную через административную панель — это
стандартная защита от спама и оскорбительного контента, которую
не стоит пропускать ради мгновенной публикации без проверки,
особенно для сайта с открытой формой добавления отзывов без
авторизации.
Ограничение частоты добавления отзывов
Форма без ограничения частоты отправки уязвима для автоматического спама фальшивыми отзывами — капча или лимит по IP-адресу за период времени снижает этот риск так же, как и для любой другой публичной формы на сайте, принимающей ввод от анонимных посетителей.
Вывод рейтинга на карточке товара
<?php
$reviews = CIBlockElement::GetList(
[], ['IBLOCK_ID' => REVIEWS_IBLOCK_ID, 'PROPERTY_PRODUCT_ID' => $productId, 'ACTIVE' => 'Y'],
false, false, ['ID', 'PROPERTY_RATING']
);
$sum = 0;
$count = 0;
while ($review = $reviews->Fetch()) {
$sum += (int)$review['PROPERTY_RATING_VALUE'];
$count++;
}
$averageRating = $count > 0 ? round($sum / $count, 1) : null;
Средний рейтинг вычисляется на лету по всем активным отзывам товара — для карточек с большим числом отзывов и высокой посещаемостью этот расчёт стоит кешировать, инвалидируя кеш при добавлении нового отзыва, а не пересчитывать заново на каждый визит страницы.
Микроразметка для звёздочек в поисковой выдаче
Разметка schema.org типа AggregateRating с выводом
среднего рейтинга и количества отзывов в структурированных данных
страницы товара — то, что позволяет поисковым системам показывать
звёздочки рейтинга прямо в сниппете выдачи, заметно повышая
привлекательность результата по сравнению с обычным текстовым
сниппетом без визуальных элементов.
Ответ магазина на отзыв
Дополнительное поле для официального ответа магазина на отзыв (особенно негативный) — практика, повышающая доверие: видимая реакция продавца на критику воспринимается лучше, чем просто список отзывов без обратной связи со стороны магазина.
Частые ошибки
- Отзывы публикуются сразу без модерации. Открывает форму для спама и оскорбительного контента без контроля.
- Нет проверки CSRF-токена в форме отзыва. Уязвимость к автоматической подделке отправки от чужого пользователя.
- Средний рейтинг пересчитывается на каждый визит без кеша. Лишняя нагрузка на карточках с большим числом отзывов.
- Нет микроразметки AggregateRating. Упущенная возможность показать звёздочки рейтинга в поисковой выдаче.
Итог
Отзывы о товарах на 1С-Битрикс реализуются через отдельный
инфоблок, привязанный к товару свойством связи, без необходимости
в специализированном модуле. Обязательная модерация перед
публикацией, защита формы от CSRF и спама, и микроразметка
AggregateRating для поисковой выдачи — три момента,
без которых базовая реализация отзывов остаётся уязвимой или
теряет часть практической пользы для SEO.
