Данные о доставке в API
Скопировать ссылку на статью
Скопировано

Общая структура данных доставки

Данные интеграционной доставки доступны для v3, v4, v5 версий API.

В методах /api/v*/orders и /api/v*/orders/history за данные по доставке отвечает поле orders[][delivery], в остальных методах /api/v*/orders* - поле order[delivery].

Структура сообщения для методов /api/v*/orders/get, /api/v*/orders, /api/v*/orders/history:

    "order": {
         //...
        "delivery": {
            "code": "delivery-type-code",     // Символьный код типа доставки
            "integrationCode": "sdek",        // Код интеграционной доставки, связанной с типом доставки
            "data": {                         // Дополнительные данные для интеграционной доставки
                                              //     Данные отличаются в зависимости 
                                              //     от указанной интеграционной доставки
            },
            "service": {                      // Служба доставки
                "name": "Delivery Service 1",
                "code": "delivery-service-1"
            },
            "cost": 500,                      // Стоимость доставки
            "date": "2014-10-26",             // Дата доставки
            "address": {                      // Адрес доставки
                // ...
            }
        }
    }
}

Структура сообщений для методов /api/v*/orders/create, /api/v*/orders/edit, /api/v*/orders/upload различается, в зависимости от типа доставки — является она интеграционной или нет. Для интеграционной доставки дополнительно указывается поле data, в котором содержатся дополнительные данные для интеграционной доставки. Подробнее с описанием этого поля для каждого типа интеграционной доставки вы можете ознакомится в разделе Данные интеграционных доставок.

Пример запроса на создание/редактирование заказа с не интеграционной доставкой:

    "order": {
         //...
        "delivery": {
            "code": "delivery-type-code",     
            "service": {                      
                "name": "Delivery Service 1",
                "code": "delivery-service-1"
            },
            "cost": 500,                      
            "date": "2014-10-26",             
            "address": {                      
                // ...
            }
        }
    }
}

Пример запроса на создание/редактирование заказа с интеграционной доставкой Почта России:

    "order": {
         //...
        "delivery": {
            "code": "russianpost-delivery",     
            "data": {                         
                "trackNumber": "EA349651005RU"
            },
            "cost": 500,                      
            "date": "2014-10-26",             
            "address": {                      
                // ...
            }
        }
    }
}

Структура данных адреса доставки

Адрес доставки order[delivery][address] можно указывать либо в строковом виде в поле order[delivery][address][text], либо в подробном виде, заполняя все поля кроме order[delivery][address][text]. Пример запроса с подробным заполнением всех полей адреса доставки:

    "order": {
         //...
        "delivery": {
            //...
            "address": {
                "index":"398916",             // Почтовый индекс
                "region":"Москва",            // Область
                "regionId":55,                // Идентификатор области в geohelper
                "city":"Москва",              // Город
                "cityId":4995,                // Идентификатор города в geohelper
                "cityType":"г.",              // Тип населенного пункта
                "street":"Мытная",            // Улица
                "streetId":1777167,           // Идентификатор улицы в geohelper
                "streetType":"ул.",           // Тип улицы
                "building":"25",              // Номер дома
                "flat":"13",                  // Номер квартиры или офиса
                "floor":5,                    // Этаж
                "block":3,                    // Подъезд
                "house":"1",                  // Строение
                "housing":"1",                // Корпус
                "metro":"Шаболовская",        // Метро
                "notes":"2 ая проходная"     // Дополнительные заметки
                "deliveryTime":"с 10:00 до 12:00" // Время доставки
            }
        }
    }
}

Пример запроса с передачей адреса доставки в строковом виде:

    "order": {
         //...
        "delivery": {
            //...
            "address": {
                "index":"614030",
                "city":"Пермь",
                "text":"Янаульская, д. 26, кв. 18"
            }
        }
    }
}

Данные интеграционных доставок

Методы взаимодействия с интеграционными доставками Вы можете увидеть в справочнике методов API. Необходимо найти поле order[delivery][data] и в селекте выбрать нужную Вам службу доставки.

Ограничения при редактировании заказов с интеграционными доставками

При редактировании через API заказа с '''оформленной''' интеграционной доставкой действуют ограничения. В зависимости от типа доставки нельзя изменять данные в следующих полях:

DPD

order[weight]

order[manager]

order[phone]

order[firstName]

order[lastName]

order[deliveryCost]

order[paymentType]

order[shipmentStore]

order[delivery][address]

Новая Почта

order[weight]

order[customer]

order[phone]

order[deliveryCost]

order[paymentType]

order[shipmentStore]

order[delivery][address]

Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Примеры сообщения об ошибках от API
При обращении к API могут допускаться ошибки, о чем система будет сообщать. В статье разберем основные виды ошибок.
Следующая статья
Порядок интеграции службы доставки через API
Разберем этапы подключения службы доставки к системе по API.