Другие модули на выбор

BoostReviews: отзывы о товарах

Стоимость: руб.
Этот компонент мы сможете использовать только при наличии лицензии. Подходящие редакции:

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

Модуль устанавливается стандартными средствами Битрикс. После установки ознакомьтесь с описание модуля и осуществите настройку и подключение компонентов модуля в соответствии с нижеприведенным примером.

Описание модуля

В модуле 5 почтовых шаблонов:

1. [PROFISTUDIO_REVIEW_USER_REVIEW_NEW] Пользователь оставил новый отзыв на товар

Отправляется администратору сайта.

2. [PROFISTUDIO_REVIEW_USER_REVIEW_UPDATE] Пользователь изменил свой отзыв на товар

Отправляется администратору сайта.

3. [PROFISTUDIO_REVIEW_USER_REVIEW_DELETE] Пользователь удалил свой отзыв на товар

Отправляется администратору сайта.

4. [PROFISTUDIO_REVIEW_ADMIN_REVIEW_CHANGE_STATUS_Y] Администратор изменил статус отзыва на: Опубликован

Отправляется пользователю отзыва, если у пользователя в профиле заполнен email.

5. [PROFISTUDIO_REVIEW_ADMIN_REVIEW_ADD_ANSWER_TEXT] Администратор добавил ответ на отзыв

Отправляется пользователю отзыва, если у пользователя в профиле заполнен email.

Модуль создает в инфоблоке с товарами три свойства:

1. Количество отзывов [PROFISTUDIO_REVIEW_COUNT] (тип: число)

2. Рейтинг [PROFISTUDIO_REVIEW_RATING] (тип: число)

3. Рейтинг (количество голосов) [PROFISTUDIO_REVIEW_RATING_COUNT] (тип: число)

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

Также эти свойства можно использовать для сортировки товаров.

Свойства заполняются автоматически.

В модуле 12 компонентов. Здесь представлено их описание, детальная пошаговая инструкция по их подключению и настройке представлена ниже в разделе "Настройки и подключение компонентов для стандартного интернет-магазина Битрикс".

1. "profistudio:review.main" - "BoostReviews: основной компонент"

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

Компонент подключает основные css стили и js скрипты. Автоматически скрывает и показывает кнопки добавления, изменения и удаления отзывов. Выводит окно с предложением добавить отзыв. Открывает формы добавления, изменения и удаления отзывов при клике на соответствующие кнопки и др.

Этот компонент можно настраивать через визуальный редактор. Компонент начнет работать, если в административной части для данного сайта и для выбранного инфоблока созданы настройки (включена активность и др).

2. "profistudio:review.form" - " BoostReviews: форма добавления (редактирования) отзыва"

Это компонент всплывающего окна с формой добавления (редактирования) отзыва.

Компонент подключается автоматически компонентом "profistudio:review.main" - "BoostReviews: основной компонент".

3. "profistudio:review.form.product.next" - "BoostReviews: товар для формы, на который можно оставить отзыв"

Компонент подключается автоматически компонентом "profistudio:review.form" - "BoostReviews: форма добавления (редактирования) отзыва".

4. "profistudio:review.delete" - "BoostReviews: удаление отзыва"

Это компонент всплывающего окна для удаления отзыва.

Компонент подключается автоматически компонентом "profistudio:review.main" - "BoostReviews: основной компонент".

5. "profistudio:review.suggestion.add.review" - "BoostReviews: всплывающее окно с предложением добавить отзыв"

Компонент автоматически открывает всплывающее окно с одним из товаров из нового заказа пользователя, если заказ удовлетворяет условиям добавления отзывов. Окно открывается один раз в сессию.

Компонент подключается автоматически компонентом "profistudio:review.main" - "BoostReviews: основной компонент".

6. "profistudio:review.list.user" - "BoostReviews: список отзывов пользователя"

Компонент выводит список отзывов пользователя.

Этот компонент, например, можно использовать в личном кабинете пользователя.

Для этого в личном кабинете нужно создать страницу и добавить туда код подключения компонента.

7. "profistudio:review.product" - "BoostReviews: рейтинг и отзывы товара"

Компонент в своем шаблоне выводит три компонента:

7.1) "profistudio:review.product.info" - "BoostReviews: детальное описание по отзывам товара"

