Перейти к содержанию

Сценарий: учетная система → CARGO.RUN

В этом сценарии заказ создается во внешней системе, например в 1С, ERP или TMS, а затем передается в CARGO.RUN Загрузки.


1. Общий поток

  1. Внешняя система получает токен авторизации.
  2. При необходимости получает значения справочников.
  3. Создает заказ через POST /api/Orders/Apply.
  4. Запускает заказ в работу через POST /api/Orders/StartOrder, если заказ был создан как черновик.
  5. Получает детали заказа через GET /api/Orders/GetInfo.
  6. Отслеживает отклики перевозчиков в matchingCars.
  7. Принимает выбранный отклик через POST /api/OrderTruckMatchings/Accept.
  8. Получает результат выполнения через GET /api/Orders/GetInfo или список изменений через GET /api/Orders/GetIntegrationList.

2. Подготовка справочников

Перед созданием заказа получите ID справочных значений, которые будут переданы в POST /api/Orders/Apply.

Что получить Куда передать
Тип НДС ndsTypeId
Тип груза cargoTypeId
Тип упаковки packTypeIds
Типы полуприцепов trailerTypeIds
Заказчика/контрагента counterpartyId
Перевозчиков для видимости visibleForOrganizationsIds

Методы получения справочников описаны в разделе Справочники.


3. Создание заказа

Заказ создается методом:

POST /api/Orders/Apply

Если 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.

Перед обновлением рекомендуется:

  1. Получить текущую карточку через GET /api/Orders/GetInfo?Id={order_id}.
  2. Изменить нужные поля.
  3. Отправить обновленную модель через POST /api/Orders/Apply.

Часть полей может быть недоступна для изменения после запуска заказа, выбора перевозчика или завершения перевозки.


4. Публикация и запуск

Для запуска заказа используется:

POST /api/Orders/StartOrder?Id={order_id}

После запуска заказ становится доступен перевозчикам в соответствии с настройками видимости.


5. Получение откликов

Детали заказа:

GET /api/Orders/GetInfo?Id={order_id}

Отклики перевозчиков находятся в поле matchingCars.

Для заказов типа Auction часть информации по торгам также находится в объекте auction.


6. Принятие отклика

Отклик принимает владелец заказа:

POST /api/OrderTruckMatchings/Accept

В запрос нужно передать идентификатор отклика. Точная модель тела запроса описана в разделе Order Responses API.

После принятия отклика заказ переходит дальше по жизненному циклу, а в деталях заказа появляются выбранный перевозчик, ТС, водитель и связанные данные.


7. Получение результата выполнения

Для обратной синхронизации внешняя система может:

  • получать детали конкретного заказа через GET /api/Orders/GetInfo;
  • получать список измененных заказов через GET /api/Orders/GetIntegrationList с фильтром по updatedAt.

Пример:

GET /api/Orders/GetIntegrationList?$filter=updatedAt gt 2026-06-30T16:37:14.138307%2B00:00&$orderby=updatedAt asc&$top=100