Как показать покупателю его отзывы
Как через Widgets API получить все отзывы одного покупателя и вывести их в личном кабинете на сайте или в мобильном приложении
Выведите покупателю список его отзывов в личном кабинете на сайте или в мобильном приложении: покупатель увидит, какие отзывы опубликованы, а какие ещё на проверке или отклонены. Список отдаёт Widgets API по запросу render.json с контекстом consumer. Готового виджета 2.0 для этого нет, вёрстку списка делает ваш сайт.
Что понадобится
- Легаси-токен для Widgets API из раздела Админ → API и доступы → Токены аутентификации: см. как получить токен доступа к API.
- Внешний ID покупателя из вашей CRM у каждого отзыва. Отзыв без внешнего ID в список не попадёт: у такого отзыва в личном кабинете нет вкладки Клиент.
Шаг 1. Передавайте внешний ID покупателя вместе с отзывами
Передайте с отзывом внешний ID покупателя, а также email или телефон: без них платформа не создаст покупателя. Отзывы, которые пришли без внешнего ID, задним числом к покупателю не привяжутся.
| Как приходят отзывы | Внешний ID | Email и телефон |
|---|---|---|
| Виджеты 2.0 | external_id в aplaut.setParams или в JWT (см. как настроить вход покупателя) | email, phone |
| Submissions API | author_id при создании отзыва | author_email, author_phone |
| UGC-кампании по заказам | consumer_external_id у заказа | consumer_email, consumer_phone |
Шаг 2. Создайте виджет с контекстом «Клиент»
- Откройте Админ → Виджеты и формы → Настройки виджетов, вкладка Widgets 1.0. В блоке Темы виджетов нажмите стрелку в строке Настройки виджетов, выберите набор, через который сайт запрашивает Widgets API, и нажмите Добавить виджет.
- В поле Контекст выберите Клиент, в поле Содержимое виджета — Отзывы о товарах. Отзывы покупателя о компании в такой список не попадают.
- Заполните Название виджета и Системное имя, например
consumer-reviews. Системное имя уходит в запрос какwidget_id. - Сохраните виджет.
Шаг 3. Запросите отзывы покупателя
Передайте в context_id внешний ID покупателя, в theme_id — системное имя набора виджетов из шага 2. Без theme_id API ищет виджет в наборе default. Email и телефон в context_id не подходят: API ищет покупателя только по внешнему ID.
curl "https://w-api2.aplaut.io/widgets/v2/render.json?authentication_token={TOKEN}&theme_id=default&widget_id=consumer-reviews&context=consumer&context_id={EXTERNAL_ID}"
Параметры постраничной выдачи и остальные параметры запроса описаны в справочнике Widgets API.
Шаг 4. Отфильтруйте отзывы по статусу
Запрос с context=consumer возвращает отзывы во всех статусах. Статус отзыва приходит в поле state, значения перечислены в справочнике статусов модерации. Решите на своей стороне, что показывать. Например, опубликованные и ожидающие проверки покажите как есть, а забаненные пометьте.
Если в компании включён выбор причины бана, у забаненного отзыва есть поле ban_reason с причиной: покажите её, чтобы покупатель мог написать новый отзыв. Без выбора причины поле приходит пустым.
Проверка результата
Оставьте тестовый отзыв от покупателя с известным внешним ID и запросите список. Отзыв есть в ответе, а в личном кабинете у него есть вкладка Клиент с тем же внешним ID. Если отзыва в ответе нет, учтите время кеширования виджета из его настроек и повторите запрос позже.