Перейти к основному содержимому

Настройка шаблона формы отзыва

XML-элементы шаблона формы отзыва: что они добавляют в форму виджетов 2.0, как сделать поле обязательным, какие элементы форма не показывает и где хранятся ответы покупателей

Шаблон формы отзыва — XML-документ, который задаёт второй шаг формы отзыва виджетов 2.0 и поле email на первом шаге. Шаблон хранится у категории каталога и редактируется в разделе Админ → Виджеты и формы → Веб-формы. Шаблон редактируют роли Менеджер и Администратор.

Привязка к категориям​

Изменения переопределяют настройки шаблона формы по-умолчанию или полученные от родительской категории. Удалить собственный шаблон категории нельзя. Можно только скопировать в неё XML родительского шаблона, но связь с родительским шаблоном при этом не восстановится: см. как вернуть категории шаблон родительской.

СвойствоЗначение
Где хранитсяУ категории каталога. У бренда и отдельного товара своего шаблона нет
Какой шаблон получает товарШаблон основной категории товара. Если у неё нет своего, то шаблон ближайшей родительской категории, у которой он есть
Шаблон по умолчаниюКорневая категория получает шаблон по умолчанию при создании компании, см. шаблон по умолчанию
Отметка собственного шаблонаЗвёздочка у названия категории с подсказкой «Шаблон переопределён»
Проверка при сохраненииТолько синтаксис XML. Имена элементов и атрибутов не проверяются
Сообщение об ошибке«Ошибка. Не могу сохранить шаблон. Проверьте синтаксис»

Форма запрашивает шаблон по ID товара. Шаблон действует только для отзывов о товарах: у отзыва может быть и другой контекст, но для таких отзывов форма шаблон не использует.

Структура документа​

Корневой элемент — <survey>. Поля формы описываются внутри <product_review>.

<?xml version="1.0" encoding="UTF-8"?>
<survey>
<product_review>
<!-- элементы формы -->
</product_review>
</survey>

Элементы <header>, <post_message> и <store_review> на уровне <survey> виджеты 2.0 не используют.

Атрибуты skip и required срабатывают только при значении ровно "true". Любое другое значение, в том числе "True" и "1", равносильно отсутствию атрибута.

Элементы второго шага​

Второй шаг показывает блоки в таком порядке: детали автора, детали рейтинга, шкалы. Внутри группы блоки идут в порядке элементов в шаблоне. Если в шаблоне нет ни одного элемента <author_detail>, <rating_detail> и <dimension>, форма состоит из одного шага. Число элементов и вариантов ответа не ограничено.

Атрибут name у этих элементов служит ключом ответа в экспорте, импорте и API. При сохранении шаблона наличие name не проверяется.

Из ответов с одинаковым name в отзыве остаётся первый. Поэтому элементы одного вида без name или с повторяющимся name дают в отзыве только один ответ.

author_detail​

Вопрос об авторе отзыва, например «Срок использования». С вариантами ответа форма показывает их кнопками с выбором одного варианта. Без вариантов форма показывает текстовое поле. Элементов может быть несколько.

ПараметрТипОбязательныйОписание
nameатрибутдаКлюч вопроса, например time_usage. Шаблон сохраняется и без него, но тогда ответы на разные вопросы не различаются
<label>тегдаТекст вопроса
<option>тег, повторяетсянетВариант ответа. Покупатель выбирает один
requiredатрибутнет"true" делает вопрос обязательным: без ответа форма не отправит отзыв. Без атрибута вопрос можно пропустить

Ответ сохраняется как строка: текст выбранного варианта или введённый текст.

<author_detail name="time_usage" required="true">
<label>Срок использования</label>
<option>Меньше месяца</option>
<option>Около полугода</option>
<option>Больше года</option>
</author_detail>

rating_detail​

