Обновление опций доставки (диапазоны, цена, время)

POST /v1/polygon/delivery-options/update

POST/v1/polygon/delivery-options/update

Обновление настроек полигона.

В рамках одного полигона в зависимости от ВГХ товара можно настроить разные стоимости доставки — для этого необходимо передать несколько элементов массива в delivery_options. Для каждого элемента настраиваются условия доставки — цена, стоимость, время и тд. Передавать необходимо полный массив.

Тело запроса

polygon_id
string
required

Идентификатор полигона.

delivery_options
array
required

Список условий доставки по объёмному весу.

Передавать необходимо полный массив.

Опция доставки по диапазону объёмного веса (элемент delivery_options[]). Для Express поддерживается опциональный calculation_mode — discriminator Static/Dynamic Express.

Показать свойства
volume_weight_from
number

Объёмный вес (кг) от: длина (см) × ширина (см) × высота (см) * масса брутто (кг) / 300.

volume_weight_to
number

Объёмный вес (кг) до: длина (см) × ширина (см) × высота (см) * масса брутто (кг) / 300.

price
number
required

Цена доставки, значение умноженное на 100. При calculation_mode = STATIC (или при отсутствии поля) — итоговая стоимость для заказа. При calculation_mode = DYNAMIC — конфигурационный параметр тарифа; итоговая стоимость конкретной доставки определяется ответом POST /v1/polygon/delivery-options/calculate.

currency
string
required

Валюта цены.

RUB: Российский рубль

BYN: Белорусский рубль

KZT: Тенге

EUR: Евро

USD: Доллар США

CNY: Юань

Допустимые значения
RUBBYNKZTEURUSDCNY
vat
string

НДС.

VAT_0: Ставка НДС 0%

VAT_5: Ставка НДС 5%

VAT_7: Ставка НДС 7%

VAT_10: Ставка НДС 10%

VAT_22: Ставка НДС 22%

NO_VAT: Без НДС

Допустимые значения
VAT_0VAT_5VAT_7VAT_10VAT_22NO_VAT
provider_id
string

Идентификатор провайдера доставки.

CDEK: СДЭК

RUSSIAN_POST: Почта России

BOXBERRY: Boxberry

YANDEX: Яндекс Доставка

5POST: 5Post

DPD: DPD

HERMES: Hermes

IML: IML

TOP_DELIVERY: Top Delivery

OZON: Ozon

KSE: КСЕ

STRIZH: Стриж

DL: Деловые Линии

PEK: ПЭК

SBL: Сберлогистика

MVIDEO: М.Видео

Допустимые значения
CDEKRUSSIAN_POSTBOXBERRYYANDEX5POSTDPDHERMESIMLTOP_DELIVERYOZONKSESTRIZHDLPEKSBLMVIDEO
delivery_time_minutes
integer
required

Минимальное (базовое) ожидаемое время доставки в минутах. Конфигурационный параметр Express SLA в polygon delivery option. При calculation_mode = STATIC (или при отсутствии поля) — используется как итоговый срок доставки. При calculation_mode = DYNAMIC — конкретный интервал доставки для заказа определяется ответом POST /v1/polygon/delivery-options/calculate.

delivery_types
array
required

Типы доставки.

Параметры типа доставки для опции.

Показать свойства
delivery_type
string
required

Тип доставки.

COURIER: доставка курьером

PICKUP_POINT: доставка в пункт выдачи

EXPRESS: срочная курьерская доставка заказа клиенту

Допустимые значения
COURIERPICKUP_POINTEXPRESS
calculation_mode
string

Режим расчёта условий Express-доставки. Поле опционально; располагается на уровне delivery option после delivery_types. При отсутствии — STATIC.

  • DYNAMIC: Dynamic Express: delivery option задаёт поддержку Express и конфигурационные параметры в полигоне; стоимость и сроки конкретной доставки для заказа рассчитываются через POST /v1/polygon/delivery-options/calculate. Business rule: допустимо только при delivery_type = EXPRESS.
Допустимые значения
STATICDYNAMIC
is_return
boolean

true — опция для возвратной логистики; false или нет поля — прямая доставка. На комбинацию delivery_types + диапазон ВГХ — один возвратный бакет.

weight_from
number

