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

Перед подключением необходимо предать вашему продакт менеджеру в 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