Отзывы
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, отзыв не создаётся.
| Параметр | Описание |
|---|---|
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 при включённой модерации:
| Параметр | Описание |
|---|---|
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
}
| Параметр | Описание |
|---|---|
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"}.