Инструменты пользователя

Инструменты сайта


Боковая панель

Создание и запуск рейса по алгоритму 3

Создает и запускает новый рейс, используя форму для создания рейса с отдельными точками (voyages / create).

В метод есть необязательное поле delivering_type

Возможные варианты значения:

  • simple - Обычный рейс
  • intercity - Междугородняя
  • movements - Перемещения
  • incity - Городская доставка

По умолчанию ставим значение "simple".

Так же добавляем необязательное поле direction_key, тип строка от 0 до 255 символов.

Описание способов распределения рейсов в зависимости от значения delivering_type:

simple. Метод отрабатывает по аналогии с методом createAndStart

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

Система проверяет поле direction_key. Если поле пустое или отсутствует вовсе, то метод отрабатывает также как createAndStart.

Если поле не пустое, то при запуске рейса подбираем все направление которые подходят по стандартному подбору (маршрут, тип ТС, срок действия), и выбираем первое по id подходящее направление, в конце названия которого есть значение из поля direction_key. Например:

Рейс едет City1- City2. Обычное направление называется "City1-City2-20т"

Если direction_key = '3 точки', то рейс запускаем по направлению с названиями: "City1-City2-20т 3 точки". Так же возможны варианты: "City1-City2-20т тут может быть любой текст 3 точки", "Название может быть вообще другое 3 точки"

movements. При этом типе будет передаваться параметр "Перевозчик" (уже есть в методе), для назначения рейса сразу на перевозчика, но без цены (тоже есть в методе). При этом типе рейсов система находит подходящее направление для рейса, и перебирая этапы по порядку ищет указанного в запросе Перевозчика. Если находит, берет цену и назначает по этой цене на перевозчика. Если не находит, рейс создается и остается в неактивных.

incity. Метод будет использоваться как ручное назначение (уже реализовано), но цена и валюта может не указываться, тогда система ставит 1 руб.

Команда voyages/createAndStartByDeliveringType

Метод POST

Пример запроса

https://api.logist-pro.su/api/voyages/createAndStartByDeliveringType

[
    {
    "delivering_type":"intercity",
    "direction_key":"3 точки",
    
    "carrier_code": "010505464530",
    "car_confirm": "00:01",
    "currency": "USD",
    "price": 2000,
    
    "number":"voyage_number",
    "shipper_code":1,
    "edit":false,
    "additional_field_1":"voyage_number_1",
    "additional_field_2":"Дополнительно поле 2",
    "additional_field_3":"Дополнительно поле 3",
    "additional_field_4":"Дополнительно поле 4",
    "additional_field_5":"Дополнительно поле 5",
    "additional_field_6":true,
    "comment":"Комментарий к рейсу общий",
    "carcase":{
        "name":"Лесовоз 1,5 тонны",
        "code":"D115",
        "weight_code":"1_5",
        "type_code":"lesovoz"
    },
    "points":[
        {
        "point_code":"point_1",
        "address":"Адрес точки погрузки",
        "point_zone":"zone_1",
        "city":"City",
        "point_type":"load",
        "point_date":"2021-01-01 12:00:00",
        "point_date_till":"2021-01-02 15:00:00",
        "point_pallets":"20",
        "point_volume":"20",
        "point_weight":"20",
        "point_weight_units":"т",
        "point_lenght":"20",
        "ftl":false,
        "loading_methods":["back","top"],
        "cargo_type":["готовая продукция"],
        "comment":"Комментарий к первой точке"
	},{
        "point_code":"point_2",
        "address":"Адрес точки выгрузки",
        "point_zone":"zone_2",
        "city":"City",
        "point_type":"unload",
        "point_date":"2021-01-03 13:00:00",
        "point_date_till":"2021-01-04 16:00:00",
        "point_pallets":"20",
        "point_volume":"20",
        "point_weight":"20",
        "point_weight_units":"т",
        "point_lenght":"20",
        "ftl":false,
        "loading_methods":["back","top"],
        "cargo_type":["готовая продукция"],
        "comment":"Комментарий ко второй точке"
        }
    ]}
]

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

Успешный запрос:
{
    "status": "success",
    "errors": [],
    "updates": [],
    "voyages": {
        "0.voyage": [
            {
                "number": "voyage_number",
                "message": [
                    "success"
                ]
            }
        ]
    }
}

