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


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

/delivery/calculation

Если вы используете первую версию нашего сервиса, ознакомьтесь с основными изменениями.

Параметр Описание
key Ключ доступа
to

Населённый пункт, куда необходимо доставить.

Может быть представлен как:

  • Код.
    Значение code, полученное посредством запросов /locality/search или /locality/geo.
  • Код ФИАС.
    Значение fias, может быть полученно посредством запросов /locality/search или /locality/geo, а также из иных источников (ФИАС-код можно узнать на сайте Федеральной Адресной Системы: https://fias.nalog.ru/ExtendedSearch).
    Например: 0c5b2444-70a0-4932-980c-b4dc0d3f02b5 .
  • Название (без учёта раскладки клавиатуры).
    Например: «москва», «vjcrdf», «Москва», «МОСКВА».
    Внимание! Т.к. может быть несколько населённых пунктов с одним названием, возможна ошибка.

weight Вес груза, кг.
service Код службы доставки.
Доступны значения: sdek, dpd, iml, kit, zde, ozon, pecom, baikal, delline, vozovoz, boxberry, energija, fivepost, pickpoint, sberlogistics, grastin, halva, magnit, custom-*** (своя служба, если настроена в личнам кабинете).
count Количество единиц груза. По умолчанию = 1.
price Стоимость груза. Необходимо для расчёта услучи страхования, а также для срабатывания модификаторов (если настроены в Личном кабинете).
dimensions Габариты груза в формате Д*Ш*В, сантиметры.
payment

Вариант оплаты.

Необходим для фильтрации ПВЗ (например: не все ПВЗ могут принимать наличные), а также для срабатывания модификаторов (если настроены в Личном кабинете).

Доступно:
card (карта)
cash (наличные)
cashless (безналичный расчёт)
prepay (специальный тип: предоплата)
upon_receipt (специальный тип: оплата при получении).

offers

Состав груза - JSON-массив товаров.

Для передачи состава заказа можно и нужно использовать именно этот параметр, при этом параметры weight, dimensions, num, price игнорируются.

Пример:

[{
     "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*30"
  }]
address Полный адрес доставки в формате: «Москва, Адмирала Макарова, 2с11». Необходимо указывать для ТК экспресс-доставки, в частности для Dostavista.
cache

Флаг использования кэша: принимает целое значение 1/0 или булево: true/false.

По умолчанию = true. Не используйте без необходимости.

Все результаты запросов кэшируются для того, чтобы посторные отдавать сразу, без запроса серверов ТК. Вы можете отключить использование кэша в ряде случаев, например в ходе тестирования.

all_comments

Полный список комментариев.

Значение = 1 вернёт комментарии в виде массива, = 2 - в виде html.

Вне зависимости от других указанных параметров в ответ будет добавлен массив comments->all со всеми комментариями, настроенными для данной слудбы доставки в Личном кабинете.

Параметры, отмеченные , - обязательны.

Специальные параметры

Параметр Описание
from

Переопределяет город-отправитель.

Вы можете изменить дефолтный город-отправитель, указав в данном параметре ФИАС-код нужного населённого пункта.

all_tariffs

Принимает целое значение 1/0 или булево: true/false; по умолчанию = false.

Параметр доступен только для Почта России, СДЭК, DPD при включённой опции «Разрешить выбор тарифа» в настройках соответствующей службы доставки в личном кабинете.

Добавляет в ответ массив с расчётом по всем доступным (в рамках данного запроса и настроек в личном кабинете) тарифам.

Внимание! Время расчёта может значительно увеличиться.

additionally

Переопределяет базовые настройки службы доставки.

Например, если требуется учитывать какой-то параметр не всегда, а в зависимости от какой-то логики на сайте.

Представляет собой JSON-массив, пример:

{"insurance":1, "cod":0, "pick_up":0}

Параметр Описание Поддерживаемые ТК
insuranceСтрахованиеСДЭК, ПЭК, Ozon, Boxberry, Baikal, Деловые Линии, Dostavista, Grastin, Vozovoz, Жилдорэкспедиция
pick_upЗабор груза от отправителяПЭК, Kit, Baikal, Деловые Линии, DPD, Vozovoz, Жилдорэкспедиция
danger_cargo Опасный груз СДЭК
sms SMS-уведомление СДЭК
thermal_mode Тепловой режим СДЭК
no_attachment_inspection Запрет осмотра вложения СДЭК
protective_packaging Защитная упаковка ПЭК
filling Пломбирование ПЭК, Kit
cod Наложенный платёж Boxberry, Сберлогистика
open_car_sender Растентовка при приёме груза ПЭК, Kit
open_car_receiver Растентовка при получении груза ПЭК, Kit
marking Маркировка груза Vozovoz
day_by_day Забор груза день в день ПЭК, Жилдорэкспедиция
off_hours Забор груза в фикс. время Жилдорэкспедиция
fragile Хрупкий груз Жилдорэкспедиция
transportation_documents Сопроводительные документы Baikal
return_documentsВозврат документовBaikal
package

Переопределяет базовые настройки упаковки службы доставки.

Например, если требуется учитывать определённый тип упаковки не всегда, а в зависимости от какой-то логики на сайте.

Внимание!
В настоящий момент при расчёте доставки количество каждого типа упаковки принимается равной 1 единице, т.к. фактическое количество может быть определено только по факту при сдаче груза в ТК.

Представляет собой строку с кодами услуг через запятую, пример:

palletCustomer,box2

Код Упаковка
СДЭК
CARTON_BOX_XSКоробка XS (0,5 кг 17х12х9 см)
CARTON_BOX_SКоробка S (2 кг 21х20х11 см)
CARTON_BOX_MКоробка M (5 кг 33х25х15 см)
CARTON_BOX_LКоробка L (12 кг 34х33х26 см)
CARTON_BOX_500GRКоробка (0,5 кг 17х12х10 см)
CARTON_BOX_1KGКоробка (1 кг 24х17х10 см)
CARTON_BOX_2KGКоробка (2 кг 34х24х10 см)
CARTON_BOX_3KGКоробка (3 кг 24х24х21 см)
CARTON_BOX_5KGКоробка (5 кг 40х24х21 см)
CARTON_BOX_10KGКоробка (10 кг 40х35х28 см)
CARTON_BOX_15KGКоробка (15 кг 60х35х29 см)
CARTON_BOX_20KGКоробка (20 кг 47х40х43 см)
CARTON_BOX_30KGКоробка (30 кг 69х39х42 см)
BUBBLE_WRAPВоздушно-пузырчатая пленка
WASTE_PAPERМакулатурная бумага
CARTON_FILLERПрессованный картон «филлер»
Байкал
25Жесткая упаковка
19Паллетирование
2797Паллетный борт
22Мешок 55*100 см
23Мешок 100*150 см
2820Пломбка
2770Европоддон
13ПРР в городе отправления
14ПРР в городе назначения
Деловые линии
0x838fc70baeb49b564426b45b1d216c15Деревянная обрешётка
0x8783b183e825d40d4eb5c21ef63fbbfbЖёсткий короб
0x951783203a254a05473c43733c20fe72Картонная коробка
0x9dd8901b0ecef10c11e8ed001199bf6eКомплекс «обрешётка + амортизация»
0x9dd8901b0ecef10c11e8ed001199bf6fСпец. упаковка для автостекол
0xbaa65b894f477a964d70a4d97ec280beПалетный борт (только до терминала-получателя)
0xa8b42ac5ec921a4d43c0b702c3f1c109Воздушно-пузырьковая плёнка
0xad22189d098fb9b84eec0043196370d6Мешок
0x9a7f11408f4957d7494570820fcf4549Дополнительная упаковка
0x9dd8901b0ecef10c11e8ed001199bf70Спец. упаковка для автозапчастей
0xadc8f9235b54d4d946e1f2a6972d5a68Амортизирующая упаковка
Kit
T001Жесткая доупаковка груза
T002Паллетирование (прозр. пленка)
T003Паллетирование (черн. пленка)
S089Упаковка в сборный паллетный борт
Vozovoz
palletCustomerПостановка на паллет
palletCollarПаллетный борт
hardPackageVolumeUODЖёсткая упаковка с разбором
hardPackageVolumeЖёсткая упаковка без разбора
palletizingExtraPackageVolumeПрозрачный стрейч
palletizingExtraBlackPackageVolumeЧёрный стрейч
palletizingBubbleFilmVolumeВоздушно-пузырьковая плёнка
palletizingCardboardVolumeКартон
box1Коробка 40×20×20 см
box2Коробка 40×40×20 см
box3Коробка 40×40×40 см
box4Коробка 60×20×20 см
bag1Мешок 55×105 см + пломба
bag2Мешок 70×120 см + пломба
safePackageУпаковка в сейф-пакет
Жилдорэкспедиция
BRDЕвроборт
DLUПГР и перенос по территории клиента
LATHОбрешетка
OVERSНегабаритный груз
SOVERSСупер негабаритный груз
terminas

Флаг показа списка ПВЗ: принимает целое значение 1/0 или булево: true/false; по умолчанию = true.

Используйте данный параметр, если не нужен список ПВЗ в ответе.

debug

Флаг режима отладки ПВЗ: принимает целое значение 1/0 или булево: true/false; по умолчанию = false.

Добавляет в ответ оргомный массив данных, которые могут пригодиться при отладке/тестировании.

curl --request POST 'https://api.esplc.ru/delivery/calculation' \
--header 'Content-Type: application/json' \
--data-raw '{ "key": "a2275ee6a7f268684fb553db39ff16b6", "to": "82239", "service": "sdek", "weight": "1" }'

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api.esplc.ru/delivery/calculation',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => ['key' => 'a2275ee6a73268684fb753db39ff16b6', 'to' => 'Москва', 'service' => 'sdek', 'weight' => 1],
]);