7.2) "profistudio:review.list.product.filter" - "BoostReviews: фильтр отзывов товара"

7.3) "profistudio:review.list.product" - "BoostReviews: список отзывов товара"

Может использоваться, например, в детальной карточке товара.

8. "profistudio:review.product.info" - "BoostReviews: детальное описание по отзывам товара"

Компонент выводит блоки:

8.1) блок общего рейтинга

8.2) блок количества отзывов

8.3) блок списка оценок

8.4) блок добавления отзыва

8.5) блок с фото

Может использоваться, например, в детальной карточке товара.

Компонент подключается в шаблоне компонента "profistudio:review.product" - "BoostReviews: рейтинг и отзывы товара".

9. "profistudio:review.list.product.filter" - "BoostReviews: фильтр отзывов товара"

Может использоваться, например, в детальной карточке товара.

Компонент подключается в шаблоне компонента "profistudio:review.product" - "BoostReviews: рейтинг и отзывы товара".

10. "profistudio:review.list.product" - "BoostReviews: список отзывов товара"

Может использоваться, например, в детальной карточке товара.

Компонент подключается в шаблоне компонента "profistudio:review.product" - "BoostReviews: рейтинг и отзывы товара".

11. "profistudio:review.image.list" - "BoostReviews: список картинок отзывов"

Компонент выводит блок с фото отзыва или отзывов товара.

Компонент подключается в некоторых шаблонах других компонентов модуля.

12. "profistudio:review.order.product.button" - "BoostReviews: кнопки добавления или редактирования отзыва товара из заказа"

Компонент выводит кнопки добавления или редактирования отзыва товара из заказа

Может быть использован, например, в шаблоне компонента bitrix:sale.personal.order.detail - "Подробная информация о заказе".

Настройки и подключение компонентов для стандартного интернет-магазина Битрикс

1. Подключение компонента "profistudio:review.main" - "BoostReviews: основной компонент"

Без подключения компонента не будут работать или будут работать не корректно другие компоненты модуля.

Чтобы компонент работал, его нужно разместить в шаблоне сайта в файле footer.php (Код нужно добавить в конце файла перед тегом </body>)

Пример:

<? if(\Bitrix\Main\Loader::includeModule("profistudio.review")):?>

<? $APPLICATION->IncludeComponent(

"profistudio:review.main",

".default",

array(

"COMPONENT_TEMPLATE" => ".default",

"TEMPLATE_COMPONENT_FORM" => ".default", // Шаблон компонента добавления отзыва

"TEMPLATE_COMPONENT_FORM_PRODUCT_NEXT" => ".default", // Шаблон компонента: товар для формы, на который можно оставить отзыв

"TEMPLATE_COMPONENT_DELETE" => ".default", // Шаблон компонента удаления отзыва

"TEMPLATE_COMPONENT_SUGGESTION_ADD_REVIEW" => ".default", // Шаблон компонента: всплывающее окно с предложением добавить отзыв

"Z_INDEX" => "1500", // z-index (CSS-свойство z-index для всплывающих окон)

"CACHE_TYPE" => "A",

"CACHE_TIME" => "36000000"

),

false

);?>

<? endif;?>

2. Настройки и подключение компонентов в детальной карточке товара (пример)

Настройки идут в пользовательском шаблоне компонента bitrix:catalog.element

2.1) В шаблоне компонента внизу файла result_modifier.php добавляем код:

<?

if(\Bitrix\Main\Loader::includeModule("profistudio.review") and !empty($arResult["IBLOCK_ID"]))