Ошибка:
{
    "status": "failed",
    "errors": {
        "0.number": [
            "already_exists"
        ]
    },
    "updates": [],
    "voyages": {
        "0.voyage": [
            {
                "number": "voyage_number",
                "message": [
                    "already_exists"
                ]
            }
        ]
    }
}

Обновление:
{
    "status": "success",
    "errors": [],
    "updates": {
        "0.voyage": true
    },
    "voyages": {
        "0.voyage": [
            {
                "number": "voyage_number",
                "message": [
                    "success"
                ]
            }
        ]
    }
}
Поля в запросе Обязательное поле Описание Тип поля Пример\комментарий
delivering_type тип доставки, определяет алгоритм распределения string (1..255) simple, intercity, incity, movements
direction_key ключ для типа доставки intercity string (1..255
price Цена рейса double
currency Валюта string (1..255 EUR, RUR, USD, UAH, RUR_WITH_VAT, RUR_WITHOUT_VAT, UAH_WITH_VAT, UAH_WITHOUT_VAT, KZT
car_confirm Номер рейса string (1..255) Формат "HH:ii"
carrier_code Обязательное при delivering_type "incity" или "movements" ИНН перевозчика / SAP-код string (1..255) SAP-код заводится в партнерстве
number обязательно Номер рейса string (1..100) Уникальный код рейса
shipper_code обязательно Значение кода (ID) грузоотправителя numeric Предоставляется после регистрации
edit обязательно Значение для редактирование рейса boolean Если true - то обновляет поля рейса и точек, false - создается новый рейс
additional_field_1 Дополнительное поле 1 string (1..255) Задается в настройках филиала
additional_field_2 Дополнительное поле 2 string (1..255) Задается в настройках филиала
additional_field_3 Дополнительное поле 3 string (1..255) Задается в настройках филиала
additional_field_4 Дополнительное поле 4 string (1..255) Задается в настройках филиала
additional_field_5 Дополнительное поле 5 string (1..255) Задается в настройках филиала
additional_field_6 Дополнительное поле 6 boolean (0..1) Задается в настройках филиала
comment Комментарий к рейсу string (1..255)
carcase транспортное средство array[]
carcase.name учитывается при создании нового ТС Название нового Типа ТС string (1..255)
carcase.code обязательно Код Тип ТС string (1..255)
carcase.weight_code обязательно при создании нового ТС Код грузоподъемности string (1..255) Типы описаны в справочнике
carcase.type_code обязательно при создании нового ТС Код типа подвижного состава string (1..255) Типы описаны в справочнике
points точки маршрута array[]
points.point_code обязательно Уникальный код точки string (1..255)
points.address обязательно при создании новой точки Адрес точки string (1..255)
points.point_zone учитывается при создании новой точки Зона точки string (1..255)
points.city учитывается при создании новой точки Город точки string (1..255)
points.point_type обязательно Тип точки (загрузка\выгрузка) string (1..255) load / unload
points.point_date обязательно Дата\время прибытия на точку string (19) Формат: “2021-01-01 12:00:00”
points.point_date_till Крайние дата\время прибытия на точку при диапазоне даты и время string (19) Формат: “2021-01-01 12:00:00”
points.point_pallets Количество паллет Integer
points.point_volume Объем груза Integer
points.point_weight Вес груза Integer
points.point_weight_units Единица измерения веса груза string (1..255) т - тонны , кг - килограммы
points.point_lenght Погонные метры Integer
points.ftl Полная загрузка ТС boolean
points.loading_methods Массив список типов погрузки array() Типы описаны в справочнике
points.cargo_type Массив список типов характера груза array() массив свободных значений. Можно получить ранее используемые значения в справочнике, или передать новые.
points.comment Комментарий к точке string (1..255)
Поля в ответе Описание Тип поля Пример\комментарий
status Статус запроса string (1..100) success/failed
errors Блок ошибок array()
errors.0.number номер рейса, поле с ошибкой и описание ошибки array() 0 - номер рейса в запросе, number - поле с ошибкой
updates Блок обновления рейса array()
updates.0.voyage номер и статус обновления рейса array()
voyages Блок статусов по каждому рейсу с его номером array()

Инструменты страницы