$response = curl_exec($curl);

curl_close($curl);

print_r(json_decode($response,1));

При успешном запросе значение http_status равно 200; в противном случае код ответа будет 4XX (например - 422).

Обязательно присутствуют в ответе данные: price и time, для соответствующих типов доставки.

В зависимости от выбранной службы доставки, может добавляться информация о применённом тарифе (tariff).

В зависимости от выбранной службы доставки, может добавляться детализация цены (price->detail).
Возможные значения детализации цены:
insurance - страхование
package - упаковка
notify - уведомление
filling - пломбирование
pick_up - забор груза
documents - перевозка/возврат документов
cod - услуга наложенного платежа
other - другое.

Если в Личном кабинете настроены комментарии, они также будут добавлены в ответ (comments для общих комментариев и comment для каждого типа доставки).

В случае срабатывания модификатора цены, в значение price->base будет помещено базовое значение цены, рассчитаное службой доставки. price->value будет содержать цену с учётом модификатора.

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

{
    "http_status": 200,
    "http_status_message": "",
    "data": {
        "terminal": {
            "tariff": {
                "code": 136,
                "name": "Посылка склад-склад, до 30 кг"
            },
            "comment": "Самовывоз",
            "price": {
                "value": 598,
                "unit": "рублей",
                "base": 581,
                "detail": {
                    "insurance": 365
                }
            },
            "time": {
                "value": 1,
                "unit": "день",
                "text": "завтра"
            }
        },
        "door": {
            "tariff": {
                "code": 137,
                "name": "Посылка склад-дверь, до 30 кг"
            },
            "comment": "Курьер",
            "price": {
                "value": 790,
                "unit": "рублей",
                "base": 767,
                "detail": {
                    "insurance": 365
                }
            },
            "time": {
                "value": 3,
                "unit": "день",
                "text": "6 сентября"
            }
        },
        "comments": {
            "common": "Общий комментарий"
        },
        "terminals": [
            {
                "service": "sdek",
                "image": "https://eshoplogistic.ru/images/api/small/sdek.svg",
                "code": "MSK223",
                "name": "Бескудниковский бульвар",
                "address": "Москва, Бескудниковский б-р, 6 корп.4",
                "phones": "+79295131674,+79295131674",
                "workTime": "Пн-Пт 10:00-20:00, Сб-Вс 10:00-18:00",
                "note": "От метро Верхние Лихоборы по Бескудниковскому бульвару, после д.6, корп.3 направо, далее д.6, корп.4 вход между 1 и 2 подъезд.",
                "lon": "37.56414",
                "lat": "55.85931",
                "surcharge": false,
                "is_postamat": false,
                "type": null
            },
            // ....
        ]
    }
}