Масса брутто (кг) от.

weight_to
number

Масса брутто (кг) до.

time_slots
array

Доступные интервалы доставки по времени. Конфигурационный параметр delivery option. При calculation_mode = DYNAMIC конкретные интервалы для заказа определяются ответом POST /v1/polygon/delivery-options/calculate.

Интервал времени доставки в течение дня (локальное время).

Показать свойства
from
string

Начало интервала, формат «HH:MM» (например, «10:00»).

to
string

Конец интервала, формат «HH:MM» (например, «12:00»).

trunk_schedule
object

График магистральной перевозки по городу.

Показать свойства
working_schedule
array

Расписание по дням недели; в каждом элементе — day и shipping_cutoff для магистрали.

PolygonWorkingSchedule

Показать свойства

PolygonWorkingSchedule

day
string

День недели.

MONDAY: понедельник

TUESDAY: вторник

WEDNESDAY: среда

THURSDAY: четверг

FRIDAY: пятница

SATURDAY: суббота

SUNDAY: воскресенье

Допустимые значения
MONDAYTUESDAYWEDNESDAYTHURSDAYFRIDAYSATURDAYSUNDAY
shipping_cutoff
string

Время, после которого отсчёт слота доставки начнётся со следующего дня магистральной перевозки. Формат «16:30». Если пустое — не применяется.

individual_schedule
array

Индивидуальное расписание на даты; в каждом элементе — date, shipping_cutoff для магистрали, is_works.

PolygonIndividualSchedule

Показать свойства

PolygonIndividualSchedule

date
string

Дата, формат «YYYY-MM-DD».

shipping_cutoff
string

Время, после которого отсчёт слота доставки начнётся со следующего дня магистральной перевозки. Формат «16:30». Если пустое — не применяется.

is_works
boolean

Признак работы в дату.

delivery_time_minutes_max
integer

Максимальное ожидаемое время доставки в минутах (Express SLA). Конфигурационный параметр; вместе с delivery_time_minutes задаёт интервал N–M минут в polygon delivery option. При calculation_mode = DYNAMIC не заменяет сроки конкретной доставки из POST /v1/polygon/delivery-options/calculate.

order_cutoff
string

Время, после которого данную опцию доставки нельзя заказать. Формат «HH:MM» (например, «17:30»). Конфигурационный параметр Express в polygon delivery option.

additional_options
array

Дополнительные опции доставки в рамках этой delivery option. Поле опционально; отсутствие массива — доп. опций нет.

Известные option_name: is_fitting, fitting_duration_minutes, unloading, first_minutes_free, delivery_time_minutes. Другие имена — по договорённости с витриной.

Универсальная доп. опция. Одна форма на всех уровнях: option_name + value, вложенные опции — тот же объект.

value — boolean, number или string (флаг, минуты, произвольное значение).

Показать свойства
option_name
string
required

Машинное имя опции. Не закрытый enum.

Известные значения: is_fitting (примерка), fitting_duration_minutes (время на примерку в минутах), unloading (разгрузка), first_minutes_free (первые бесплатные минуты), delivery_time_minutes (время доставки в минутах).

Другие имена — по договорённости с витриной.

value
required

Значение опции: boolean, number или string.

options
array

Вложенные опции той же формы. Опционально; нет массива, если опция самодостаточна.

Circular Reference to PolygonAdditionalOption

Успешный ответ

200A successful response.
application/json
object
polygon_id
string
required

Идентификатор полигона.

errors
array

Ошибки валидации по полям; пустой массив при успехе. Коды только из PolygonDeliveryOptionsValidationErrorCode.

Ошибка валидации/бизнеса поля для scope «PolygonDeliveryOptions». Допустимые field: polygon_id, delivery_options[], time_slots, trunk_schedule, price, weight_*, volume_weight_*, additional_options[].option_name, options[].option_name. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.

Ошибка валидации/бизнеса поля для scope «PolygonDeliveryOptions». Допустимые field: polygon_id, delivery_options[], time_slots, trunk_schedule, price, weight_*, volume_weight_*, additional_options[].option_name, options[].option_name. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.

Показать свойства
field
string
required