{

$arResult['PROFISTUDIO_REVIEW_SETTINGS'] = \Profistudio\Review\Tools::getSettingsIblock($arResult["IBLOCK_ID"], SITE_ID, $arParams, array("USE_RATING"));

$arResult['PROFISTUDIO_REVIEW_DETAIL_PAGE_URL'] = '';

if(!empty($arResult["DETAIL_PAGE_URL"]))

{

$arResult['PROFISTUDIO_REVIEW_DETAIL_PAGE_URL'] = $arResult["DETAIL_PAGE_URL"] . ((mb_strpos($arResult["DETAIL_PAGE_URL"], '?') === false) ? '?' : '&') . "reviews-block=y";

}

if(defined('BX_COMP_MANAGED_CACHE') && is_object($GLOBALS['CACHE_MANAGER']))

{

if(mb_strlen((string)($this->__component->getCachePath() ?? '')))

{

$GLOBALS['CACHE_MANAGER']->RegisterTag('profistudio_review_item_tag_' . $arResult["IBLOCK_ID"]);

$GLOBALS['CACHE_MANAGER']->RegisterTag('profistudio_review_settings_tag_' . $arResult["IBLOCK_ID"]);

}

}

$this->__component->arResult['PROFISTUDIO_REVIEW_SETTINGS'] = $arResult["PROFISTUDIO_REVIEW_SETTINGS"];

$this->__component->arResult['PROFISTUDIO_REVIEW_DETAIL_PAGE_URL'] = $arResult["PROFISTUDIO_REVIEW_DETAIL_PAGE_URL"];

$this->__component->SetResultCacheKeys(array('PROFISTUDIO_REVIEW_SETTINGS', 'PROFISTUDIO_REVIEW_DETAIL_PAGE_URL'));

}

?>

2.2) В шаблоне компонента внизу файла script.js добавляем код:

function catalogDetailProfistudioReviews()

{

window.catalogDetailProfistudioReviewsScroll();

}

function catalogDetailProfistudioReviewsScroll()

{

if(!!window.profistudioReviewProductLastClick)

{

return;

}

if(typeof(window.jQuery) === "function")

{

setTimeout(function(){

jQuery('html, body').stop(true, true).animate({scrollTop: jQuery('#catalog-detail-profistudio-reviews').offset().top - 200}, 300);

}, 100);

}

}

2.3) В шаблоне компонента внизу файла component_epilog.php добавляем код:

<? if(\Bitrix\Main\Loader::includeModule("profistudio.review") and !empty($arResult["PROFISTUDIO_REVIEW_SETTINGS"]) and !empty($arResult["IBLOCK_ID"]) and !empty($arResult["ID"]) and !empty($arResult["PROFISTUDIO_REVIEW_DETAIL_PAGE_URL"])):?>

<div style="display:none;">

<div id="catalog-detail-profistudio-reviews-box">

