Designed with by Xiaoying Riley

API

URL: https://api.eshoplogistic.ru/api/

Method: POST

Формат ответа (JSON):
    {
    "success": true,
    "status": 200,
    "msg": "",
    "data": {
        ...
    }
}

С каждым запросом обязательно передаётся параметр key со значением api-ключа соответствующего домена.

Ключ API для сайта

Ключ api для каждого домена указан на странице настройки сайтов: https://eshoplogistic.ru/domains.

Внимание

Сохраняйте api-ключи в тайне.

Методы

Данные аккаунта / информация по сайту

site

Например: https://api.eshoplogistic.ru/api/site

В ответе содержится информация:

  • Текущее состояние аккаунта: баланс, количество дней до блокировки
    blocked, balance, paid_days
  • Список доступных служб доставки с параметрами: код города-отправителя, символьный ключ, ссылка на логотип
    services
  • Настройки сайта: валюта, служба доставки по умолчанию, город-отправитель
    settings

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

Этот запрос должен быть выполнен самым первым, т.к. предоставляет данные о доступных службах и коде города-отправителя для каждой службы.
Значение параметров services[service][city_code] является обязательным параметром при запросе стоимости и сроков доставки для соответствующей службы доставки (параметр from метода delivery/[service]).

Если вы не меняете город-отправитель в настройках сайта, то можно сделать этот запрос только 1 раз и затем сохранить параметры служб доставки для дальнейшего использования.

Инициализация служб

init

Например: https://api.eshoplogistic.ru/api/init

Предоставляет оперативную информацию об активных службах, связанных с ними способах доставки и комментариях.

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

Этот запрос необходимо выполнять в качестве инициализации перед получением данных по конкретным службам.

Поиск населённых пунктов для доставки

search

Например: https://api.eshoplogistic.ru/api/search

Для России база данных населённых пунктов содержит более 196 000 значений, кроме самых мелких образований (садовые товарищества и т.п.).

Доступные параметры:

  • target название города / КЛАДР / ФИАС

При использовании в качестве значения названия города, параметр должен содержать не менее 3 символов. Не зависит от раскладки клавиатуры и регистра символов.
Т.е. «москва» = «vjcrdf» = «МоскВ» .

При использовании в качестве значения кода КЛАДР или ФИАС, должно быть указано точное значение.

В ответе содержится информация:

  • Список найденных городов с информацией по службам доставки, которые могут доставить груз в данный город.
    services - массив вида [«символьный код службы» => «код города для данной службы»] ( используется как обязательный параметр to метода delivery/[service]).

Лимит количества результатов поиска - 10.

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

Внимание

Запрос на поиск города нужен только один для всех служб доставки, т.к. он возвращает идентификаторы города назначения сразу для всех служб.
Не нужно дублировать запрос поиска города для каждой службы отдельно.

Внимание

Для удобства из результатов поиска удаляются населённые пункты, куда не производит доставки ни одна из включённых в личном кабинете служб доставки.

Расчёт стоимости и сроков доставки

delivery/[service] , где
[service] - символьный код службы доставки.

Например:
https://api.eshoplogistic.ru/api/delivery/sdek
https://api.eshoplogistic.ru/api/delivery/delline
...

Доступные параметры

Основные:

  • from - (обязательно) код города-отправителя.

    Внимание

    На момент отправки данного запроса у вас уже есть параметр from (получен ранее с помощью метода site). Не нужно снова получать его с помощью поиска по базе населённых пунктов.
  • to - (обязательно) код города-получателя.

    Внимание

    На момент отправки данного запроса у вас уже есть параметр to (получен ранее с помощью метода search). Не нужно снова получать его с помощью поиска по базе населённых пунктов.
  • weight - (обязательно, если не используется offers) вес, кг

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

  • dimensions - габариты груза в формате Д*Ш*В, сантиметры
  • num - количество единиц груза
  • price - стоимость единицы груза, рубли
  • payment - вариант оплаты (доступно: card, cash, cashless, prepay)

Для передачи состава заказа можно использовать специальный параметр offers - JSON-массив товаров заказа.
В случае, если используется offers, все параметры, кроме from, to и payment игнорируются.

Формат offers (JSON):
    
  [{
     "article":"1",
     "name":"Подушка",
     "count":2,
     "price":150,
     "weight":0.3,
     "dimensions":"20*20*10"
  }, {
      "article":"2",
      "name":"Маска",
      "count":1,
      "price":50,
      "weight":0.2,
      "dimensions":"10*10*3"
  }, {
      "article":"3",
      "name":"Беруши",
      "count":2,
      "price":30,
      "weight":0.1,
      "dimensions":"5*5*5"
  }]
  

В ответе содержится информация:

  • Стоимость и срок доставки до адреса (курьер), door;
  • Стоимость и срок доставки до пункта самовывоза, terminal;
  • Список пунктов самовывоза в данного населённом пунктке, terminals.

К ответу можно добавить полный список комментариев с помощью параметра all_comments: значение 1 - вернёт комментарии в виде массива, 2 - в виде html.

Не пустое значение base_price содержит стоимость доставки, непосредственно отданную службой доставки и означает, что к стоимости были применены корректирующие правила в соответствии с настройками службы.

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

Поиск населённого пункта по IP-адресу (геопозиционирование)

geo

Например: https://api.eshoplogistic.ru/api/geo

Доступные параметры:

  • ip IP-адрес

В случае успешного определения населённого пункта, будет возвращён ответ, аналогичный методу search.

Все доступные варианты доставки

info

Например: https://api.eshoplogistic.ru/api/info

Полный список всех доступных способов доставки.

Все варианты доставки одним запросом

delevery/all

Например: https://api.eshoplogistic.ru/api/delevery/all

Внимание

Данный метод не рекомендуется использовать т.к. данные при таком запросе не кэшируются и время на обработку запроса будет определяться временем ответа самой медленной из запрашиваемых служб.

Получить сразу все данные по всем доступным вариантам доставки.

Доступные параметры:

  • from fias-код города-отправителя
  • to fias-код города-получателя
  • * остальные параметры, аналогично как для запросов api/delevery/[service]

Ошибки

В случае ошибки статус ответа сервера равен 400.

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

Примеры кода

Для тестирования запросов удобно использовать Postman .

PHP / CURL


    $data = [
        'key' => 'ваш api-ключ',
        'from' => 44,
        'to' => 430,
        'weight' => 2
    ];      

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, 'https://api.eshoplogistic.ru/api/delivery/sdek');
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    $result = curl_exec($curl); 
    curl_close($curl); 

    print_r(json_decode($result,1));
               

Пример использования

Схема варианта использования api в корзине на вашем сайте

Исходный файл схемы в формате draw.io

Особенности

  • Dostavista
    В отличии от других служб доставки, Dostavista требует указания в параметре to полного адреса доставки вплоть до номера дома.
    Если запросить данные без адреса - ответ также будет получен, но в таком случае данные нельзя будет считать верными.