Создать заказ на перевозку
Стенд по умолчанию — test. Сценарий изменяет данные. Порядок работы для агента.
Выберите организацию заказчика, подготовьте данные груза, требования к транспорту и способ распределения заказа. Перед записью на рабочем стенде получите подтверждение пользователя.
Подготовить организацию и справочники
- Вызовите
GET /api/orders/v0/transferOrder/forwarder/allow. Выберите организацию изdata.items, от имени которой можно создать заказ. - Получите допустимые значения из справочников.
- Типы кузовов —
GET /api/dicts/bodyTypes/v0/bodyTypesGet. - Способы погрузки и выгрузки —
GET /api/dicts/downloadTypes/v0/downloadTypesGet. - Валюты —
GET /api/dicts/currency/v0/orderCurrencyGet.
- Типы кузовов —
Для других справочников и поиска адреса откройте Подготовить справочники, адреса и узловые точки для заказа. Передавайте коды в том виде, в каком они пришли из справочников.
Создать заказ
Вызовите POST /api/orders/v0/transferOrder/create. Передайте id выбранной организации из data.items в data.forwarder.forwarderId. Заполните данные владельца груза в data.customer и валюту в data.currency. Нужны непустые массивы data.bodyType и data.shipments. У каждой задачи должны быть погрузка (npShipment), выгрузка (npUnshipment) и хотя бы одно грузовое место в packages. Проверьте даты и часовые пояса, в том числе что выгрузка запланирована после погрузки.
Чтобы сохранить черновик, оставьте data.distribution без значения. Если пользователь хочет отправить заказ в торги или исполнение, согласуйте это действие до вызова.
Пример тела запроса для черновика
Пример использует синтетические значения. Для вызова подставьте выбранную организацию, сведения о грузе, актуальные даты и адреса.
{
"data": {
"forwarder": {"forwarderId": "example-forwarder"},
"customer": {
"customerName": "Учебный заказчик",
"customerTin": "1234567890",
"customerCountry": "RU",
"customerLegalForm": "OOO",
"customerPhone": "",
"customerForwarderId": "",
"customerComment": "",
"customerAddress": ""
},
"transferOrderType": "FTL",
"cargoCategory": {"category": ""},
"transferOrderAdditionalConfiguration": {},
"isVolumeAuction": false,
"meta": {},
"currency": "RUB",
"switchOffDatesValidation": false,
"trustCoordinates": false,
"bodyType": ["tent"],
"shipments": [{
"packageType": "items",
"packages": [{"count": 1, "stackability": "", "hazardClass": ""}],
"npShipment": {
"name": "Учебная погрузка",
"country": "RU",
"npLegalType": "warehouse",
"position": 0,
"period": {"from": {"time": "2030-01-15T09:00:00+03:00", "displayTZ": "Europe/Moscow"}},
"npGeoAddress": {"address": "Учебный адрес погрузки", "lat": 55.75, "long": 37.62}
},
"npUnshipment": {
"name": "Учебная выгрузка",
"country": "RU",
"npLegalType": "warehouse",
"position": 1,
"period": {"from": {"time": "2030-01-16T09:00:00+03:00", "displayTZ": "Europe/Moscow"}},
"npGeoAddress": {"address": "Учебный адрес выгрузки", "lat": 59.93, "long": 30.36}
}
}]
}
}
Сохраните data.id из ответа. Чтобы проверить статус созданного заказа, передайте этот идентификатор в data.exactOrderIds метода POST /api/orders/v0/transferOrder/getFlatForCustomer.
При ошибке валидации сверьте обязательные поля и коды справочников. При 403 Forbidden проверьте право на создание заказов в выбранной организации.