<? $APPLICATION->IncludeComponent(

"profistudio:review.product",

".default",

array(

"COMPONENT_TEMPLATE" => ".default",

"AJAX_MODE" => "Y",

"AJAX_OPTION_JUMP" => "N",

"IBLOCK_ID" => $arResult["IBLOCK_ID"], // ID инфоблока

"PRODUCT_ID" => $arResult["ID"], // ID товара

"PRODUCT_DETAIL_PAGE_URL" => $arResult['PROFISTUDIO_REVIEW_DETAIL_PAGE_URL'], // Адрес страницы с товаром

"COMPONENT_ID" => "product_reviews_1", // ID компонента

"SORT_FIELD_1" => "SORT", // Поле для первой сортировки отзывов

"SORT_ORDER_1" => "DESC", // Направление для первой сортировки отзывов

"SORT_FIELD_2" => "ID", // Поле для второй сортировки отзывов

"SORT_ORDER_2" => "DESC", // Направление для второй сортировки отзывов

"FILTER_NAME" => "profistudioReviewProductFilter", // Фильтр (имя фильтра)

"CACHE_TYPE" => $arParams["CACHE_TYPE"],

"CACHE_TIME" => $arParams["CACHE_TIME"],

"INFO_SHOW" => "Y", // Показывать блок детального описания (подключение компонента "profistudio:review.product.info")

"INFO_SHOW_BLOCK_RATING_ALL" => "Y", // Показывать блок общего рейтинга (блок детального описания)

"INFO_SHOW_BLOCK_REVIEWS_COUNT" => "Y", // Показывать блок количества отзывов (блок детального описания)

"INFO_SHOW_BLOCK_RATING_LIST" => "Y", // Показывать блок списка оценок (блок детального описания)

"INFO_SHOW_BLOCK_ADD" => "Y", // Показывать блок добавления отзыва (блок детального описания)

"INFO_SHOW_IMAGE_LIST" => "Y", // Показывать блок с фото (блок детального описания)

"INFO_SHOW_IMAGE_LIST_TITLE" => "Y", // Показывать заголовок блока с фото (блок детального описания)

"INFO_IMAGE_SIZE" => "80", // Размер миниатюр изображений (блок детального описания)

"INFO_IMAGE_COUNT" => "10", // Видимое количество миниатюр изображений (блок детального описания)

"INFO_IMAGE_BUTTON_TYPE" => "LIST", // Кнопка "Смотреть все фото" (блок детального описания): "LIST" - Открывает галерею с изображениями, "DETAIL" - Открывает следующее изображение

"INFO_IMAGE_RESIZE_TYPE" => "EXACT", // Тип масштабирования миниатюр изображений (блок детального описания): "EXACT" - Масштабировать: фото обрезается (если размеры больше контейнера), "PROPORTIONAL" - Масштабировать: видна вся картинка, "N" - Не масштабировать фото

"FILTER_SHOW" => "Y", // Показать фильтр отзывов (подключение компонента "profistudio:review.list.product.filter")

"FILTER_FIELDS" => array(

0 => "RATING",

1 => "HAS_PHOTO",

), // Поля фильтра: "RATING" - Общая оценка (рейтинг), "HAS_PHOTO" - Наличие фотографий

"LIST_SHOW" => "Y", // Показывать блок со списком отзывов товара

"LIST_COUNT_PAGE" => "10", // Количество отзывов на странице (блок со списком отзывов товара)

"LIST_DATE_FORMAT" => "d.m.Y", // Формат даты (блок со списком отзывов товара)

"LIST_SHOW_RATING" => "Y", // Показывать рейтинг (блок со списком отзывов товара)

"LIST_SHOW_IMAGE_LIST" => "Y", // Показывать блоки с фото (блок со списком отзывов товара)

"LIST_SHOW_IMAGE_LIST_TITLE" => "Y", // Показывать заголовок блока с фото (блок со списком отзывов товара)

"LIST_IMAGE_SIZE" => "80", // Размер миниатюр изображений (блок со списком отзывов товара)

"LIST_IMAGE_COUNT" => "10", // Видимое количество миниатюр изображений (блок со списком отзывов товара)

"LIST_IMAGE_BUTTON_TYPE" => "LIST", // Кнопка "Смотреть все фото" (блок со списком отзывов товара): "LIST" - Открывает галерею с изображениями, "DETAIL" - Открывает следующее изображение

"LIST_IMAGE_RESIZE_TYPE" => "EXACT", // Тип масштабирования миниатюр изображений (блок со списком отзывов товара): "EXACT" - Масштабировать: фото обрезается (если размеры больше контейнера), "PROPORTIONAL" - Масштабировать: видна вся картинка, "N" - Не масштабировать фото

"LIST_SHOW_PAGER" => "Y", // Выводить постраничную навигацию (блок со списком отзывов товара)

"LIST_PAGER_TEMPLATE" => ".default" // Шаблон постраничной навигации (блок со списком отзывов товара)

),

$component,

array('HIDE_ICONS' => 'Y')

);?>

</div>

</div>

<script>

if(typeof(window.jQuery) === "function")

{

jQuery(document).ready(function(){

jQuery('#catalog-detail-profistudio-reviews').append(jQuery('#catalog-detail-profistudio-reviews-box'));

if(typeof(window.catalogDetailProfistudioReviews) === "function")

{

var urlParamsStr = window.location.search || '';

if(!!urlParamsStr)

{

if(urlParamsStr.indexOf('reviews-block=y', 0) !== -1)

{

window.catalogDetailProfistudioReviews();

}

}

}

});

}

</script>

<? endif;?>

2.4) В шаблоне компонента файл template.php:

2.4.1) Для вывода блока с общей оценкой отзывов и ссылкой на отзывы в выбранное место шаблона добавляем код:

<?

$paramsRatingAndReviews = array();

if(!empty($arResult['PROFISTUDIO_REVIEW_SETTINGS']))

