Интеграция через API

Материал из DELIVERYCRM WIKI
Перейти к навигации Перейти к поиску

Документация по взаимодействию с сервисом через API


Описание метода добавления треков

URL: https://apilr2.r-lab.biz/addtrack.ashx
Формат передачи данных: JSON
Метод: POST
Внимание! Если сервис не доступен, попробуйте повторить попытку запроса через 5 минут. Если проблема сохраняется, попробуйте резервный адрес http://api-r-lab-b.1gb.ru
В случае если сервис не доступен более 20 минут, обратитесь в нашу техническую поддержку.

Пример контейнера с данными запроса:

  {
  "trackingUserId":1,
  "trackingRequestKey":"8e093b01b18e3272a7d615704cc1502a",
  "testMode":false,
  "trackingData":[{
        "trackingUserClientPhone":"79160000000",
        "trackingUserClientTrack":"19527937484546",
        "trackingUserClientEmail":"support@r-lab.biz",
        "trackingUserClientName":"Дмитрий",
        "trackingUserClientItemCost":123.45,
        "sendToUserEmailFullTracking":false,
        "sendToAdminEmailFullTracking":false,
        "trackingUserClientOrderNumber":"4321",
        "trackingUserClientDescription":"",
        "trackingUserPaymentType":"0"
     },
     {"trackingUserClientPhone":"79150000000",
        "trackingUserClientTrack":"63010828068631",
        "trackingUserClientEmail":"support@r-lab.biz",
        "trackingUserClientName":"Василий",
        "trackingUserClientItemCost":623.12,
        "sendToUserEmailFullTracking":false,
        "sendToAdminEmailFullTracking":false,
        "trackingUserClientOrderNumber":"4331",
        "trackingUserClientDescription":"",
        "trackingUserClientDeliveryServiceId":0,
        "trackingUserPaymentType":"0"
     }]
   }
