Цифра

Справочники — Зоны доставки

Метод для создания или обновления зон доставки с тарифами услуг в Цифре из 1С.

POST /api/delivery_zone/create

Для создания или обновления зон доставки в Цифре необходимо отправить запрос на метод API, передав массив зон в поле Data.

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

Параметр Тип Обязательный Описание
SecretKey string Да Секретный ключ
Data array Да Массив зон доставки для создания/обновления
Логика работы
  • Данные передаются в массиве Data
  • Если зона с переданным Guid уже существует в системе — она будет обновлена
  • Если зоны с таким Guid нет — будет создана новая

Структура Data[]

Поле Тип Обязательное Описание
Guid string Да Идентификатор зоны доставки в 1C
Name string Да Название зоны доставки

Типы цен (PriceType)

Допустимые значения PriceType зависят от типа услуги.

Тип услуги (Service) Допустимые значения PriceType Описание
mixby_one, by_allЗа 1 м³ или за рейс
pumpby_one, by_allЗа единицу или за все единоразово
downtimefree, by_oneБесплатно или за час
otherby_one, by_allЗа единицу или за все единоразово
Примечания
  • Обязательные поля зоны: Guid, Name
  • Обязательные поля тарифа: Guid, Name, Service
  • Если PriceType не указан, используется значение по умолчанию by_one
  • Для Factories обязательны поля Id, Price, VatRate/Vat, VatInPrice
  • Если массив Factories указан, система создаёт специфичные цены для каждого объекта: для объектов из массива — указанную цену, для остальных — базовую
  • Если тариф был создан ранее, система обновляет только основные параметры
  • Зоны доставки также могут быть переданы в Conditions договора с флагом Zone = true
  • Не отправляйте за раз более 2000 зон или более 1 МБ данных
Пример запроса 1С → Цифра
{
  "SecretKey": "2akgzOCYsAxLwpNl",
  "Data": [
    {
      "Guid": "zone-guid-1",
      "Name": "Зона А - Центр",
      "Items": [
        {
          "Guid": "tariff-guid-1",
          "Name": "Доставка миксером",
          "Service": "mix",
          "Price": 2000,
          "VatRate": 20,
          "VatInPrice": false,
          "PriceType": "by_one",
          "Min": 5,
          "Max": 10,
          "Factories": [
            {
              "Id": 1,
              "Price": 1800,
              "VatRate": 20,
              "VatInPrice": false
            },
            {
              "Id": 2,
              "Price": 2200,
              "VatRate": 20,
              "VatInPrice": false
            }
          ]
        },
        {
          "Guid": "tariff-guid-2",
          "Name": "Насос 32м",
          "Service": "pump",
          "Price": 15000,
          "VatRate": 20,
          "VatInPrice": true,
          "PriceType": "by_all"
        }
      ]
    }
  ]
}

Коды ответов

КодОписание
201Успешное создание. Все зоны и тарифы обработаны без ошибок (success: true)
207Частичный успех. Часть данных обработана, но есть ошибки (success: true)
401Ошибка ключа. Секретный ключ не найден (success: false)
422Ошибка валидации. Data должен быть массивом (success: false)
500Ошибка сервера. Внутренняя ошибка обработки (success: false)

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

ПолеТипОписание
successbooleanУспешность операции
messagestringСообщение об успешных операциях
data_idintegerID записи в логе
errorsarrayМассив ошибок (только при наличии ошибок)

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

{
  "success": true,
  "message": "Создано зон: 1. Связано тарифов: 2",
  "data_id": 123
}
{
  "success": true,
  "message": "Создано зон: 1. Связано тарифов: 1",
  "data_id": 123,
  "errors": [
    "Зон без GUID: 1",
    "Тарифов без типа услуги: 2",
    "Объектов без НДС: 1"
  ]
}
{
  "success": false,
  "message": "Секретный ключ не найден",
  "data_id": null
}
{
  "success": false,
  "message": "Неверный тип данных",
  "data_id": 123
}
{
  "success": false,
  "message": "Произошла ошибка: подробное описание ошибки",
  "data_id": 123
}

См. также