Детальная оценка: отдельная оценка товара по критерию, например «Надежность». В форме выводится карточкой с подписью и пятью кнопками с цифрами от 1 до 5. Элементов может быть несколько.

ПараметрТипОбязательныйОписание
nameатрибутдаКлюч критерия, например reliability. Шаблон сохраняется и без него, но тогда ответы на разные критерии не различаются
<label>тегдаПодпись критерия, выводится заголовком карточки

Форма виджетов 2.0 требует ответ на каждую детальную оценку, с атрибутом required и без него. Ответ сохраняется как число от 1 до 5.

<rating_detail name="reliability">
<label>Надежность</label>
</rating_detail>

dimension​

Шкала: оценка между двумя противоположными значениями, например «Размер» от «Маломерит» до «Большемерит». В форме выводится карточкой с тремя кнопками, подписанными label_min, label_half и label_max. Элементов может быть несколько.

ПараметрТипОбязательныйОписание
nameатрибутдаКлюч шкалы, например size. Шаблон сохраняется и без него, но тогда ответы на разные шкалы не различаются
<label>тегдаНазвание шкалы
<label_min>тегдаПодпись левой кнопки. Ответ -100
<label_half>тегдаПодпись средней кнопки. Ответ 0
<label_max>тегдаПодпись правой кнопки. Ответ 100
requiredатрибутнет"true" делает шкалу обязательной: без ответа форма не отправит отзыв. Без атрибута шкалу можно пропустить

Ответ сохраняется как число: -100, 0 или 100.

<dimension name="size">
<label>Размер</label>
<label_min>Маломерит</label_min>
<label_half>В размер</label_half>
<label_max>Большемерит</label_max>
</dimension>

Поле email​

Элемент <author_email> управляет полем email на первом шаге формы, в блоке с данными автора.

ПараметрТипОбязательныйОписание
skipатрибутнет"true" убирает поле email из формы
requiredатрибутнет"true" делает поле email обязательным. При skip="true" не действует
ШаблонПоле email в форме
Элемента <author_email> нетПоказывается, необязательное
<author_email/>Показывается, необязательное
<author_email required="true"/>Показывается, обязательное
<author_email skip="true"/>Не показывается

Шаблон управляет полем email, только если на сайте не задана стратегия аутентификации. По умолчанию параметр authStrategy пустой, и аутентификации нет. При "otp" поле email показывается и обязательно всегда, при "jwt" блока с данными автора в форме нет. Подробнее — в справочнике настроек виджетов.

Элементы и атрибуты, которые форма виджетов 2.0 не использует​

Эти элементы и атрибуты шаблон принимает, но форма виджетов 2.0 их не показывает или берёт их тексты из своего словаря. Тексты первого шага меняются через texts в aplaut.init, см. как изменить тексты и стили виджетов.

Элемент или атрибутЧто задаёт в шаблонеПоведение формы виджетов 2.0
<rating>Подпись общей оценкиОбщая оценка показывается всегда, подпись берётся из текстов виджета
<pros>, <cons>Подпись, подсказка, skip, requiredПоля достоинств и недостатков показываются всегда и необязательны. skip и required не действуют
<body>Подпись, подсказкаПоле текста показывается всегда, подписи берутся из текстов виджета
<recommended>Вопрос «Рекомендуете?», skip, requiredВопрос показывается всегда, текст берётся из текстов виджета. skip и required не действуют
<headline>Заголовок отзываПоля заголовка в форме нет
<location_name>Город автора, autofill, requiredПоля города в форме нет
<choice_group>Группа вариантов с атрибутами multiple, user_options и requiredНе показывается
pattern у <author_detail>Регулярное выражение для ответаОтвет не проверяется
<placeholder> у <author_detail>Подсказка в текстовом полеПодсказка берётся из текстов виджета, ключ reviews.form.authorDetail.placeholder
<header>, <post_message>Заголовок формы и текст после отправкиНе используются. Действуют только в виджетах 1.0
<store_review>Блок на уровне <survey> рядом с <product_review>Не используется