{

if(

!empty($arResult["PROPERTIES"]["PROFISTUDIO_REVIEW_COUNT"])

and

(

($arResult['PROFISTUDIO_REVIEW_SETTINGS']["USE_RATING"] === 'Y' and !empty($arResult["PROPERTIES"]["PROFISTUDIO_REVIEW_RATING"]))

||

($arResult['PROFISTUDIO_REVIEW_SETTINGS']["USE_RATING"] !== 'Y')

)

)

{

$paramsRatingAndReviews = array(

'type' => $arResult['PROFISTUDIO_REVIEW_SETTINGS']["USE_RATING"] === 'Y' ? 'all' : 'reviews',

'ratingValue' => $arResult["PROPERTIES"]["PROFISTUDIO_REVIEW_RATING"]["VALUE"] ?? 0,

'reviewsCount' => $arResult["PROPERTIES"]["PROFISTUDIO_REVIEW_COUNT"]["VALUE"] ?? 0,

'class' => '',

'reviewsLink' => array(

'href' => $arResult['PROFISTUDIO_REVIEW_DETAIL_PAGE_URL'],

'params' => '',

'options' => array(

'show' => 'Y'

)

)

);

}

}

?>

<? if(!empty($paramsRatingAndReviews)):?>

<div class="profistudio-review-product-detail-info">

<?=\Profistudio\Review\Tools::getRatingAndReviewsBlock($paramsRatingAndReviews);?>

</div>

<? endif;?>

2.4.2) Для вывода отзывов товара в выбранное место шаблона добавляем код:

<? if(!empty($arResult['PROFISTUDIO_REVIEW_SETTINGS'])):?>

<div id="catalog-detail-profistudio-reviews"></div>

<? endif;?>

3. Вывод блока с общей оценкой отзывов и ссылкой на отзывы в мини-карточках товаров (пример)

Настройки идут в пользовательском шаблоне компонента bitrix:catalog.section и bitrix:catalog.item

3.1) В шаблоне компонента bitrix:catalog.section внизу файла result_modifier.php добавляем код:

<?

if(\Bitrix\Main\Loader::includeModule("profistudio.review") and !empty($arResult["IBLOCK_ID"]))

{

if(defined('BX_COMP_MANAGED_CACHE') && is_object($GLOBALS['CACHE_MANAGER']))

{

if(mb_strlen((string)($this->__component->getCachePath() ?? '')))

{

$GLOBALS['CACHE_MANAGER']->RegisterTag('profistudio_review_item_tag_' . $arResult["IBLOCK_ID"]);

$GLOBALS['CACHE_MANAGER']->RegisterTag('profistudio_review_settings_tag_' . $arResult["IBLOCK_ID"]);

}

}

}

?>

3.2) В пользовательском шаблоне компонента bitrix:catalog.item в файле card/template.php в выбранном месте добавляем код вывода блока с общей оценкой отзывов и ссылкой на отзывы:

<?

$profistudioReviewSettings = array();

if(\Bitrix\Main\Loader::includeModule("profistudio.review"))

{

$profistudioReviewSettings = \Profistudio\Review\Tools::getSettingsIblock($item["IBLOCK_ID"], SITE_ID, array("CACHE_TIME" => 36000000, "CACHE_TYPE" => "A"), array("USE_RATING"));

}

$paramsRatingAndReviews = array();

if(!empty($profistudioReviewSettings))

{

if(

!empty($item["PROPERTIES"]["PROFISTUDIO_REVIEW_COUNT"])

and

(

($profistudioReviewSettings["USE_RATING"] === 'Y' and !empty($item["PROPERTIES"]["PROFISTUDIO_REVIEW_RATING"]))

||

($profistudioReviewSettings["USE_RATING"] !== 'Y')

)

)

{

$reviewsLinkHref = ((string)$item["DETAIL_PAGE_URL"] ?? '');

if(!empty($reviewsLinkHref))

{

$reviewsLinkHref .= ((mb_strpos($reviewsLinkHref, '?') === false) ? '?' : '&') . 'reviews-block=y';

}

$paramsRatingAndReviews = array(

'type' => $profistudioReviewSettings["USE_RATING"] === 'Y' ? 'all' : 'reviews',

'ratingValue' => $item["PROPERTIES"]["PROFISTUDIO_REVIEW_RATING"]["VALUE"] ?? 0,

'reviewsCount' => $item["PROPERTIES"]["PROFISTUDIO_REVIEW_COUNT"]["VALUE"] ?? 0,

'class' => '',

'reviewsLink' => array(

'href' => $reviewsLinkHref,

'params' => '',

'options' => array(

'show' => 'A'

)

)

);

}

}

