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

MVP

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

НДС.

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

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

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

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

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

NO_VAT: Без НДС

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

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

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

currency
string
required

Валюта цен.

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

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

KZT: Тенге

EUR: Евро

USD: Доллар США

CNY: Юань

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

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

200A successful response.
application/json
object
processed
integer

Количество успешно обработанных элементов.

failed
array

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

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

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

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

offer_id
string

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

error_message
string

Текст ошибки элемента (compat). Предпочтительно использовать errors.

errors
array

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

Ошибка валидации/бизнеса поля для scope «ProductPriceUpdate». Допустимые field: items[].product_id, offer_id, price, old_price, vat, min_price, currency. Для бизнес-правил витрины: code=STOREFRONT_RULE_VIOLATION.

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

Путь к полю. Ожидаемые: items[].product_id, offer_id, price, old_price, vat, min_price, currency.

code
string
required

Код ошибки.

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

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

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

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

REQUIRED_ONE_OF: Нужен хотя бы один из набора полей

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

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

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

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

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

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

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

Допустимые значения
REQUIREDINVALID_TYPEINVALID_FORMATINVALID_ENUMREQUIRED_ONE_OFNEGATIVE_VALUEMIN_VALUEMAX_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/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}'
{
  "processed": 0,
  "failed": [
    {
      "product_id": "string",
      "offer_id": "string",
      "error_message": "string",
      "errors": [
        {
          "field": "price",
          "code": "NEGATIVE_VALUE",
          "message": "Цена не может быть отрицательной"
        }
      ]
    }
  ]
}

A successful response.