Подключение Aplaut к сайту или другой платформе
План подключения Aplaut: что подготовить, как загрузить каталог и вывести отзывы через JS-скрипт, Widgets API или Platform API, как синхронизировать рейтинги и события
Интеграция с Aplaut состоит из общих шагов и одного шага, который зависит от способа. Подготовка кабинета, каталог товаров, синхронизация рейтингов и дополнительные настройки одинаковы для всех. Различается то, как отзывы попадают на сайт:
| Способ | Что стоит на сайте | Как отзывы попадают на сайт и в Aplaut |
|---|---|---|
| JS-скрипт | Готовые виджеты Aplaut 2.0 | Виджеты сами загружают отзывы и отправляют новые из своей формы |
| Widgets API | Ваши виджеты и форма отзыва | Отзывы и рейтинг товара сайт запрашивает из Widgets API, новые отзывы отправляет через Submissions API |
| Platform API | Ваши виджеты и форма отзыва, без запросов к Aplaut со страницы | Отзывы и рейтинги сайт забирает на бэкенде по расписанию, новые отправляет через Submissions API |
Выбранный способ переключается на вкладках в шагах 3 и 6. Вкладки связаны: выбор на одной меняет и остальные.
Что нужно перед началом
- Договор с Aplaut.
- Аккаунт в личном кабинете Aplaut.
- Разработчик или команда, которые проведут интеграцию.
- Если отзывы собирались до подключения Aplaut, их выгрузка в файл.
Шаг 1. Подготовьте кабинет и перенесите отзывы
- В личном кабинете в разделе Админ → Аккаунт → Команда добавьте коллег, которым нужен доступ во время интеграции и после неё: см. как пригласить пользователя. Приглашать коллег может пользователь с ролью Администратор.
- Если до подключения Aplaut у вас накопились отзывы, импортируйте их. Тогда рейтинги и отзывы на сайте сохранятся после интеграции. Подготовьте файл в одном из форматов:
- XLSX или CSV, если у вас только отзывы, без комментариев и ответов вашей команды, и нет отзывов без текста. Требования к файлу и порядок импорта — в статье «Импорт данных в кабинете».
- JSONL, если у отзывов есть комментарии и ответы или есть отзывы без текста. Каждая строка описывает один отзыв с комментариями, файл лучше сжать gzip. Формат описан на jsonlines.org, пример файла лежит на Google Drive, полный список полей — в разделе импорта.
Шаги 2–5 можно выполнять параллельно с первым: перенос отзывов не задерживает остальную интеграцию.
Шаг 2. Подключите каталог товаров
Товар — основа всех процессов в Aplaut: отзыв, вопрос и рейтинг привязаны к товару. Каталог (фид) Aplaut скачивает по ссылке и обновляет автоматически.
- Подготовьте файл каталога по требованиям к каталогу.
- Если варианты товара на сайте объединены в одну карточку, сгруппируйте их в фиде. Тогда отзыв на один вариант будет виден у всех.
- Сохраните прямую ссылку на файл в настройках импорта и включите автоматическое скачивание. Aplaut поддерживает HTTP и FTP, сжатие gzip и Basic-авторизацию.
Шаг 3. Выведите отзывы на сайт
- JS-скрипт
- Widgets API
- Platform API
- Установите загрузчик скрипта Aplaut на все страницы сайта и поставьте теги виджетов (
<ap-reviews>,<ap-informer>и другие) туда, где они должны появиться: см. инструкцию по установке. Перечислять виджеты вaplaut.initне нужно: виджет загружается, когда его тег появляется на странице. - Подберите настройки виджетов в конструкторе виджетов. Конструктор доступен в раннем доступе или по запросу к менеджеру Aplaut.
- Если оставлять отзывы могут только покупатели, которые вошли на сайт, настройте вход покупателя. Если только купившие товар — проверку покупки. По умолчанию виджеты не связаны с CMS и другими вашими системами.
Новые отзывы виджеты отправляют в Aplaut сами, Submissions API для этого не нужен.
-
В личном кабинете добавьте набор виджетов. Для первого набора используйте название «По умолчанию» и системное название
default: его вы будете передавать в запросах какtheme_id. После редизайна сайта или обновления виджетов можно добавить новый набор с другим названием. -
Отзывы и рейтинг в карточке товара запрашивайте методом «Запрос одного виджета в формате JSON»:
curl 'https://w-api2.aplaut.io/widgets/v2/render.json?authentication_token={TOKEN}&theme_id=default&context=product&context_id={OFFER.ID}&widget_id=product-reviews'{TOKEN}— легаси-токен из раздела Админ → API и доступы → Токены аутентификации,{OFFER.ID}— ID товара из каталога, который загружен в Aplaut. Пример ответа и описание полей — в справочнике Widgets API в блоке Responses. -
Если виджет выводит отзывы на товары категории, добавьте в запрос
include=product. У каждого отзыва появится полеproductс названием, ссылкой, картинкой, ценой, рейтингом и числом отзывов товара. -
Сделайте так, чтобы страница товара открывалась и при сбоях Widgets API: см. рекомендации по интеграции и работе с Widgets API.
-
Новые отзывы и комментарии отправляйте через Submissions API: см. шаг 5.
Рейтинги для листингов и блоков рекомендаций, где нужны данные сразу многих товаров, синхронизируйте экспортом: см. шаг 4.
- Отзывы, рейтинги и число отзывов товаров сайт забирает на бэкенде экспортом раз в сутки: см. шаг 4. Выводите их своими виджетами из своей базы данных.
- Новые отзывы и комментарии отправляйте через Submissions API: см. шаг 5.
- Если отзыв можно оставить только на купленный товар, проверяйте покупку на своей стороне.
Шаг 4. Синхронизируйте рейтинги с сайтом
Рейтинг и число отзывов, сохранённые у товара в вашей базе данных, нужны для листингов: только так на сайте работают сортировка и фильтр товаров по рейтингу. Для JS-скрипта на листингах выводите свой блок с рейтингом вместо виджетов.
Раз в сутки забирайте товары, которые изменились за прошедший день, периодическим экспортом. Запросы к Platform API подписывайте токеном OAuth-приложения с доступом Platform API: см. как получить токен доступа к API. Способы передачи токена — в справочнике группы «API и доступы».
-
Создайте задачу на экспорт с фильтром по дате изменения:
curl -X POST 'https://api.aplaut.io/v4/export_tasks' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {TOKEN}' \--data-raw '{"data": {"type": "export_tasks","attributes": {"records_type": "products","search_options": {"filter": {"updated_at": {"eq": "ГГГГ-ММ-ДД"}}},"format": "jsonl"}}}'Для интеграции через Platform API создайте такую же задачу с
"records_type": "reviews": она вернёт новые и изменённые отзывы за день. -
В ответе придёт ID задачи. Проверяйте её статус не чаще раза в минуту:
curl 'https://api.aplaut.io/v4/export_tasks/{TASK_ID}' \--header 'Authorization: Bearer {TOKEN}' -
Когда в ответе
stateравенcompleted, скачайте архив по ссылке изarchive_url:{"data": {"id": "TASK_ID","type": "export_tasks","attributes": {"records_type": "products","state": "completed","format": "jsonl","archive_url": "{ARCHIVE_URL}","archive_size": 144696,"archive_content_type": "application/gzip","finished_at": "2023-11-03T17:14:53.529+03:00"}}}
Ограничения экспорта:
- У компании есть суточная квота на суммарное время экспортов, по умолчанию 60 минут, общая для кабинета и API: см. справочник лимитов экспорта. Когда квота исчерпана, новые задачи встают в очередь с низким приоритетом и выполняются дольше. Не создавайте повторную задачу, дождитесь уже созданной.
- Изредка задача зависает, и её статус не становится
completed. Если статус не менялся 3 часа, создайте новую задачу. - Статус всех задач виден в кабинете в журнале Журналы → Экспорт данных.
Если изменения нужны чаще раза в сутки, используйте один из двух способов:
- Обход данных через Platform API:
GET /v4/scroll/{reviews|products|questions}с курсором отдаёт записи, изменённые после заданной даты, постранично и без квоты экспорта. Сводку отзывов товара запрашивайте черезinclude=reviews_summary_item: атрибутаsummaryу товара нет. - Исходящий вебхук: Aplaut отправляет событие на ваш URL при создании, изменении, публикации или бане отзыва, комментария, вопроса или ответа, а также при пересчёте рейтинга товара. Вебхук настраивается в кабинете в разделе Инструменты → Интеграции. Список событий и примеры тела — в справочнике событий вебхуков.
Шаг 5. Отправляйте отзывы через Submissions API
Шаг нужен для интеграции через Widgets API и Platform API. При интеграции через JS-скрипт новые отзывы отправляет форма виджета.
Отзывы из форм на сайте или в мобильном приложении отправляйте методом «Создание отзыва» Submissions API. Запросы подписывайте токеном OAuth-приложения с доступом Submissions API.
Отзывы без текста, только с оценкой или с оценкой и фото, по умолчанию выключены. Чтобы их принимать, попросите поддержку Aplaut включить функцию: напишите на support@aplaut.com, в Telegram @aplaut_support_bot или в чат поддержки в личном кабинете. В каждом отзыве передавайте wordless: true для отзыва без текста, false для отзыва с текстом.
- Отзыв с текстом
- Отзыв без текста
- Комментарий к отзыву
- Ответ на комментарий
curl -X POST https://s-api.aplaut.io/v2/reviews \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN}' \
--data-raw '{
"review": {
"rating": 5,
"wordless": false,
"body": "Текст отзыва",
"pros": "Текст поля Достоинства",
"cons": "Текст поля Недостатки",
"recommended": true,
"author_id": "qwerty123",
"author_name": "Манишева Рада Якимовна",
"author_email": "youname@yourmail.ru",
"author_phone": "79991112233",
"location_name": "Уфа",
"photo_urls": ["https://yoursite.ru/picture1.png", "https://yoursite.ru/picture2.png"],
"photo_ids": ["8787258c9549834e99febf05", "8787258c9549834e99febf06"],
"video_ids": ["654258c9549834e99febf05c"],
"product_id": "178963",
"author_ip": "178.214.291.62",
"hide_my_data": false
}
}'
curl -X POST https://s-api.aplaut.io/v2/reviews \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN}' \
--data-raw '{
"review": {
"rating": 5,
"wordless": true,
"recommended": true,
"author_id": "qwerty123",
"author_name": "Иван",
"author_email": "youname@yourmail.ru",
"author_phone": "79991112233",
"location_name": "Уфа",
"photo_urls": ["https://yoursite.ru/picture1.png", "https://yoursite.ru/picture2.png"],
"photo_ids": ["8787258c9549834e99febf05", "8787258c9549834e99febf06"],
"video_ids": ["654258c9549834e99febf05c"],
"product_id": "178963",
"author_ip": "178.214.291.62",
"hide_my_data": false
}
}'
curl -X POST https://s-api.aplaut.io/v2/reviews/{REVIEW_ID}/comments \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN}' \
--data-raw '{
"comment": {
"text": "Текст комментария на отзыв",
"author_id": "qwerty123",
"author_name": "Иван",
"author_email": "yourname@yourmail.ru",
"hide_my_data": true
}
}'
curl -X POST https://s-api.aplaut.io/v2/reviews/{REVIEW_ID}/comments \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {TOKEN}' \
--data-raw '{
"comment": {
"text": "Текст комментария на комментарий",
"parent_id": "{COMMENT_ID}",
"external_parent_id": "{COMMENT_EXTERNAL_ID}",
"author_id": "qwerty123",
"author_name": "Иван",
"author_email": "yourname@yourmail.ru",
"hide_my_data": true
}
}'
Полный список полей отзыва — в разделе импорта личного кабинета.
Шаг 6. Проверьте основные этапы
- JS-скрипт
- Widgets API
- Platform API
- Ссылка на каталог сохранена в настройках импорта, автоматическое скачивание включено.
- Загрузчик установлен на всех страницах, теги виджетов
<ap-…>стоят на нужных страницах. - Рейтинги и число отзывов товаров синхронизируются с сайтом.
- Ссылка на каталог сохранена в настройках импорта, автоматическое скачивание включено.
- В карточках товаров и на листингах работают ваши виджеты, отзывы приходят из Widgets API, новые уходят через Submissions API.
- Рейтинги и число отзывов товаров синхронизируются с сайтом.
- Страница товара открывается при сбоях и замедлениях Widgets API.
- Ссылка на каталог сохранена в настройках импорта, автоматическое скачивание включено.
- Отзывы, рейтинги и число отзывов товаров синхронизируются с вашей базой данных.
- Новые отзывы и комментарии уходят в Aplaut через Submissions API.
Дополнительные этапы
-
Импортируйте заказы, чтобы запускать email-кампании по сбору отзывов после покупки. Передавайте выполненные заказы, по которым покупатель уже получил товар. Импортировать заказы можно по постоянной ссылке на файл раз в сутки, как каталог, или через API. Форматы файлов — в справочнике форматов импорта.
-
Настройте отправку писем с вашего домена. Сообщите менеджеру Aplaut имя и адрес отправителя, например «Компания N» и
n_company@yourdomain.ru, и добавьте DNS-записи, которые он пришлёт. Если встроенные шаблоны писем не подходят, сверстайте свой по требованиям к шаблонам писем, проверьте его и отправьте менеджеру файлом HTML. -
Добавьте кнопку Оставить отзыв на другие страницы сайта, например в список заказов покупателя. При интеграции через JS-скрипт на такой странице должны стоять загрузчик и виджет отзывов или форма отзыва, а по клику на кнопку вызывайте:
aplaut.showReviewForm();Товар для формы задаёт виджет на странице или вызов
aplaut.setParams({ product_id: "<ID_ТОВАРА>" }): см. справочник JS API и форму отзыва без виджета отзывов. Окно с товарами из заказа показывает приглашение оставить отзыв. -
Передавайте события по отзывам и вопросам во внешние системы, например в программу лояльности, через исходящий вебхук. Список событий и формат тела — в справочнике событий вебхуков.
-
При интеграции через Widgets API можно показать галерею фото и видео из отзывов. По умолчанию она выключена, включает её менеджер Aplaut. Медиа вместе с отзывами отдаёт
render.jsonс параметромgallery=true, отдельно от списка — запрос/gallery. Для постраничного превью только с медиа используйте/galleryсpreview=trueи параметромpage. Чтобы первыми шли медиа из отзывов с высокой оценкой, попросите менеджера включить сортировку по оценке и передайтеsort=score:descв/galleryилиgallery_sort=score:descвrender.json. Без этого у всех элементов галереи одинаковыйscore. Видео Kinescope встраивайте поkinescope_assets.external_idплеером Kinescope, адрес видео имеет видhttps://kinescope.io/embed/{external_id}. Поля ответа — в справочнике Widgets API.