Интеграция через API
Документация по взаимодействию с сервисом через API
Содержание
- 1 Описание метода добавления треков
- 2 Описание метода удаления треков
- 3 Описание метода запроса информации по трекам
- 4 Описание метода получения финансовой информации пользователя
- 5 Описание метода обновления данных заказа
- 6 Черный список
- 7 Примеры кода
- 8 Метод для получения информации об уведомлениях и их статусах
Описание метода добавления треков
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 цепочки информирования. используется для распределения трафика по разным цепочкам информирования. | да (может быть нулем) |
Почта России | 0 |
TopDelivery | 1 |
СПСР | 2 |
Boxberry | 3 |
PickPoint | 4 |
Shop-Logistics | 5 |
Деловые линии | 6 |
СДЭК | 7 |
DPD | 8 |
Экспресс.Ру | 9 |
ПЭК | 10 |
КСЭ | 11 |
Dimex | 12 |
УкрПочта | 13 |
Почта Казахстана | 15 |
Нова Пошта | 16 |
Наложенный платеж | 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
Запрос статистики выкупов и невыкупов
Пример запроса:
В запросе можно одновременно передавать телефон и 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 | Входящий параметр с номером телефона для поиска |
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
В запросе можно одновременно передавать телефон и 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 - ID пользователя (аккаунта). Можно посмотреть https://deliverycrm.ru/client/profile/index в профиле
- request_key - ключ запроса, формируется как sha1(user_id + все номера треков без разделителей + API ключ). Ключ API можно узнать https://deliverycrm.ru/client/profile/index в профиле.
Пример формирования ключа запроса. Если 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 запроса
Пример формирования 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