Перейти к содержанию

Отзывы

GET /admin/reviews.json возвращает отзывы товаров через API бэк-офиса, по убыванию id. Для работы с отзывами со стороны покупателя используйте API сайта.

По умолчанию список содержит отзывы без отметки спама. С spam=true возвращается только спам. На странице по умолчанию 10 отзывов. Параметр per_page ограничен диапазоном от 10 до 250: значения за его пределами заменяются ближайшей границей. Заголовка X-TOTAL-PAGES нет.

Отдельного суточного лимита для отзывов нет. Действует общий лимит запросов API.

Для создания отзыва передайте author, email, content и product_id. Некорректный адрес почты отклоняется со статусом 422 и телом {"email":["имеет неверное значение"]}. Для несуществующего товара API возвращает 422 и {"product_id":["Указан несуществующий товар"]}.

rating — целое от 1 до 5 или null. Ноль отвечает {"rating":["может иметь лишь значение большее или равное 1"]}.

Дробное число сохраняется без дробной части: 4.5 становится 4.

Если поле published передано, InSales сохраняет его значение. Если поле не передано и в магазине включена модерация, отзыв сохраняется с published: false. Переданное значение created_at также сохраняется.

Чтобы добавить ответ магазина, измените отзыв, передав manager_reply и replied_at. Поле replied_q в ответе станет true. Чтобы привязать отзыв к другому товару, передайте существующий product_id: в ответе изменятся product_id, title и url.

Если у товара нет изображения, first_image содержит адреса заглушек /images/no_image_*.jpg. Передать изображение при создании отзыва нельзя: запрос с image_attributes.src или с attachment и filename возвращает 500, отзыв не создаётся.

POST/admin/reviews.json
Параметр Описание
review[product_id] обязательный
число
id существующего товара.
review[author] обязательный
строка
Имя автора.
review[email] обязательный
строка
Email автора.
review[content] обязательный
строка
Текст отзыва.
review[rating] необязательный
число
Целое от 1 до 5. Пустое значение сохраняется как null. Дробная часть отбрасывается: 4.5 сохраняется как 4.
review[published] необязательный
логический
Публиковать сразу. Без ключа при модерации сохраняется false.
review[created_at] необязательный
строка
Дата отзыва. Сохраняется как передана.
POST /admin/reviews.json
Authorization: Basic API_KEY:API_PASSWORD
Accept: application/json
Content-Type: application/json

{
  "review": {
    "product_id": 673,
    "author": "Анна",
    "email": "anna@example.com",
    "content": "Отзыв с датой",
    "rating": 5,
    "published": true,
    "created_at": "2020-01-15T12:00:00+03:00"
  }
}

Ответ · 201

{
  "id": 14,
  "product_id": 673,
  "author": "Анна",
  "content": "Отзыв с датой",
  "email": "anna@example.com",
  "rating": 5,
  "published": true,
  "created_at": "2020-01-15T12:00:00.000+03:00",
  "manager_reply": null,
  "replied_at": null,
  "spam": false,
  "replied_q": false,
  "title": "docs-api catalog product",
  "url": "/product/docs-api-catalog-product"
}

Без published при включённой модерации:

POST/admin/reviews.json
Параметр Описание
review[product_id] обязательный
число
id товара.
review[author] обязательный
строка
Имя автора.
review[email] обязательный
строка
Email автора.
review[content] обязательный
строка
Текст отзыва.
POST /admin/reviews.json
Authorization: Basic API_KEY:API_PASSWORD
Accept: application/json
Content-Type: application/json

{
  "review": {
    "product_id": 673,
    "author": "Борис",
    "email": "boris@example.com",
    "content": "Жду модерации"
  }
}

Ответ · 201

{
  "id": 1,
  "product_id": 673,
  "author": "Борис",
  "content": "Жду модерации",
  "email": "boris@example.com",
  "rating": null,
  "published": false,
  "manager_reply": null,
  "replied_at": null,
  "spam": false,
  "replied_q": false
}
PUT/admin/reviews/1.json
Параметр Описание
id обязательный
число
id отзыва.
review[published] необязательный
логический
Опубликовать отзыв.
review[manager_reply] необязательный
строка
Ответ магазина.
review[replied_at] необязательный
строка
Время ответа.
review[product_id] необязательный
число
Другой существующий товар. Отзыв перепривязывается.
PUT /admin/reviews/1.json
Authorization: Basic API_KEY:API_PASSWORD
Accept: application/json
Content-Type: application/json

{
  "review": {
    "published": true,
    "manager_reply": "Спасибо",
    "replied_at": "2024-05-01T10:00:00+03:00"
  }
}

Ответ · 200

{
  "id": 1,
  "product_id": 673,
  "published": true,
  "manager_reply": "Спасибо",
  "replied_at": "2024-05-01T10:00:00.000+03:00",
  "replied_q": true
}

DELETE /admin/reviews/:id.json отвечает {"status":"ok"}.