Загрузка (обновление) цен товаров

POST /v1/product/price/update

POST/v1/product/price/update

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

Если указаны оба идентификатора, приоритет имеет product_id. В запросе необходимо указать product_id или offer_id. Для некоторых витрин требуется передавать оба поля.

Поддержка параметра min_price может отличаться в зависимости от витрины.

Обновление в стандарте синхронно, но можно получать результат обновления через price/info.

Тело запроса

items
array
required

Список цен по товарам. Максимальное количество элементов в одном запросе — 200. Заполняется либо offer_id, либо product_id. Если заполнены оба идентификатора, то используется только product_id. Витрина может потребовать передавать оба параметра offer_id и product_id. Обязателен product_id или offer_id.

Заполняется либо offer_id, либо product_id. Если заполнены оба идентификатора, то используется только product_id. Витрина может потребовать передавать оба параметра offer_id и product_id.

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

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

offer_id
string

Артикул продавца.

price
integer
required

Текущая цена, значение умноженное на 100.

old_price
integer

Зачёркнутая цена, значение умноженное на 100.

vat
string

НДС (например 0.20 для 20%).

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

Цена, ниже которой товар не попадёт в автоакции маркетплейса, значение умноженное на 100.

Может не поддерживаться некоторыми витринами.

currency
string
required

Валюта цен.

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

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

KZT: Тенге

EUR: Евро

USD: Доллар США

CNY: Юань

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

Ключ идемпотентности. Повтор с тем же ключом возвращает первый успешный результат.

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

200A successful response.
application/json
object
failed
array

Элементы, по которым возникла ошибка.

Если вернулись оба поля product_id и offer_id, приоритетным считается product_id.

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

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

offer_id
string

Артикул продавца.

errors
array

Структурированные ошибки элемента батча. Коды: ProductPriceUpdateValidationErrorCode.

Унифицированная ошибка валидации поля.

Для бизнес-правил витрины использовать code = STOREFRONT_RULE_VIOLATION.

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

Имя поля в запросе (например product_id). Вложенность через точку/индекс: shipments[0].timeslot.

code
string
required

Каталог кодов валидации.

Коды schema-валидации; для бизнес-правил витрины / склада использовать следующий код

STOREFRONT_RULE_VIOLATION.

Геометрия полигонов и адреса merchant location не применяются.

  • REQUIRED: Поле отсутствует или пустое, но обязательно.
  • REQUIRED_ONE_OF: Нужен хотя бы один из набора полей.
  • CONDITIONALLY_REQUIRED: Поле обязательно при выполнении условия.
  • INVALID_TYPE: Неверный JSON-тип значения.
  • INVALID_ENUM: Значение не из допустимого enum.
  • INVALID_FORMAT: Общий сбой формата значения.
  • INVALID_DATE_TIME: Дата/время не RFC3339 или без timezone.
  • INVALID_DATE: Дата не в формате YYYY-MM-DD.
  • INVALID_TIME: Время не в формате ЧЧ:ММ.
  • INVALID_TIME_RANGE: Диапазон времени (перерыв) некорректен.
  • INVALID_URL: Невалидный URL.
  • TOO_MANY_ITEMS: Превышен maxItems / лимит элементов в запросе.
  • MIN_VALUE: Значение ниже допустимого минимума.
  • MAX_VALUE: Значение выше допустимого максимума.
  • NEGATIVE_VALUE: Отрицательное значение там, где недопустимо.
  • INVALID_RANGE: Некорректный диапазон (from > to и т.п.).
  • NOT_FOUND: Сущность не найдена.
  • CONFLICT: Конфликт состояния объекта.
  • INVALID_STATUS_TRANSITION: Недопустимый переход статуса.
  • STATUS_NOT_ALLOWED: Статус недоступен в текущем контексте.
  • STOREFRONT_RULE_VIOLATION: Нарушение бизнес-правила витрины / склада.