Своя форма на Submissions API получает шаблон в виде JSON-схемы. Признак required="true" попадает в схему у всех элементов из этого раздела, кроме <headline>, — в том числе у тех, которые форма виджетов 2.0 не показывает. Элемент со skip="true" обязательным в схеме не бывает. Общая оценка и текст отзыва в схеме обязательны всегда.

Поля телефона в шаблоне нет. Телефон включают параметры phoneEnabled и phoneRequired в разделе widgetsConfig.review_form, см. справочник настроек виджетов.

Где видны ответы покупателей​

Отзыв хранит ответ вместе с name и label на момент отправки. Если изменить подпись в шаблоне, у отправленных раньше отзывов останется прежняя подпись.

Гдеauthor_detailrating_detaildimension
Виджет отзывов, сводка над спискомНе показываетсяСредняя оценка по каждому критерию, см. сводку в виджете отзывовСреднее положение на каждой шкале, см. сводку в виджете отзывов
Модерация, карточка отзываПоказывается, редактируетсяПоказывается, редактируетсяПоказывается, редактируется
Экспорт отзывовКолонки author_details, author_details_by_nameКолонки rating_details, rating_details_by_nameКолонки dimensions, dimensions_by_name
Импорт отзывовКолонки author_details.<n>.label и .valueКолонки rating_details.<n>.label и .valueНе импортируются
Platform API v4Поле author_detailsПоле rating_detailsПоле dimensions
ВебхукиПоле author_detailsПоле rating_detailsНе передаются

Формат колонок импорта — в справочнике форматов файлов импорта.

Сводка в виджете отзывов​

Сводка над списком отзывов строится по ответам в опубликованных отзывах, а не по текущему шаблону. Ответы группируются по name.

СвойствоЗначение
Какие отзывы учитываютсяОпубликованные отзывы на товар и на другие товары его группы
Какие критерии и шкалы показываютсяВсе name, на которые есть ответ хотя бы в одном опубликованном отзыве: и удалённые из шаблона, и пришедшие из шаблона другой категории, через импорт или API
Какая подпись показываетсяСамая частая среди отзывов с этим name. Это касается и label_min, label_half, label_max у шкал
Сколько показываетсяДо 10 детальных оценок и до 10 шкал, по убыванию числа отзывов с ответом
Когда пересчитываетсяПри загрузке виджета. Фильтры и подгрузка отзывов сводку не меняют

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

Шаблон по умолчанию​

Корневая категория получает этот шаблон при создании компании. Из его элементов форма виджетов 2.0 показывает два вопроса об авторе с вариантами и две детальные оценки. Поле email в форме показывается и необязательно.

<?xml version="1.0" encoding="UTF-8"?>
<survey>
<header>Мой отзыв о товаре</header>
<product_review>
<rating>
<label>Общее впечатление</label>
</rating>
<rating_detail name="reliability">
<label>Надежность</label>
</rating_detail>
<rating_detail name="functionality">
<label>Функциональность</label>
</rating_detail>
<recommended>
<label>Рекомендуете данный товар?</label>
</recommended>
<headline>
<placeholder>Краткое содержание отзыва</placeholder>
<label>Заголовок</label>
</headline>
<body>
<placeholder>Опишите подробнее свои впечатления о товаре. Чем бы Вы хотели поделиться с другими покупателями?</placeholder>
<label>Текст отзыва</label>
</body>
<author_detail name="time_usage">
<label>Срок использования</label>
<option>Меньше месяца</option>
<option>Около полугода</option>
<option>Больше года</option>
</author_detail>
<author_detail name="frequency_usage">
<label>Частота использования</label>
<option>Ежедневно</option>
<option>Несколько раз в неделю</option>
<option>Пару раз в месяц</option>
</author_detail>
<location_name autofill="true"/>
</product_review>
</survey>