Путь к полю. Ожидаемые: polygon_id, delivery_options[], time_slots, trunk_schedule, price, weight_*, volume_weight_*, additional_options[].option_name, options[].option_name.

code
string
required

Код ошибки.

REQUIRED: Поле отсутствует или пустое, но обязательно

INVALID_TYPE: Неверный JSON-тип

INVALID_FORMAT: Неверный формат значения

INVALID_ENUM: Значение не из допустимого набора

CONDITIONALLY_REQUIRED: Поле обязательно при выполнении условия

INVALID_TIME: Не формат HH:MM

INVALID_TIME_RANGE: Некорректный диапазон времени

INVALID_DATE: Не формат YYYY-MM-DD

INVALID_DATE_TIME: Не RFC3339 или нет timezone

MIN_VALUE: Значение ниже минимума

MAX_VALUE: Значение выше максимума

NEGATIVE_VALUE: Отрицательное значение недопустимо

INVALID_RANGE: Некорректный диапазон

TOO_MANY_ITEMS: Превышен лимит элементов

NOT_FOUND: Сущность не найдена (уточняется полем field)

STOREFRONT_RULE_VIOLATION: Отклонено бизнес-правилом витрины (детали в message)

Допустимые значения
REQUIREDINVALID_TYPEINVALID_FORMATINVALID_ENUMCONDITIONALLY_REQUIREDINVALID_TIMEINVALID_TIME_RANGEINVALID_DATEINVALID_DATE_TIMEMIN_VALUEMAX_VALUENEGATIVE_VALUEINVALID_RANGETOO_MANY_ITEMSNOT_FOUNDSTOREFRONT_RULE_VIOLATION
message
string
required

Текст для клиента. Для STOREFRONT_RULE_VIOLATION — описание правила.

Ошибки

400Некорректный запрос
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
401Ошибка авторизации
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
429Превышен лимит запросов
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
500Внутренняя ошибка сервера
application/json
object
error_type
string

Класс транспортной ошибки запроса (HTTP 4xx/5xx).

Поэлементные и бизнес-ошибки сущности приходят в HTTP 200 в errors/failed, не в этом поле.

  • ERROR_TYPE_UNSPECIFIED: не используется
  • ERROR_TYPE_UNAUTHORIZED: HTTP 401
  • ERROR_TYPE_RATE_LIMIT: HTTP 429
  • ERROR_TYPE_INTERNAL: HTTP 500
  • ERROR_TYPE_BAD_REQUEST: HTTP 400 (уровень запроса)
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNALERROR_TYPE_BAD_REQUEST
code
string

Машинный код ошибки. Уточняет error_type.

message
string

Человекочитаемое сообщение об ошибке.

details
object
POST/v1/polygon/delivery-options/update
1curl https://api.omninet.ru/v1/polygon/delivery-options/update \2  --request POST \3  --header 'Content-Type: application/json' \4  --data '{5  "polygon_id": "string",6  "delivery_options": [7    {8      "volume_weight_from": 0,9      "volume_weight_to": 0,10      "price": 0,11      "currency": "RUB",12      "vat": "string",13      "provider_id": "string",14      "delivery_time_minutes": 0,15      "delivery_types": [16        {17          "delivery_type": "COURIER"18        }19      ],20      "calculation_mode": "STATIC",21      "is_return": true,22      "weight_from": 0,23      "weight_to": 0,24      "time_slots": [25        {26          "from": "string",27          "to": "string"28        }29      ],30      "trunk_schedule": {31        "working_schedule": [32          {33            "day": "MONDAY",34            "shipping_cutoff": "string"35          }36        ],37        "individual_schedule": [38          {39            "date": "string",40            "shipping_cutoff": "string",41            "is_works": true42          }43        ]44      },45      "delivery_time_minutes_max": 0,46      "order_cutoff": "string",47      "additional_options": [48        {49          "option_name": "is_fitting",50          "value": true,51          "options": [52            {53              "option_name": "fitting_duration_minutes",54              "value": 1555            }56          ]57        }58      ]59    }60  ]61}'
{
  "polygon_id": "string",
  "errors": [
    {
      "field": "delivery_options[0].price",
      "code": "NEGATIVE_VALUE",
      "message": "Цена доставки не может быть отрицательной"
    }
  ]
}

A successful response.