Цифра

Создание и обновление заказов

Приёмка заказов из 1С в Цифру. Создаёт новый заказ или обновляет существующий по GUID.

Логика работы:

Запрос

POST /api/order/create

Параметры запроса

Параметр Тип Обязательный Описание
SecretKey string Да Секретный ключ
Data object Да Данные заказа. См. структуру Data

Структура Data (основные поля заказа)

Поле Тип Обязательное Описание
Guid string Да GUID заказа в 1С. По нему определяется, создавать новый или обновлять существующий
DispatchId integer Да ID диспетчерской в Цифре. Можно получить через список диспетчерских
Total float Да Общий объём заказа (м³)
Status string Нет Передавать только cancel для отмены заказа. Остальные статусы не обрабатываются
PaymentMethod string Нет Способ оплаты: bankWithVAT (Р/С с НДС), bankWithoutVAT (Р/С без НДС), cash (Наличные), transfer (Перевод)
DeliveryType string Нет Тип доставки: delivery (Доставка), take-away (Самовывоз). По умолчанию: delivery
Date datetime Да Дата заказа (формат: YYYY-MM-DD)
FirstOrderTimeDelivery string Да Время первой доставки (формат: HH:MM:SS)
Comment string Нет Комментарий к заказу (для диспетчера)
CommentDriver string Нет Комментарий для водителя
Good object Да Номенклатура. См. структуру Good
Client object Да Контрагент (покупатель). См. структуру контрагента
Zone object Нет Зона доставки. См. структуру Zone
Delivery object Да Информация о доставке. См. структуру Delivery
Seller object Нет Продавец (компания). См. структуру контрагента
Carrier object Нет Перевозчик (компания). См. структуру контрагента
Manager object Нет Менеджер заказа. См. структуру Manager
Spec object Нет Спецификация. См. структуру Spec
Contract object Нет Договор. См. структуру Contract
Invoice object Нет Счёт. См. структуру Invoice
Factories array of integer Нет Массив MixId заводов, которые должны быть привязаны к заказу. Значения MixId можно получить через список заводов. Если не указан — привязываются все заводы, связанные с диспетчерской. Если указан — из связанных заводов выбираются только те, чей MixId есть в массиве

Структура Good (номенклатура)

Поле Тип Обязательное Описание
Guid string Да GUID номенклатуры в 1С
CharacteristicGuid string Нет GUID характеристики номенклатуры в 1С
Name string Да Название номенклатуры
Price float Нет Цена за м³

Структура контрагента (Client, Seller, Carrier)

Поле Тип Обязательное Описание
Guid string Да (для Client) GUID контрагента в 1С
Name string Да (для Client) Название компании
Inn string Нет ИНН компании

Структура Zone (зона доставки)

Поле Тип Описание
Guid string GUID зоны доставки в 1С
Name string Название зоны доставки

Структура Delivery (доставка)

Поле Тип Обязательное Описание
Address string Да Адрес доставки
Latitude float Нет Широта (если известна)
Longitude float Нет Долгота (если известна)
Price float Нет Стоимость доставки

Структура Manager (менеджер)

Поле Тип Описание
Name string ФИО менеджера
Phone string Телефон менеджера

Структура Spec (спецификация)

Поле Тип Описание
Guid string GUID номенклатуры спецификации в 1С
CharacteristicGuid string GUID характеристики в 1С
Name string Название спецификации

Структура Contract (договор)

Поле Тип Описание
Guid string GUID договора в 1С
Name string Номер/название договора

Структура Invoice (счёт)

Поле Тип Описание
Guid string GUID счёта в 1С
Name string Номер счёта

Пример запроса (создание заказа)

{
  "SecretKey": "2akgzOCYsAxLwpNl",
  "Data": {
    "Guid": "22db4291-154f-11ec-973e-244bfecb4e0a",
    "DispatchId": 1,
    "Total": 24.0,
    "DeliveryType": "delivery",
    "PaymentMethod": "bankWithVAT",
    "Date": "2024-12-09",
    "FirstOrderTimeDelivery": "08:00:00",
    "Comment": "Подъезд со стороны главного входа",
    "Factories": [42, 43],
    "Good": {
      "Guid": "33ab5192-265g-22fc-a84f-355cgfdc5f1b",
      "CharacteristicGuid": "44bc6203-376h-33gd-b95g-466dghde6g2d",
      "Name": "БСТ В25П4F200",
      "Price": 4500.0
    },
    "Client": {
      "Guid": "44cd6203-376h-33gd-b95g-466dghde6g2c",
      "Name": "ООО Заказчик",
      "Inn": "7604377806"
    },
    "Delivery": {
      "Address": "Тула, Менделеевская улица, 12В",
      "Price": 2500.0
    },
    "Seller": {
      "Guid": "88gh0647-710l-77kh-f39k-800hklhi0k6h",
      "Name": "ООО Бетонный Завод",
      "Inn": "7604123456"
    },
    "Zone": {
      "Guid": "77fg9536-609k-66jg-e28j-799gjkgh9j5g",
      "Name": "Зона 1 (до 10 км)"
    },
    "Contract": {
      "Guid": "11jk3970-043o-00nk-i62n-133knokl3n9k",
      "Name": "Договор №123 от 01.01.2024"
    }
  }
}

Пример запроса (отмена заказа)

{
  "SecretKey": "2akgzOCYsAxLwpNl",
  "Data": {
    "Guid": "22db4291-154f-11ec-973e-244bfecb4e0a",
    "DispatchId": 1,
    "Status": "cancel"
  }
}

Ответ

Структура ответа

Поле Тип Описание
success boolean Успешность операции
message string Сообщение о результате
data_id integer ID записи в логах интеграции
errors array Массив ошибок (при наличии)

Успешное создание (201)

{
  "success": true,
  "message": "Заказ создан (ID: 567)",
  "data_id": 12345
}

Успешное обновление (200)

{
  "success": true,
  "message": "Заказ обновлён",
  "data_id": 12345
}

Ошибка валидации (422)

{
  "success": false,
  "message": "Отсутствуют обязательные поля: Guid, Client.Guid",
  "data_id": 12345,
  "errors": ["Guid", "Client.Guid"]
}

Ошибка обновления начатого заказа (422)

{
  "success": false,
  "message": "Объём (10 м³) не может быть меньше, чем уже в работе/выполнено (15 м³)",
  "data_id": 12345,
  "errors": ["Объём (10 м³) не может быть меньше, чем уже в работе/выполнено (15 м³)"]
}

Коды ответов

Код Описание
201 Заказ успешно создан
200 Заказ успешно обновлён или отменён
401 Ошибка ключа. Секретный ключ не найден
422 Ошибка валидации или бизнес-логики
500 Внутренняя ошибка сервера

Бизнес-логика

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

Обновление заказа

Отмена заказа

История

См. также