?>

<? if(!empty($paramsRatingAndReviews)):?>

<div class="profistudio-review-product-item-info">

<?=\Profistudio\Review\Tools::getRatingAndReviewsBlock($paramsRatingAndReviews);?>

</div>

<? endif;?>

4. Вывод всех отзывов пользователя в личном кабинете

В личном кабинете создаем новую страницу и добавляем туда код вызова компонента:

<? if(\Bitrix\Main\Loader::includeModule("profistudio.review")):?>

<? $APPLICATION->IncludeComponent(

"profistudio:review.list.user",

".default",

array(

"COMPONENT_TEMPLATE" => ".default",

"USER_ID" => "", // ID пользователя (Если пусто, то выбираются отзывы текущего пользователя. Если не пусто, то выбираются отзывы выбранного пользователя, но только для администраторов сайта или для текущего пользователя, если его ID совпадает с ID выбранного пользователя.)

"COUNT_PAGE" => "10", // Количество отзывов на странице

"SORT_FIELD_1" => "SORT", // Поле для первой сортировки отзывов

"SORT_ORDER_1" => "DESC", // Направление для первой сортировки отзывов

"SORT_FIELD_2" => "ID", // Поле для второй сортировки отзывов

"SORT_ORDER_2" => "DESC", // Направление для второй сортировки отзывов

"FILTER_NAME" => "profistudioReviewListUserFilter", // Фильтр (имя фильтра)

"SHOW_TITLE" => "Y", // Показывать заголовок

"TITLE" => "", // Заголовок

"SHOW_RATING" => "Y", // Показывать рейтинг

"SHOW_IMAGE_LIST" => "Y", // Показывать блоки с фото

"SHOW_IMAGE_LIST_TITLE" => "Y", // Показывать заголовок блока с фото

"IMAGE_LIST_TITLE" => "", // Заголовок блока с фото

"IMAGE_SIZE" => "80", // Размер миниатюр изображений

"IMAGE_COUNT" => "10", // Видимое количество миниатюр изображений

"IMAGE_BUTTON_TYPE" => "LIST", // Кнопка "Смотреть все фото": "LIST" - Открывает галлерею с изображениями, "DETAIL" - Открывает следующее изображение

"IMAGE_RESIZE_TYPE" => "EXACT", // Тип масштабирования миниатюр изображений: "EXACT" - Масштабировать: фото обрезается (если размеры больше контейнера), "PROPORTIONAL" - Масштабировать: видна вся картинка, "N" - Не масштабировать фото

"CACHE_TYPE" => "A",

"CACHE_TIME" => "36000000",

"DATE_FORMAT" => "d.m.Y", // Формат даты

"SHOW_PAGER" => "Y", // Выводить постраничную навигацию

"PAGER_TEMPLATE" => ".default" // Шаблон постраничной навигации

),

false

);?>

<? endif;?>

5. Вывод кнопок добавления/редактирования и просмотра отзывов товаров в личном кабинете на детальной странице заказа

Настройки идут в пользовательском шаблоне компонента bitrix:sale.personal.order.detail

5.1) В файле template.php шаблона компонента, где идет вывод товаров заказа (внутри цикла foreach ($arResult['BASKET'] as $basketItem){ ... }) в выбранном месте добавляем код:

<? if(\Bitrix\Main\Loader::includeModule("profistudio.review")):?>

<? $APPLICATION->IncludeComponent(

"profistudio:review.order.product.button",

".default",

array(

"ORDER_ID" => $arResult["ID"],

"PRODUCT_ID" => $basketItem["PRODUCT_ID"]

),

false

);?>

<? endif;?>

После подключения модуля BoostReviews необходимо отключить любые другие используемые на сайте отзывы и рейтинг.

В стандартном интернет-магазине Битрикс это делается в настройках параметров компонента bitrix:catalog (снять отметки в пунктах «Отображать отзывы» и «Отображать рейтинг»). В решении Аспро отключение отзывов и рейтинга описано в инструкции разработчика. Для других готовых решений настройки отключения встроенных в них отзывов и рейтинга могут отличаться – необходимо действовать в соответствие с документацией к продукту.