Описание свойств контейнера запроса:
Свойство Тип Описание Значение может быть пустым
trackingUserId integer id пользователя нет
trackingRequestKey string md5 hash запроса ( id пользователя :все номера треков без разделитей:ключ пользователя). Пример: 1:1952793748454663010828068631:3c6e0b8a9c15224a8228b9a98ca1531d нет
testMode boolean В тестовом режиме (true) трекинг номера не добавляются в базу, происходит только проверка запроса нет
trackingData JSON array Содержит массив с трекинг номерами и данными клиента нет
trackingUserClientPhone string Номер мобильного телефона клиента в федеральном формате. Пример: 79160000000. Если SMS отправлять не нужно, указывайте номер 79000000000 нет
trackingUserClientTrack string Трекинг номер почтового отправления нет
trackingUserClientEmail string E-Mail клиента (если значение пустое, оповещения на e-mail отправляться не будут) да
trackingUserClientName string Имя или ФИО клиента да
trackingUserClientItemCost decimal Стоимость товаров да (может быть нулем)
sendToAdminEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на e-mail администратора магазина (указанный при регистрации в https://strekoza.ai) будет отправлять письмо с информацией о статусе. нет
sendToUserEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на e-mail клиента магазина будет отправляться так же письмо с информацией о статусе. нет
trackingUserClientOrderNumber string Номер заказа (максимальная длина 40 символов) нет
trackingUserClientDescription string Любые другие данные, например название товара или название магазина (если через один аккаунт отправляются оповещения от разных магазинов). Максимальная длина 200 символов. нет
trackingUserClientDeliveryServiceId Integer ID службы доставки. Данный параметр определяет, к какой службе доставки отнести трек. нет
trackingUserPaymentType Integer Тип оплаты заказа - Предоплата/постоплата. С использованием данного параметра, можно разделять треки по типу оплаты, для разных схем информирования да (может быть нулем)
trackingUserLR3CampaignId Integer ID цепочки информирования. используется для распределения трафика по разным цепочкам информирования. да (может быть нулем)
Список значений trackingUserClientDeliveryServiceId (жирным выделены службы, поддерживаемые в настоящее время)
Почта России 0
TopDelivery 1
СПСР 2
Boxberry 3
PickPoint 4
Shop-Logistics 5
Деловые линии 6
СДЭК 7
DPD 8
Экспресс.Ру 9
ПЭК 10
КСЭ 11
Dimex 12
УкрПочта 13
Почта Казахстана 15
Нова Пошта 16
Список значений trackingUserPaymentType (варианты типа оплаты)
Наложенный платеж 1 Предоплата 2

Примеры ответов от сервера:

   {"resultState":0,"resultInfo":"Данные успешно добавлены в базу","resultData":null} 
{"resultState":1," resultInfo ":"Часть данных добавлены в базу, ошибок 2","resultData":null}
{"resultState":2," resultInfo ":"Некорректный ключ запроса в trackingRequestKey","resultData":null}
Свойство Тип Описание
resultState interger Код результата операции.

0 - данные успешно добавлены. 1 - данные частично добавлены (причина описана в resultInfo). 2 - ошибка, данные не добавлены (причина описана в resultInfo).

resultInfo string В этом свойстве возвращается описание ошибки или общая информация
resultData JSON array Может содержать массив с данными (например, информацию по запрошенным трекам)

Описание метода удаления треков

Метод: удаление треков из системы, максимум 100 треков в одном запроса. Используется в случае, если по треку приходят некорректные смс. Удаленные треки считаются оплаченными.

URL: https://apilr2.r-lab.biz/deltrack.ashx
Формат передачи данных: JSON
Метод: POST
Пример контейнера с данными запроса:

  {
"trackingUserId":1,
"trackingRequestKey":"8e093b01b18e3272a7d615704cc1502a",
"testMode":false,
"trackingData":[{
"trackingUserClientPhone":"",
"trackingUserClientTrack":"19527937484546",
"trackingUserClientEmail":"",
"trackingUserClientName":"",
"trackingUserClientItemCost":0,
"sendToUserEmailFullTracking":false,
"sendToAdminEmailFullTracking":false
},
{"trackingUserClientPhone":"",
"trackingUserClientTrack":"63010828068631",
"trackingUserClientEmail":"",
"trackingUserClientName":"",
"trackingUserClientItemCost":0,
"sendToUserEmailFullTracking":false,
"sendToAdminEmailFullTracking":false
""trackingUserClientDeliveryServiceId":0
}]
}

В данном методе, в контейнере должно быть заполнено только одно свойство trackingUserClientTrack, остальные поля можно оставить пустыми.

Описание свойств контейнера запроса:
Свойство Тип Описание Значение может быть пустым
trackingUserId integer id пользователя нет
trackingRequestKey string md5 hash запроса ( id пользователя :все номера треков без разделитей:ключ пользователя). Пример: 1:1952793748454663010828068631:3c6e0b8a9c15224a8228b9a98ca1531d нет
testMode boolean В тестовом режиме (true) трекинг номера не добавляются в базу, происходит только проверка запроса нет
trackingData JSON array Содержит массив с трекинг номерами и данными клиента нет
trackingUserClientPhone string Номер мобильного телефона клиента в федеральном формате. Пример: 79160000000. Если SMS отправлять не нужно, указывайте номер 79000000000 В данном методе да
trackingUserClientTrack string Трекинг номер почтового отправления нет
trackingUserClientEmail string E-Mail клиента (если значение пустое, оповещения на e-mail отправляться не будут) да
trackingUserClientName string Имя или ФИО клиента да
trackingUserClientItemCost decimal Стоимость товаров да (может быть нулем)
sendToAdminEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на e-mail администратора магазина (указанный при регистрации в https://strekoza.ai) будет отправлять письмо с информацией о статусе. нет
sendToUserEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на e-mail клиента магазина будет отправляться так же письмо с информацией о статусе. нет
trackingUserClientDeliveryServiceId Integer ID службы доставки. Данный параметр определяет, к какой службе доставки отнести трек. нет

Примеры ответов от сервера:

   {"resultState":0,"resultInfo":"Треки успешно удалены из базы","resultData":null}
{"resultState":1," resultInfo ":"Часть треков удалены, ошибок 1","resultData":null}
{"resultState":2," resultInfo ":"Некорректный ключ запроса в trackingRequestKey","resultData":null}
Свойство Тип Описание
resultState interger Код результата операции.

0 –треки удалены из системы 1 – запрос выполнен частично, см. resultInfo. 2 – ошибка в запросе (причина описана в resultInfo).

resultInfo string В этом свойстве возвращается описание ошибки или общая информация
resultData JSON array Массив с данными (информациz по запрошенным трекам)

Описание метода запроса информации по трекам

Метод: получение информации по трекинг-кодам (которые загружены в системе), максимум 100 треков в одном запроса. URL: https://apilr2.r-lab.biz/gettrackinfo.ashx
Формат передачи данных: JSON
Метод: POST
Пример контейнера с данными запроса:

   {
   "trackingUserId":1,
   "trackingRequestKey":"8e093b01b18e3272a7d615704cc1502a",
   "testMode":false,
   "trackingData":[{
   "trackingUserClientPhone":"",
   "trackingUserClientTrack":"19527937484546",
   "trackingUserClientEmail":"",
   "trackingUserClientName":"",
   "trackingUserClientItemCost":0,
   "sendToUserEmailFullTracking":false,
   "sendToAdminEmailFullTracking":false
   },
   {"trackingUserClientPhone":"",
   "trackingUserClientTrack":"63010828068631",
   "trackingUserClientEmail":"",
   "trackingUserClientName":"",
   "trackingUserClientItemCost":0,
   "sendToUserEmailFullTracking":false,
   "sendToAdminEmailFullTracking":false
   }]
   }

В данном методе, в контейнере должно быть заполнено только одно свойство trackingUserClientTrack, остальные поля можно оставить пустыми.

Описание свойств контейнера запроса:
Свойство Тип Описание Значение может быть пустым
trackingUserId integer id пользователя нет
trackingRequestKey string md5 hash запроса ( id пользователя :все номера треков без разделитей:ключ пользователя). Пример: 1:1952793748454663010828068631:3c6e0b8a9c15224a8228b9a98ca1531d нет
testMode boolean В тестовом режиме (true) трекинг номера не добавляются в базу, происходит только проверка запроса нет
trackingData JSON array Содержит массив с трекинг номерами и данными клиента нет
trackingUserClientPhone string Номер мобильного телефона клиента в федеральном формате. Пример: 79160000000. Если SMS отправлять не нужно, указывайте номер 79000000000 В данном методе да
trackingUserClientTrack string Трекинг номер почтового отправления нет
trackingUserClientEmail string E-Mail клиента (если значение пустое, оповещения на e-mail отправляться не будут) да
trackingUserClientName string Имя или ФИО клиента да
trackingUserClientItemCost decimal Стоимость товаров да (может быть нулем)
sendToAdminEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на e-mail администратора магазина (указанный при регистрации в https://strekoza.ai) будет отправлять письмо с информацией о статусе. нет
sendToUserEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на e-mail клиента магазина будет отправляться так же письмо с информацией о статусе. нет
trackingUserClientDeliveryServiceId Integer ID службы доставки. Данный параметр определяет, к какой службе доставки отнести трек. нет

Примеры ответов от сервера:

   {
   "resultState": 0,
   "resultInfo": "Запрос выполнен",
   "resultData": [
         {
           "trackNumber": "19191911187312",
           "trackInfo": "Приём отправления почтовым отделением",
           "trackMainStatus": 9,
           "trackCreateDate": "08.06.2018 14:22:55",
           "trackUpdateDate": "19.07.2018 03:33:53",
           "trackEventDate": "08.06.2018 18:45:57",
           "trackRecepDate": "08.06.2018 18:45:57",
           "trackExtraData": null,
           "trackAdditionalStatus": 0,
           "trackingUserClientPhone": "79000000000",
           "trackingUserClientEmail": "mikspark@yandex.ru",
           "trackingUserClientName": "",
           "trackingUserClientItemCost": 0,
           "trackingUserClientOrderNumber": "",
           "trackingWaitIndex": 0,
           "trackingDestinationIndex": 0,
           "trackingCurrentIndex": 0,
           "trackingWaitAddress": null,
           "trackingHistory": null,
           "trackingMailType": 0,
           "trackingUserFullClientName": null,
           "trackingWaitDate": null
          }
       ]
    }


   {"resultState":2," resultInfo ":"Некорректный ключ запроса в trackingRequestKey","resultData":null}


Описание свойств контейнера запроса:
Свойство Тип Описание
resultState interger Код результата операции.

0 – запрос выполнен, см. resultData. 2 – ошибка в запросе (причина описана в resultInfo).

resultInfo string В этом свойстве возвращается описание ошибки или общая информация
resultData JSON array Массив с данными (информация по запрошенным трекам)
trackCreateDate string Дата и время добавления трека в систему, формат dd.MM.yyyy HH:mm:ss
trackUpdateDate string Дата и время обновления статуса или информации по треку, формат dd.MM.yyyy HH:mm:ss. В случае если трек еще не обновлялся вернется значение null


Варианты значения в свойстве trackMainStatus (основной статус):
0 – отсутствует основной статус
1 - вручено
2 – ожидает в месте вручения
3 - возврат
4 – прием почтовым отделением (посылка в пути)
5 – экспорт в Россию
6 – импорт в Россию
7 – прием почтового отправления за пределами России
8 – посылка возможно в месте вручения (с момента последней сортировки прошло более 2х недель, или количество дней установленное в настройках)
9 – просрочено (отсутствуют статусы «Вручение» или «Истек срок хранения» более 35 дней, либо более 60 дней не обновляются статусы «Прием», «Сортировка»,больше 60 дней статусы отсутствуют).

Описание метода получения финансовой информации пользователя


URL: https://apilr2.r-lab.biz/getuserinfo.ashx
Формат передачи данных: JSON
Метод: POST
Пример контейнера с данными запроса:

   {
   "trackingUserId":1,
   "trackingRequestKey":"8e093b01b18e3272a7d615704cc1502a",
   "testMode":false,
   "trackingData":null
   }
Описание свойств контейнера запроса:
Свойство Тип Описание Значение может быть пустым
trackingUserId integrer id пользователя нет
trackingRequestKey string md5 hash запроса ( id пользователя :ключ пользователя). Пример: 1:3c6e0b8a9c15224a8228b9a98ca1531d нет

Примеры ответов от сервера:

   {
   "resultState":0,
   "resultInfo":"Запрос выполнен",
   "resultData": {
   "userExpireDate":"Бессрочный",
   "userBalance":60,
   "userExpired":false,
   "userBalanceUnlimited":false,
   "userDateUnlimited":true
   }
   }


или

   { "resultState":0, "resultInfo":"Запрос выполнен", "resultData":{ "userExpireDate":"13.04.2015", "userBalance":384, "userExpired":false, "userBalanceUnlimited":false, "userDateUnlimited":false } }
Описание свойств контейнера запроса:
Свойство Тип Описание
resultState interger Код результата операции.

0 – запрос выполнен, см. resultData. 2 – ошибка в запросе (причина описана в resultInfo).

resultInfo string В этом свойстве возвращается описание ошибки или общая информация.
resultData JSON object Финансовая информация пользователя
userExpireDate string Дата окончания тарифа. Если тариф бессрочный, вместо даты будет возвращаться "Бессрочный".
userBalance integer Текущий баланс треков. Если баланс неограниченный, то будет возвращаться 1.
userExpired boolean false – тариф не просрочен

true – тариф просрочен

userBalanceUnlimited boolean false – баланс не неограниченный

true – баланс неограниченный

userDateUnlimited boolean false – тариф не бессрочный

true – тариф бессрочный

Описание метода обновления данных заказа

URL: https://apilr2.r-lab.biz/updatetrack.ashx
Формат передачи данных: JSON
Метод: POST

Пример контейнера с данными запроса:

   {
   "trackingUserId":1,
   "trackingRequestKey":"8e093b01b18e3272a7d615704cc1502a",
   "testMode":false,
   "trackingData":[{
   "trackingUserClientPhone":"79160000000",
   "trackingUserClientTrack":"19527937484546",
   "trackingUserClientEmail":"support@r-lab.biz",
   "trackingUserClientName":"Дмитрий",
   "trackingUserClientItemCost":123.45,
   "sendToUserEmailFullTracking":false,
   "sendToAdminEmailFullTracking":false,
   "trackingUserClientOrderNumber":"4321",
   "trackingUserClientDescription":""
   },
   {"trackingUserClientPhone":"79150000000",
   "trackingUserClientTrack":"63010828068631",
   "trackingUserClientEmail":"support@r-lab.biz",
   "trackingUserClientName":"Василий",
   "trackingUserClientItemCost":623.12,
   "sendToUserEmailFullTracking":false,
   "sendToAdminEmailFullTracking":false,
   "trackingUserClientOrderNumber":"4331",
   "trackingUserClientDescription":""
   }]
   }
Описание свойств контейнера запроса:
Свойство Тип Описание Значение может быть пустым
trackingUserId integer id пользователя нет
trackingRequestKey string md5 hash запроса ( id пользователя :все номера треков без разделитей:ключ пользователя). Пример: 1:1952793748454663010828068631:3c6e0b8a9c15224a8228b9a98ca1531d нет
testMode boolean В тестовом режиме (true) трекинг номера не добавляются в базу, происходит только проверка запроса нет
trackingData JSON array Содержит массив с трекинг номерами и данными клиента нет
trackingUserClientPhone string Номер мобильного телефона клиента в федеральном формате. Пример: 79160000000. Если SMS отправлять не нужно, указывайте номер 79000000000 Да (если значение пустое, данные в базе не изменяться)
trackingUserClientTrack string Трекинг номер почтового отправления нет
trackingUserClientEmail string E-Mail клиента (если значение пустое, оповещения на E-Mail отправляться не будут) Да (если значение пустое, данные в базе не изменяться)
trackingUserClientName string Имя или ФИО клиента Да (если значение пустое, данные в базе не изменяться)
trackingUserClientItemCost decimal Стоимость товаров Да (если значение = 0, то данные в базе не изменяться)
sendToAdminEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на E-Mail администратора магазина (указанный при регистрации в https://strekoza.ai) будет отправлять письмо с информацией о статусе. нет
sendToUserEmailFullTracking boolean Если значение свойства true, то при каждом изменении статуса почтового отправления на E-Mail клиента магазина будет отправляться так же письмо с информацией о статусе. нет
trackingUserClientOrderNumber string Номер заказа (максимальная дли 40 символов) Да (если значение пустое, данные в базе не изменяться)
trackingUserClientDescription string Любые другие данные, например название товара или название магазина (если через один аккаунт отправляются оповещения от разных магазинов). Максимальная длина 200 символов. Да (если значение пустое, данные в базе не изменяться)

Внимание! Если нужно изменить только одно (или несколько) значений в базе, то не нужные свойства контейнера можно оставить пустыми. Например, если у трека нужно только изменить имя клиента, запрос будет выглядеть так:

  {
  "trackingUserId":1,
  "trackingRequestKey":"8e093b01b18e3272a7d615704cc1502a",
  "testMode":false,
  "trackingData":[{
  "trackingUserClientPhone":"",
  "trackingUserClientTrack":"19527937484546"
  "trackingUserClientEmail":""
  "trackingUserClientName":"Николай",
  "trackingUserClientItemCost":0,
  "sendToUserEmailFullTracking":false,
  "sendToAdminEmailFullTracking":false,
  "trackingUserClientOrderNumber":""
  }]
  }

Примеры ответов от сервера:

   {"resultState":0,"resultInfo":" Данные успешно добавлены в очередь на обновление","resultData":null}
{"resultState":1," resultInfo ":" Часть данных обновлена в базе, ошибок 2","resultData":null}
{"resultState":2," resultInfo ":"Некорректный ключ запроса в trackingRequestKey","resultData":null}
Описание свойств контейнера запроса:
Свойство Тип Описание
resultState interger Код результата операции.

0 - данные добавлены в очередь на обновление. 1 - данные частично обновлены (причина описана в resultInfo). 2 - ошибка, данные не обновлены (причина описана в resultInfo).

resultInfo string В этом свойстве возвращается описание ошибки или общая информация
resultData JSON array Может содержать массив с данными (например, информацию по запрошенным трекам)

Черный список

URL: https://api.deliverycrm.ru/v1/black/check
Формат ответа: JSON
Метод: GET
Запрос статистики выкупов и невыкупов

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

https://api.deliverycrm.ru/v1/black/check?user_id=7847&request_key=bccb7d5ba3290d7ac8b5f14b1ced12d93e2c0c50&phone=79001234567

В запросе можно одновременно передавать телефон и e-mail, в этом случае поиск будет осуществляться по двум входным значениям, дубликаты из результата поиска будут удалены.

Примеры ответов от сервиса:

[{"blackPhone":"79000000000","blackEmail":"","blackKarma":9.0,"blackComment":"возвратов 9, неизвестно 0, вручено 60","blackCancelCount":9,"blackExpiredCount":0,"blackDoneCount":60,"history":null}]

[{"blackPhone":"","blackEmail":"test2@test.ru","blackKarma":0.0,"blackComment":"не найден о записей","blackCancelCount":0,"blackExpiredCount":0,"blackDoneCount":60,"history":null}]

[{"blackPhone":null,"blackEmail":null,"blackKarma":-2.0,"blackComment":"Ошибка: Введите телефон или e-mail" ,"blackCancelCount":0,"blackExpiredCount":0,"blackDoneCount":60,"history":null}]



Описание свойств контейнера запроса:
Свойство Тип Описание
user_id integer Id пользователя
request_key string Sha1 hash запроса (id пользователя:ключ пользователя:телефон:email)
phone string Входящий параметр с номером телефона для поиска
email string Входящий параметр с e-mail адресом для поиска
blackKarma decimal будущих версиях сервиса будет возвращаться рассчитанный коэффициент доверия к покупателю). Возможные коды ошибок: -1 – ничего не найдено -2 – введите телефон или e-mail -3 – произошла ошибка за сервере (повторить запрос позже)
blackComment string Комментарий
blackCancelCount Integer Количество найденных заказов, которые по нашим данным, не забрал покупатель
blackExpiredCount integer Количество найденных заказов, которые по нашим данным, возможно, не забрал покупатель. Например, после 35-40 дней с момента прибытия статус посылки не меняется на Вручение» или «Возврат», т.е. судьба заказа неизвестна, в большинстве случаев это «Возврат».
blackDoneCount integer Количество выкупов (прошедших через сервис https://strekoza.ai).


Метод для получения истории заказов прошедших через ОП

https://black.r-lab.biz/api/BlackList/GetWhiteBlackHistoryInfo

Примеры:

https://black.r-lab.biz/api/BlackList/GetWhiteBlackHistoryInfo?blackPhone=79000000000

https://black.r-lab.biz/api/BlackList/GetWhiteBlackHistoryInfo?blackPhone=&blackEmail=test@test.ru

https://black.r-lab.biz/api/BlackList/GetWhiteBlackHistoryInfo?blackPhone=79000000000&blackEmail=test@test.ru


В запросе можно одновременно передавать телефон и e-mail, в этом случае поиск будет осуществляться по двум входным значениям, дубликаты из результата поиска будут удалены.


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

[

  {
     "blackPhone":"79000000000",
     "blackEmail":"",
     "blackKarma":6.0,
     "blackComment":"возвратов 1, неизвестно 5",
     "blackCancelCount":1,
     "blackExpiredCount":5,
     "blackDoneCount":0,
     "blackTotalShopOrderCost":95520
     "history":[
        {
           "bwEventDate":"2015-08-21T03:14:20",
           "bwType":3,
           "bwShopCategoryId":19,
           "bwShopOrderCost":0,
        },
        {
           "bwEventDate":"2017-09-09T07:49:59",
           "bwType":2,
           "bwShopCategoryId":9,
           "bwShopOrderCost":1452,
        },
        {
           "bwEventDate":"2015-08-21T03:14:20",
           "bwType":3,
           "bwShopCategoryId":19,
           "bwShopOrderCost":1220,
        },
        {
           "bwEventDate":"2015-12-26T06:12:45",
           "bwType":3,
           "bwShopCategoryId":23,
           "bwShopOrderCost":0,
        },
        {
           "bwEventDate":"2015-10-03T03:05:47",
           "bwType":3,
           "bwShopCategoryId":23,
           "bwShopOrderCost":0,
        },
        {
           "bwEventDate":"2017-09-20T07:00:27",
           "bwType":3,
           "bwShopCategoryId":9,
           "bwShopOrderCost":2410,
        }
     ]
  }

]

  • blackCancelCount - Количество найденных заказов, которые по нашим данным, не забрал покупатель
  • blackExpiredCount - Количество найденных заказов, которые по нашим данным, возможно, не забрал покупатель. Например, после 35-40 дней с момента прибытия статус посылки не меняется на «Вручение» или «Возврат», т.е. судьба заказа неизвестна, в большинстве случаев это «Возврат».
  • blackDoneCount - Количество найденных заказов, которые забрал покупатель (заказы только прошедшие через наш сервис)
  • bwEventDate - Дата события (вручение, возврат или когда статус трека перешел в финальное состояние)
  • bwType - возможные значения:

1 - вручение 2 - возврат 3 - просрочено (неизвестно)

bwShopCategoryId - категория магазина где был сделан заказ, возможные значения:

1 - Авто (запчасти,аксессуары и т.д.) 2 - Товары для животных 3 - Бытовая техника 4 - Дом и дача 5 - Досуг и развлечения 6 - Интим-товары 7 - Компьютеры 8 - Оборудование 9 - Одежда, обувь и аксессуары 10 - Подарки и цветы 11 - Продукты 12 - Спорт и отдых 13 - Товары для здоровья 14 - Услуги 15 - Электроника 16 - Книги и журналы 17 - CPA 18 - Табачные изделия,электронные сигареты и т.д. 19 - Парфюмерия и косметика 20 - TV-Shop 21 - Товары для детей 22 - Универсальный (торгуем всем) 23 - Другое 24 - Ювелирные украшения и т.д.

Примеры кода

    /**
    * Class RlabTrack
    */
   class RlabTrack
   {
       /**
        * @var
        */
       protected $user_id;
       /**
        * @var
        */
       protected $api_key;
       /**
        * @var bool
        */
       protected $test_mode;
       /**
        * @var array
        */
       protected $tracks = array();
       /**
        * @var array
        */
       protected $track_ids = array();
       /**
        * RlabTrack constructor.
        * @param $user_id
        * @param $api_key
        * @param bool $testMode
        */
       public function __construct($user_id, $api_key, $testMode = false)
       {
           $this->user_id = $user_id;
           $this->api_key = $api_key;
           $this->test_mode = $testMode;
       }
       /**
        * @param $telephone
        * @param $track
        * @param $email
        * @param $name
        * @param int $itemCost
        * @param string $order_number
        * @param bool $userFullTracking
        * @param bool $adminFullTracking
        */
       public function addTrack($telephone, $track, $email, $name, $itemCost = 0, $order_number = , $userFullTracking = false, $adminFullTracking = false)
       {
           $this->track_ids[] = $track;
           $this->tracks[] = array(
               "trackingUserClientPhone" => strval(preg_replace("/[^\d]/isu", , $telephone)),
               "trackingUserClientTrack" => strval($track),
               "trackingUserClientEmail" => strval($email),
               "trackingUserClientName" => strval($name),
               "trackingUserClientItemCost" => (int)$itemCost,
               "trackingUserClientOrderNumer" => strval($order_number),
               "sendToUserEmailFullTracking" => (bool)$userFullTracking,
               "sendToAdminEmailFullTracking" => (bool)$adminFullTracking,
           );
       }
       /**
        * @return mixed
        */
       public function send()
       {
           $postfields = array(
               "trackingUserId" => $this->user_id,
               "trackingRequestKey" => md5($this->user_id . ':' . implode(, $this->track_ids) . ':' . $this->api_key),
               "testMode" => $this->test_mode,
               "trackingData" => $this->tracks,
           );
           $curl = curl_init('http://apilr2.r-lab.biz/addtrack.ashx');
           curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
           curl_setopt($curl, CURLOPT_POST, true);
           curl_setopt($curl, CURLOPT_HTTPHEADER, array(
               "Content-Type: text/plain; charset=utf-8",
           ));
           curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($postfields, JSON_UNESCAPED_UNICODE));
           $result = curl_exec($curl);
           curl_close($curl);
           return @json_decode($result);
       }
       /**
        *
        */
       public function clear()
       {
           $this->tracks = array();
       }
   }


Метод для получения информации об уведомлениях и их статусах

URL: https://api.deliverycrm.ru/v1/track/history Метод: GET

Параметры:

Пример формирования ключа запроса. Если user_id = 999999, а API ключ = 07dbd136d760e6be8fde6a2238992831, и вы хотите узнать информацию по двум трекам 18112831338669 и BZXH10758710, то ключ получаем следующим образом:

sha1(999999 + 18112831338669 + BZXH10758710 + 07dbd136d760e6be8fde6a2238992831) = b3c6236d57025ee7d37584059685b08cece8f3f9

  • tracks - номера почтовых отправлений (треки).

Массив вида

'tracks' => [
    ['track' => '18112831338669'], // service_id по умолчанию = 14 (Почта России)
    ['track' => 'BZXH10758710', 'service_id' => 3], // service_id = 3 (BoxBerry)
]

service_id не обязательный параметр, по умолчанию 14 (Почта России)

Получаем строку вида tracks%5B0%5D%5Btrack%5D=18112831338669&tracks%5B1%5D%5Btrack%5D=BZXH10758710&tracks%5B1%5D%5Bservice_id%5D=3 и полный url запроса

https://api.deliverycrm.ru/v1/track/history?user_id=999999&request_key=b3c6236d57025ee7d37584059685b08cece8f3f9&tracks%5B0%5D%5Btrack%5D=18112831338669&tracks%5B1%5D%5Btrack%5D=BZXH10758710&tracks%5B1%5D%5Bservice_id%5D=3

Пример формирования url на php

<?php

$tracks = [
    ['track' => '18112831338669'], // service_id по умолчанию = 14 (Почта Россиии)
    ['track' => 'BZXH10758710', 'service_id' => 3], // service_id = 3 (BoxBerry)
];

$userId = 999999;
$apiKey = '07dbd136d760e6be8fde6a2238992831';

$requestKey = sha1($userId . implode('', array_column($tracks, 'track')) . $apiKey);

$query = [
    'user_id' => $userId,
    'request_key' => $requestKey,
    'tracks' => $tracks
];

$url = 'https://api.deliverycrm.ru/v1/track/history?' . http_build_query($query);

Пример ответа (JSON-формат):

[
    'errors' => [
        'tracks' => [
            0 => 'Track at index \"0\" field \"track\" is required.'
        ]
    ]
    'success' => true
    'data' => [
        0 => [
            'track' => '504655'
            'price' => 0
            'total_price' => null
            'created_at' => '2016-05-18 16:10:02'
            'result' => 1
            'status_history' => [
                0 => [
                    'date' => '2016-05-18 11:38:00'
                    'status' => 'Доставлен'
                    'status_id' => 4501
                ]
            ]
            'sms' => [
                0 => [
                    'message' => 'Посылка 504655 из TopDelivery готова!'
                    'segments' => 0
                    'internal_status' => 0
                    'sent_at' => '2016-05-20 10:00:00'
                    'price' => 0
                ]
            ]
            'viber => [
                0 => [
                    'message' => 'Посылка 504655 из TopDelivery готова!'
                    'internal_status' => 999
                    'sent_at' => '2016-05-20 10:00:00'
                    'price' => 0
                ]
            ]
            'call' => [
                0 => [
                    'message' => 'Посылка 504655 из TopDelivery готова!'
                    'internal_status' => -1
                    'call_at' => '2016-05-20 10:00:00'
                    'price' => 0
                ]
            ]
            'email' => [
                0 => [
                    'theme' => 'Посылка 504655 из TopDelivery готова!'
                    'message' => 'Посылка 504655 из TopDelivery готова!'
                    'sent_at' => '2016-05-20 10:00:00'
                    'price' => 0
                ]
            ]
        ]
    ]
]

Расшифровка поля result

  • STATE_FINISHED_SUCCESS = 1;
  • STATE_IN_PROCESS = 2;
  • STATE_FINISHED_UNKNOWN = 4;
  • STATE_FINISHED_UNSUCCESSFUL = 5;


Расшифровка поля service_id

  • TOP_DELIVERY = 1
  • SPSR = 2
  • BOXBERRY = 3
  • PICKPOINT = 4
  • SHOPLOGISTICS = 5
  • BUSINESSLINES = 6
  • SDEK = 7
  • DPD = 8
  • EXPRESS = 9
  • PEK = 10
  • CSE = 11
  • DIMEX = 12
  • RUSSIA_POST = 14
  • UKRPOST = 13
  • KZPOST = 15