Создание заказа на доставку


Создание заказа на доставку

/delivery/order

Для упрощения документации, запрос на создание заказа для всех транспортных компаний состоит из 2 частей: 

Параметр Тип Описание
key string Ключ доступа
action string Значение: create
cms string Название CMS, если заказ создаётся из модуля для CMS

Например: bitrix, wordpress, ...

Если вы не используете модуль для CMS, необходимо передавать "custom"

service string Служба доставки. Например: sdek

Доступно: sdek, yandex, ...

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

Тип организационно-правовой формы.

Варианты:

  • 1 - физическое лицо
  • 2 - ИП
  • 3 - ООО
  • 4 - ОАО
  • 5 - ЗАО
  • 6 - АО
  • 7 - ПАО
  • 8 - ФГУП
  • 9 - ГК
  • 10 - ГУП
  • ...
Все типы можно получить методом API «Получение списка организационно-правовых форм
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 Значение ставки НДС

Возможные варианты:
0, 5, 7, 10, 20, -1 (без НДС)

delivery array Данные доставки
delivery.type string Тип доставки

Возможные варианты:
door - до двери,
terminal - до пункта самовывоза/постамата.

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 Способ оплаты

Возможные варианты:
already_paid - заказ уже оплачен,
cash_on_receipt - наличными при получении,
card_on_receipt - картой при получении,
cashless - безналичный расчет

delivery.cost double Стоимость доставки, рубли.
delivery.vat_rate integer Значение ставки НДС для доставки

Возможные варианты:
0, 5, 7, 10, 20, -1 (без НДС)

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 Дополнительные услуги.

Можно получить дополнительным запросом.

Формат: код услуги-количество. Например:

"complement": {
    "INSURANCE":1, 
    "CARTON_BOX_20KG":1, 
    "BUBBLE_WRAP":1, 
    "SMS":1
}

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

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

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": "Загружен в ЛК перевозчика"
                }
            }
        }
    }
}