Сценарий: учетная система → CARGO.RUN¶
В этом сценарии заказ создается во внешней системе, например в 1С, ERP или TMS, а затем передается в CARGO.RUN Загрузки.
1. Общий поток¶
- Внешняя система получает токен авторизации.
- При необходимости получает значения справочников.
- Создает заказ через
POST /api/Orders/Apply. - Запускает заказ в работу через
POST /api/Orders/StartOrder, если заказ был создан как черновик. - Получает детали заказа через
GET /api/Orders/GetInfo. - Отслеживает отклики перевозчиков в
matchingCars. - Принимает выбранный отклик через
POST /api/OrderTruckMatchings/Accept. - Получает результат выполнения через
GET /api/Orders/GetInfoили список изменений черезGET /api/Orders/GetIntegrationList.
2. Подготовка справочников¶
Перед созданием заказа получите ID справочных значений, которые будут переданы в POST /api/Orders/Apply.
| Что получить | Куда передать |
|---|---|
| Тип НДС | ndsTypeId |
| Тип груза | cargoTypeId |
| Тип упаковки | packTypeIds |
| Типы полуприцепов | trailerTypeIds |
| Заказчика/контрагента | counterpartyId |
| Перевозчиков для видимости | visibleForOrganizationsIds |
Методы получения справочников описаны в разделе Справочники.
3. Создание заказа¶
Заказ создается методом:
Если id = 0, создается новый заказ. Если передан ID существующего заказа, метод обновляет заказ.
Минимальные технически обязательные поля:
id;organizationId;withoutMatching;requireHealthBook;carryingCapacity.
Для полноценного заказа обычно также нужны:
points— точки маршрута;orderPriceType— тип цены;orderCost— стоимость;accessType— видимость заказа;visibleForOrganizationsIds— перевозчики, которым виден заказ;trailerTypeIds— требуемые типы прицепов;contactPersonName,contactPersonPhoneNumber— контакт по заказу;externalId,externalInternalId— идентификаторы внешней системы.
Подробная модель запроса описана в разделе Orders API. Минимальные требования описаны в разделе Минимальные требования.
После успешного создания сохраните ID заказа CARGO.RUN. Он нужен для запуска, обновления и дальнейшей синхронизации.
Обновление заказа¶
Для обновления заказа используйте тот же метод POST /api/Orders/Apply, но передайте существующий id.
Перед обновлением рекомендуется:
- Получить текущую карточку через
GET /api/Orders/GetInfo?Id={order_id}. - Изменить нужные поля.
- Отправить обновленную модель через
POST /api/Orders/Apply.
Часть полей может быть недоступна для изменения после запуска заказа, выбора перевозчика или завершения перевозки.
4. Публикация и запуск¶
Для запуска заказа используется:
После запуска заказ становится доступен перевозчикам в соответствии с настройками видимости.
5. Получение откликов¶
Детали заказа:
Отклики перевозчиков находятся в поле matchingCars.
Для заказов типа Auction часть информации по торгам также находится в объекте auction.
6. Принятие отклика¶
Отклик принимает владелец заказа:
В запрос нужно передать идентификатор отклика. Точная модель тела запроса описана в разделе Order Responses API.
После принятия отклика заказ переходит дальше по жизненному циклу, а в деталях заказа появляются выбранный перевозчик, ТС, водитель и связанные данные.
7. Получение результата выполнения¶
Для обратной синхронизации внешняя система может:
- получать детали конкретного заказа через
GET /api/Orders/GetInfo; - получать список измененных заказов через
GET /api/Orders/GetIntegrationListс фильтром поupdatedAt.
Пример: