Отзывы на товары

IMSHOP Retail Protocol (IRP) является объектом интеллектуальной собственности ООО «АЙ ЭМ СОЛЮШНЗ» (IMSHOP) и защищён как объект авторского права. Свидетельство о депонировании произведения № 023-014461 от 16 января 2023 г. подтверждает исключительные права ООО «АЙ ЭМ СОЛЮШНЗ» на данные технологии.

IMSHOP Retail Protocol создан по заказу ООО «АЙ ЭМ СОЛЮШНЗ». Использование IMSHOP Retail Protocol допустимо только при взаимодействии с ООО "АЙ ЭМ СОЛЮШНЗ" и наличии действующего лицензионного договора. Более подробно можно ознакомиться здесь.

Отзывы на товары Дополнительные интеграции вводятся в эксплуатацию после завершения основных интеграций:

Для подключения дополнительных интеграций обратитесь к вашему менеджеру в IMSHOP.IO

Получение отзывов на товар

Формат запроса

  • id - идентификатор товара в системе продавца (на сайте / в CRM итд)

{
    "id": "1234567890"
}

Формат ответа

  • rating - суммарный рейтинг отзывов по товару, от 1 до 5

  • reviews - список отзывов

    • id - id отзыва (string), необязательно, но необходимо для функционала лайков/дизлайков отзыва (в разработке)

    • positiveReviews - кол-во позитивных оценок отзыва, необязательно (в разработке)

    • negativeReviews - кол-во негативных оценок отзыва, необязательно (в разработке)

    • text - текст отзыва, обязательно наличие либо текста либо картинок

    • author - автор, обязательное поле

    • date - дата отзыва, в формате YYYY-MM-DDTHH:MM, обязательное поле по гринвичу (UTC / GMT +0)

    • title - (опционально), заголовок отзывы

    • rating - (опционально), рейтинг отзыва по шкале от 1 до 5

    • pictures (опционально) - массив картинок отзыва

      • src - веб-ссылка на картинку

    • extraValues - (опционально) - массив описаний значений расширенных полей для добавляемых отзывов (слайдеры, чекбоксы, текст)

      • id - уникальное для поля id

      • type - тип поля (test, slider, checkbox) - значения полученные из типов полей select и radio должны быть переданы как text

      • label - Название поля

      • value - Значения указанные в отзыве (для типа slider число, для типа checkbox массив отмеченных значений из возможных. см. пример ответа с расширенными полями)

      • options - (обязательно для типов slider и checkbox) массив вариантов

        • label - Название значения поля

        • value - Значение поля (тип данных для типа slider число по порядку от 1, см. пример ответа для расширенных полей)

      • start - (обязательно для типа slider) начальное крайнее значение у слайдера

      • end - (обязательно для типа slider) конечное крайнее значение у слайдера

  • extraFields - (опционально) - массив описаний расширенных полей для добавляемых отзывов (слайдеры, селекторы, чекбоксы, радиобаттоны)

    • id - уникальное для поля id

    • type - тип поля (select, slider, checkbox, radio)

    • label - Название поля

    • options - массив вариантов проставляемых значений поля

      • label - Название значения поля

      • value - Значение поля (тип данных для типа slider число по порядку от 1, см. пример ответа для расширенных полей)

    • start - (обязательно для типа slider) начальное крайнее значение у слайдера

    • end - (обязательно для типа slider) конечное крайнее значение у слайдера

Пример ответа

{
    "rating": "1.7",
    "reviews":
    [
        {
            "author": "Jake",
            "date": "2020-04-25T08:30",
            "id": "123",
            "negativeReviews": 2,
            "pictures":
            [
                {
                    "src": "https://pmdn.sokolov.io/pics/F7/A5/84C379E76E8EE97A3B23EBE39DE4.jpg"
                }
            ],
            "positiveReviews": 10,
            "rating": 3,
            "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
            "title": "Lorem ipsum"
        }
    ],
    "extraFields": []
}

Пример ответа с расширенными полями отзыва

