Как выгрузить данные через Platform API
Выгрузка отзывов, вопросов и ответов, рейтингов товаров и результатов опросов методом «Задачи на экспорт» Platform API.
Выгружайте данные через Platform API, когда их нужно регулярно синхронизировать с вашими системами, индексировать или складывать в аналитику. Разовый отчёт быстрее получить из личного кабинета.
Процесс общий для всех коллекций. Различаются значение records_type, фильтры и состав полей в файле.
Что понадобится
- Создать ключ OAuth из раздела Настройки → Разработчикам личного кабинета.
- Метод Задачи на экспорт Platform API.
Какие коллекции доступны по API и какие действуют лимиты — см. Экспорт данных: коллекции, форматы и лимиты.
Порядок выгрузки
- Создайте задачу на экспорт с нужным
records_type. - Раз в минуту проверяйте статус задачи.
- Скачайте файл по ссылке из ответа, когда статус станет
completed. - Создайте следующую задачу на очередную порцию данных, если объём превышает лимит одного экспорта.
Для периодической синхронизации делайте выгрузку не чаще раза в сутки. Если данные нужны чаще, экспорты не подходят: используйте вебхуки.
Настройка запроса
Выгрузка только изменений
Чтобы не тянуть каждый раз всю коллекцию, добавьте в search_options фильтр по времени последнего обновления записи. В gt подставляйте дату и время предыдущей успешной выгрузки.
"search_options": {
"filter": {
"updated_at": {
"gt": "YYYY-MM-DDThh:mm:ss+03:00"
}
}
}
Остальные атрибуты для фильтрации перечислены в описании метода по соответствующей коллекции, операторы — в разделе «Фильтрация» документации Platform API.
Состав полей в файле
Параметр export_format задаёт, какие атрибуты и в каком порядке попадут в файл CSV или XLSX1. Готовый набор копируется из личного кабинета: Настройки → Экспорт данных. Как его собрать, описано в статье Как настроить формат выгрузки данных.
Параметры по коллекциям
- Отзывы
- Вопросы и ответы
- Рейтинги товаров
- Результаты опросов
"records_type": "reviews"
"export_format": "[.id?, .created_at?, .state?, .order_number?, .context_type?, .product_id?, .product.name?, .product.url?, .category.name?, .brand.name?, .location_name?, .rating?, .body?, .pros?, .cons?, .recommended?, .likes?, .dislikes?]"
Отзывы из внешних источников, полученные по услуге агрегации, в экспорты не попадают, если иное не предусмотрено вашим тарифом и договором. Подключение услуги обсуждается с менеджером Aplaut.
"records_type": "questions"
Функция unwind разворачивает каждый ответ в отдельную строку файла:
"export_format": "unwind(.answers) | [.id?, .created_at?, .updated_at?, .product_id?, .category.name?, .author_name?, .author_email?, .body?, .answers._id?, .answers.text?]"
"records_type": "products"
Отдельной коллекции рейтингов нет: рейтинг приходит атрибутом товара. Регулярная выгрузка нужна, чтобы сортировать товары по рейтингу в листингах сайта и показывать его в CMS или мобильном приложении.
"export_format": "[.id?, .external_id?, .group_id?, .created_at?, .updated_at?, .reviews_count?, .rating?, .url?, .published_group_reviews_count?, .last_published_group_review_at?]"
"records_type": "survey_responses"
Результаты опросов выгружаются по одному опросу за раз, получить их все разом нельзя. Сначала запросите список опросов методом Список опросов и возьмите оттуда нужный ID, затем передайте его фильтром:
"search_options": {
"filter": {
"survey_id": {
"eq": "1234567abcdefg"
}
}
}
"export_format": "[.id?, .created_at?, .author_name?, .author_email?, .order_number?, .location?.name?, (.answers // [] | .[].value?)]"