Допустимые значения
REQUIREDREQUIRED_ONE_OFCONDITIONALLY_REQUIREDINVALID_TYPEINVALID_ENUMINVALID_FORMATINVALID_DATE_TIMEINVALID_DATEINVALID_TIMEINVALID_TIME_RANGEINVALID_URLTOO_MANY_ITEMSMIN_VALUEMAX_VALUENEGATIVE_VALUEINVALID_RANGENOT_FOUNDCONFLICTINVALID_STATUS_TRANSITIONSTATUS_NOT_ALLOWEDSTOREFRONT_RULE_VIOLATION
message
string
required

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

Ошибки

400Некорректный запрос
application/json
object
error_type
string
  • ERROR_TYPE_UNAUTHORIZED — 401, ERROR_TYPE_RATE_LIMIT — 429, ERROR_TYPE_INTERNAL — 500
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNAL
code
string

Код ошибки.

  • OPERATION_NOT_SUPPORTED: операция недоступна для текущей конфигурации.
Допустимые значения
OPERATION_NOT_SUPPORTED
message
string

сообщение

details
object
401Ошибка авторизации
application/json
object
error_type
string
  • ERROR_TYPE_UNAUTHORIZED — 401, ERROR_TYPE_RATE_LIMIT — 429, ERROR_TYPE_INTERNAL — 500
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNAL
code
string

Код ошибки.

  • OPERATION_NOT_SUPPORTED: операция недоступна для текущей конфигурации.
Допустимые значения
OPERATION_NOT_SUPPORTED
message
string

сообщение

details
object
429Превышен лимит запросов
application/json
object
error_type
string
  • ERROR_TYPE_UNAUTHORIZED — 401, ERROR_TYPE_RATE_LIMIT — 429, ERROR_TYPE_INTERNAL — 500
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNAL
code
string

Код ошибки.

  • OPERATION_NOT_SUPPORTED: операция недоступна для текущей конфигурации.
Допустимые значения
OPERATION_NOT_SUPPORTED
message
string

сообщение

details
object
500Внутренняя ошибка сервера
application/json
object
error_type
string
  • ERROR_TYPE_UNAUTHORIZED — 401, ERROR_TYPE_RATE_LIMIT — 429, ERROR_TYPE_INTERNAL — 500
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNAL
code
string

Код ошибки.

  • OPERATION_NOT_SUPPORTED: операция недоступна для текущей конфигурации.
Допустимые значения
OPERATION_NOT_SUPPORTED
message
string

сообщение

details
object
defaultОшибка (неожиданная или прочие)
application/json
object
error_type
string
  • ERROR_TYPE_UNAUTHORIZED — 401, ERROR_TYPE_RATE_LIMIT — 429, ERROR_TYPE_INTERNAL — 500
Допустимые значения
ERROR_TYPE_UNSPECIFIEDERROR_TYPE_UNAUTHORIZEDERROR_TYPE_RATE_LIMITERROR_TYPE_INTERNAL
code
string

Код ошибки.

  • OPERATION_NOT_SUPPORTED: операция недоступна для текущей конфигурации.
Допустимые значения
OPERATION_NOT_SUPPORTED
message
string

сообщение

details
object
POST/v1/product/price/update
1curl https://api.omninet.ru/v1/product/price/update \2  --request POST \3  --header 'Content-Type: application/json' \4  --data '{5  "items": [6    {7      "product_id": "string",8      "offer_id": "string",9      "price": 0,10      "old_price": 0,11      "vat": "string",12      "min_price": 013    }14  ],15  "currency": "RUB",16  "idempotency_key": "string"17}'
{
  "failed": [
    {
      "product_id": "string",
      "offer_id": "string",
      "errors": [
        {
          "field": "product_id",
          "code": "NOT_FOUND",
          "message": "Товар не найден"
        }
      ]
    }
  ]
}

A successful response.