{
    "rating": "1.7",
    "reviews":
    [
        {
            "author": "Jake",
            "date": "2020-04-25T08:30",
            "id": "123",
            "negativeReviews": 2,
            "pictures":
            [
                {
                    "src": "https://pmdn.sokolov.io/pics/F7/A5/84C379E76E8EE97A3B23EBE39DE4.jpg"
                }
            ],
            "positiveReviews": 10,
            "rating": 3,
            "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
            "title": "Lorem ipsum",
            "extraValues": [
                {
                  "id": "select",
                  "type": "text",
                  "label": "Качество продукта",
                  "value": "Хорошо"
                },
                {
                  "id": "slider",
                  "type": "slider",
                  "label": "Удобство",
                  "value": 1,
                  "start": "Неудобно",
                  "end": "Очень удобно",
                  "options": [
                    {
                      "label": "Неудобно",
                      "value": 1
                    },
                    {
                      "label": "Удобно",
                      "value": 2
                    },
                    {
                      "label": "Очень удобно",
                      "value": 3
                    }
                  ]
                },
                {
                  "id": "checkbox",
                  "type": "checkbox",
                  "value": [1, 2],
                  "label": "Что понравилось",
                  "options": [
                    {
                      "label": "Быстро доставили",
                      "value": 1
                    },
                    {
                      "label": "Простая сборка",
                      "value": 2
                    },
                    {
                      "label": "Легко вписать в интерьер",
                      "value": 3
                    }
                  ]
                },
                {
                  "id": "radio",
                  "type": "text",
                  "value": "Да",
                  "label": "Порекомендуете ли товар"
                }
            ]
        }
    ],
    "extraFields": [
        {
          "id": "select",
          "type": "select",
          "label": "Качество продукта",
          "options": [
            {
              "label": "Плохо",
              "value": "Плохо"
            },
            {
              "label": "Хорошо",
              "value": "Хорошо"
            }
          ]
        },
        {
          "id": "slider",
          "type": "slider",
          "label": "Удобство",
          "start": "Неудобно",
          "end": "Очень удобно",
          "options": [
            {
              "label": "Неудобно",
              "value": 1
            },
            {
              "label": "Удобно",
              "value": 2
            },
            {
              "label": "Очень удобно",
              "value": 3
            }
          ]
        },
        {
          "id": "checkbox",
          "type": "checkbox",
          "label": "Что понравилось",
          "options": [
            {
              "label": "Быстро доставили",
              "value": 1
            },
            {
              "label": "Простая сборка",
              "value": 2
            },
            {
              "label": "Легко вписать в интерьер",
              "value": 3
            }
          ]
        },
        {
          "id": "radio",
          "type": "radio",
          "label": "Порекомендуете ли товар",
          "options": [
            {
              "label": "Да",
              "value": 1
            },
            {
              "label": "Нет",
              "value": 0
            }
          ]
        }
    ],
}

Пример заполнения extraFields для использования checkbox для соглашений

Когда поле required имеет значение true, отзыв нельзя будет отправить пока пользователь не отметит checkbox

В тексте чекбокса поддерживаются ссылки в формате markdown.

{
  "rating": "5.0",
  "reviews": [ /*...тут список отзывов*/ ],
  "extraFields": [
    {
      "id": "agreement",
      "type": "checkbox",
      "label": "",
      "required": true,
      "options": [
        {
          "label": "При использовании чекбокса для [соглашения](https://www.google.com/) нужно передавать как два раздельных чекбокса с опцией из 1 варианта и полем required: true",
          "value": 1
        }
      ]
    },
    {
      "id": "agreement2",
      "type": "checkbox",
      "label": "",
      "required": true,
      "options": [
        {
          "label": "Второй чекбок для соглашения [передан отдельно от первого с 1 варианом](https://www.google.com/)",
          "value": 1
        }
      ]
    }
  ]
}

Сохранение нового отзыва

Формат запроса

  • item - идентификатор товара

  • rating - число-рейтинг

  • name - имя, которым представился покупатель

  • comment - текст отзыва

  • userId - идентификатор пользователя, если он авторизован в приложении, или null

  • images - фотографии в формате base64, прикрепленные к отзыву. Включается опционально. Массив с данными изображений:

    • type - MIME-тип изображения, например image/jpeg

    • base64 - изображение в формате base64

Дополнительные поля

По согласованию с менеджером, в форму отправки отзыва можно добавить любые произвольные текстовые поля, и задать им любые идентификаторы. Например "Преимущества" и "Недостатки" с идентификаторами pros и cons. Дополнительные поля могут быть как обязательными, так и опциональными. В случае если были в новом отзыве настроены расширенные поля, то в запросе они будут как id:значение

Пример запроса

{
    "item": "67128736",
    "userId": "1122334455",
    "name": "Иван Иванов",
    "comment": "В реальности кажется более вместительным, чем на фото. Отличный материал. За такую цену - просто подарок.",
    "rating": 5,
    "pros": "Цена. Надо брать",
    "cons": "После установки первые несколько часов сильно шумел",
    "quality_slider": 1,
    "happy_checkbox": [1,2]
}

Формат ответа:

  • success - true / false. Принят ли отзыв в обработку

Пример ответа

{
    "success": true
}

Last updated