Создание заказа на доставку
/delivery/order
Для упрощения документации, запрос на создание заказа для всех транспортных компаний состоит из 2 частей:
| Параметр | Тип | Описание |
|---|---|---|
| key | string | Ключ доступа |
| action | string | Значение: create |
| cms | string |
Название CMS, если заказ создаётся из модуля для CMS
Например: bitrix, wordpress, ... Если вы не используете модуль для CMS, необходимо передавать "custom" |
| service | string |
Служба доставки. Например: sdek
Доступно: |
| order | array | Данные заказа |
| order.id | string | Идентификатор заказа на сайте. |
| order.comment | string | Комментарий |
| sender | array | Данные отправителя |
| sender.name | string | Имя |
| sender.phone | string | Телефон |
| sender.company | string | Название компании |
| sender.email | string | Электронная почта |
| receiver | array | Данные получателя |
| receiver.name | string | Имя |
| receiver.phone | string | Телефон |
| receiver.email | string | Адрес электронной почты получателя |
| receiver.identity.type | integer |
Тип организационно-правовой формы. Варианты:
|
| receiver.identity.passport_series | integer |
Серия документа для физического лица |
| receiver.identity.passport_number | integer |
Номер документа для физического лица |
| receiver.identity.passport_date_of_issue | string |
Дата выдачи паспорта для физического лица |
| receiver.identity.passport_date_of_birth | string |
Дата рождения для физического лица |
| receiver.identity.passport_organization | string |
Орган выдачи паспорта для физического лица |
| receiver.requisites.inn | integer |
ИНН для юридического лица |
| receiver.requisites.kpp | integer |
КПП для юридического лица |
| places | array | Массив грузовых мест. Грузовые места могут быть как отдельными товарами, так и сразу упаковками; в зависимости от того, как именно отправляется заказ. Если вы отправляете заказы в своих коробках, то можно указывать именно сами коробки, без разбивки на отдельные товары. Каждое место должно содержать указанные ниже параметры. |
| places[].article | string | Идентификатор товара / груза. |
| places[].name | string | Название |
| places[].count | integer | Количество |
| places[].price | double | Цена, включая НДС |
| places[].declared_price | double |
Объявленная цена, включая НДС.
Используется, если необходимо разделить стоимость товара от объявленной стоимости товара. |
| places[].weight | double | Вес, в кг. |
| places[].dimensions | string | Габариты. Формат: строка вида «Д*Ш*В», в сантиметрах. Например: 15*25*10 . |
| places[].vat_rate | integer | Значение ставки НДС Возможные варианты: |
| delivery | array | Данные доставки |
| delivery.type | string | Тип доставки
Возможные варианты: |
| delivery.location_from | array | Параметры отправки груза |
| delivery.location_from.pick_up | boolean | Забор груза от отправителя |
| delivery.location_from.terminal | boolean |
Идентификатор пункта приёма груза
Обязательно, если delivery.location_from.pick_up === false Можно узнать у менеджера транспортной компании или определить в личном кабинете eShopLogistic на странице настройки транспортной компании:
Если указан в кабинете eShopLogistic, то в запросе его можно не передавать; но при необходимости можно передать значение отличное от указанного в кабинете - в этом случае будет использовано именно значение из запроса. |
| delivery.location_from.address | array |
Адрес забора груза
Обязательно (кроме Яндекс.Доставка), если delivery.location_from.pick_up === true |
| delivery.location_from.address.region | string | Регион. Например: Московская область |
| delivery.location_from.address.city | string | Населённый пункт |
| delivery.location_from.address.street | string | Улица |
| delivery.location_from.address.house | string | Номер строения |
| delivery.location_from.address.room | string | Квартира / офис / помещение |
| delivery.payment | string | Способ оплаты
Возможные варианты: |
| delivery.cost | double | Стоимость доставки, рубли. |
| delivery.vat_rate | integer | Значение ставки НДС для доставки Возможные варианты: |
| delivery.location_to | array | Адрес получателя груза |
| delivery.location_to.terminal | string |
Идентификатор пункта самовывоза/постамата
Обязательно, если тип заказа - до пункта самовывоза/постамата. |
| delivery.location_to.address | array |
Адрес доставки
Обязательно, если тип заказа - до двери. Должен содержать указанные ниже параметры. |
| delivery.location_to.address.country | string | Код страны. Варианты: RU, UZ, AZ, KZ, AB, TM, BY, UA, TJ, KG, AM, MD |
| delivery.location_to.address.region | string | Регион. Например: Московская область |
| delivery.location_to.address.city | string | Населённый пункт |
| delivery.location_to.address.street | string | Улица |
| delivery.location_to.address.house | string | Номер строения |
| delivery.location_to.address.room | string | Квартира / офис / помещение |
| complement | array |
Дополнительные услуги. Можно получить дополнительным запросом. Формат: код услуги-количество. Например:
|
Параметры, отмеченные , - обязательны.
Параметры, отмеченные , - обязательны в зависимости от других параметров.
curl --request POST 'https://api.esplc.ru/delivery/order' \
--header 'Content-Type: application/json' \
--data-raw '{ "key": "a2275ee6a7f268682fb553db39ff16d6", "action": "create" }'
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.esplc.ru/delivery/order',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => ['key' => 'a22752e6a73238684fb753db39ff16b6', 'action' => 'create'],
]);
$response = curl_exec($curl);
curl_close($curl);
print_r(json_decode($response,1));
При успешном запросе значение http_status будет равно 200; в ответе будет массив order, содержащий идентификатор созданного заказа.
В массиве order также могут содержаться другие необязательные данные.
В случае неудачи, код ответа будет 4XX (например - 422); в ответе будет массив errors, содержащий описание ошибок.
{
"http_status": 200,
"http_status_message": "",
"data": {
"order": {
"id": "72753031-a860-4044-95c7-81f9735e2678",
"state": {
"status": {
"code": "created",
"description": "Загружен в ЛК перевозчика"
}
}
}
}
}