Регистрация маркировки

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

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

Перед подключением необходимо предать вашему продакт менеджеру в IMSHOP следующие URL

  • URL для отправки запроса на регистрацию маркировки

  • URL для запроса статусов сканирования

От продакт менеджера в IMSHOP необходимо получить:

  • URL и ключ для отправки обновлений статусов сканирования в IMSHOP

Отправка запроса на сканирование

Для каждого сканирования, IMSHOP будет отправлять в виде POST запроса код и данные формы, и дать в ответ статус.

Запрос

При запросе сервер принимает штрихкод и данные формы:

  • barcode - закодированный текст или base64 строка для бинарных данных

  • userId - идентификатор пользователя из ответа ендпоинта получения профиля пользователя

  • timestamp - время / таймштамп сканирования

  • data - дополнительные опциональные поля формы. список данных для запроса при сканировании товара необходимо передать вашему продакт менеджеру (опционально)

Пример

{
  "barcode": "YXNkYXNkIGpha2RzIGxha2RzYWE=",
  "userId": "79991234567",
  "timestamp": 1662660581,
  "data": {
    "customField1": "value1"
  }
}

Ответ

В ответ сервер должен отправить сообщение об успешной/неуспешной валидации штрихкода:

  • success - true / false флаг успеха

  • id - идентификатор сканирования. может совпадать с кодом, если они уникальны

  • alertTitle - заголовок всплывающего окна, которое будет показано после сканирования (опционально)

  • alertMessage - текст всплывающего окна, которое будет показано после сканирования (опционально)

  • statusMessage - будет показано в истории сканирования, напротив записи. например: "Начисление бонусов по данному коду невозможно" (опционально)

  • status - код статуса. возможные значения:

    • processing - в обработке

    • approved - начислено

    • denied - отказано

HTTP статус - 200

Пример

{
  "sucсess": false,
  "id": "YXNkYXNkIGpha2RzIGxha2RzYWE=",
  "alertTitle": "Ошибка",
  "alertMessage": "Срок начисления бонусов по данному коду истек",
  "statusMessage": "Начисление бонусов по данному коду невозможно",
  "status": "denied"
}

Запрос статусов сканирования

Запрос

При переходе на экран истории сканирований, IMSHOP будет делать POST запрос с информацией о пользователе, и ожидать в ответ полную историю сканирований.

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

Пример

{
    "userId": "79991234567"
}

Ответ

В ответ ожидается структура данных в следующем формате

  • scans - список сканирований

    • id - идентификатор сканирования (может совпадать с code, если коды уникальны)

    • timestamp - таймштамп

    • code - код

    • status - статус (processing / approved / denied)

    • statusMessage - текстовое описание (опционально)

Пример

{
    "scans": [
        "id": "2cff9e9e-3d89-43de-98bf-b0d922233a62",
        "code": "YXNkYXNkIGpha2RzIGxha2RzYWE=",
        "timestamp": 1662660581,
        "status": "approved",
        "statusMessage": "Начислено 200 бонусов"
    ]
}

Асинхронное обновление статусов

Если на вашей стороне произошло обновление статуса сканирования (например начисление бонусов было одобрено), но необходимо сделать POST запрос на URL выданный продакт менеджеров в следующем формате

  • id - идентификатор сканирования (может совпадать с code, если коды уникальны)

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

  • timestamp - таймштамп

  • code - код

  • status - статус (processing / approved / denied)

  • statusMessage - текстовое описание (опционально)

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

{
        "id": "2cff9e9e-3d89-43de-98bf-b0d922233a62",
        "userId": "79991234567",
        "code": "YXNkYXNkIGpha2RzIGxha2RzYWE=",
        "timestamp": 1662660581,
        "status": "approved",
        "statusMessage": "Начислено 200 бонусов"
}

Ответ

Возможные HTTP статусы

  • 204 - успех

  • 400 - некорректный формат запроса

  • 401 / 403 - ошибка авторизации. уточните ключ и URL у продакт менеджера IMSHOP

  • 404 - не найдено сканирование или не найден пользователь

Last updated