Создание зон доставки
Метод для создания или обновления зон доставки с тарифами услуг в Цифре из 1С.
Запрос
POST /api/delivery_zone/create
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
SecretKey |
string | Да | Секретный ключ |
Data |
array | Да |
Массив зон доставки
Структура Data[] |
Структура Data[]
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
Guid |
string | Да | Идентификатор зоны доставки в 1C |
Name |
string | Да | Название зоны доставки |
Items |
array | Нет | Массив тарифов/услуг в зоне
Структура Items[] |
Структура Items[] (тарифы услуг)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
Guid |
string | Да | Идентификатор тарифа в 1C |
Name |
string | Да | Название тарифа/услуги |
Service |
string | Да | Тип услуги: mix (доставка), pump (насос), downtime (простой), other (прочее) |
Price |
float | Нет | Цена услуги (по умолчанию 0) |
VatRate |
float | Нет | Процент НДС (по умолчанию 0) |
VatInPrice |
boolean | Нет | Включен ли НДС в цену (по умолчанию false) |
PriceType |
string | Нет | Тип цены (по умолчанию "by_one")
Подробнее о типах цен |
Min |
float | Нет | Минимальный объем |
Max |
float | Нет | Максимальный объем |
Factories |
array | Нет | Массив цен по объектам (заводам)
Структура Factories[] |
Структура Factories[] (цены по объектам)
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
Id |
integer | Да | ID объекта (завода) в Цифре |
Price |
float | Нет | Цена для этого объекта |
VatRate |
float | Нет | Процент НДС для этого объекта |
VatInPrice |
boolean | Нет | Включен ли НДС в цену для этого объекта |
Примечание: Если массив
Factories не указан, для всех объектов аккаунта используется базовая цена из тарифа. Если указан, система создает специфичные цены для каждого объекта: для объектов из массива - указанную цену, для остальных - базовую.
Типы цен (PriceType)
Допустимые значения PriceType зависят от типа услуги:
| Тип услуги (Service) | Допустимые значения PriceType | Описание |
|---|---|---|
mix |
by_one, by_all |
За 1 м³ или за рейс |
pump |
by_one, by_all |
За единицу или за все единоразово |
downtime |
free, by_one |
Бесплатно или за час |
other |
by_one, by_all |
За единицу или за все единоразово |
Пример запроса
{
"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) |
200 |
Частичный успех. Есть ошибки валидации или предупреждения (success: false) |
400 |
Неверный тип данных. Data должен быть массивом (success: false) |
403 |
Секретный ключ не найден (success: false) |
500 |
Ошибка сервера. Внутренняя ошибка обработки (success: false) |
Успешный ответ (201)
{
"success": true,
"message": "Создано зон: 1. Связано тарифов: 2",
"data_id": 123
}
Ответ с ошибками (200)
{
"success": true,
"message": "Создано зон: 1. Связано тарифов: 1. Зон без GUID: 1. Зон без названия: 1. Тарифов без GUID: 1. Тарифов без названия: 1. Тарифов без типа услуги: 2. Тарифов с неверным типом цены: 1",
"data_id": 123
}
Ошибка валидации данных (400)
{
"success": false,
"message": "Неверный тип данных",
"data_id": 123
}
Ошибка авторизации (403)
{
"success": false,
"message": "Секретный ключ не найден",
"data_id": null
}
Ошибка сервера (500)
{
"success": false,
"message": "Произошла ошибка: подробное описание ошибки",
"data_id": 123
}
Примечания
- Обязательные поля зоны:
Guid,Name - Обязательные поля тарифа:
Guid,Name,Service(тип услуги) - Валидация тарифов: Если
PriceTypeне указан, используется значение по умолчаниюby_one. Допустимые значения:- Для
mix,pump,other:by_one(за единицу) илиby_all(за всё) - Для
downtime:free(бесплатно) илиby_one(за час)
- Для
- Factories: Система создает цены для каждого объекта аккаунта. Для объектов из массива используется указанная цена, для остальных - базовая
- Если тариф был создан ранее, система обновляет только основные параметры
- Зоны доставки также могут быть переданы в
Conditionsдоговора с флагомZone = true - Не отправляйте за раз более 2000 зон или более 1 МБ данных
См. также
- Создание договоров - зоны можно передавать в составе договора
- Двусторонний обмен данных