Добавление товаров в акцию или изменение их цен
Метод доступен для всех моделей.
Пока недоступен для продавцов Market Yandex Go.
Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке
- pricing — Управление ценами
- promotion — Продвижение товаров
- all-methods — Полное управление кабинетом
Добавляет товары в акцию или изменяет цены на товары, которые участвуют в акции.
Изменения начинают действовать в течение 4–6 часов. Узнать, применились ли они, можно с помощью параметра processing в ответе метода POST v2/businesses/{businessId}/promos.
| ⚙️ Лимит: 10 000 запросов в час |
|---|
Request
POST
https://api.partner.market.yandex.ru/v2/businesses/{businessId}/promos/offers/update
Path parameters
|
Name |
Description |
|
businessId |
Type: integer Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns. ℹ️ Что такое кабинет и магазин на Маркете Min value: |
Body
application/json
{
"promoId": "example",
"offers": [
{
"offerId": "example",
"params": {
"discountParams": {
"price": 1,
"promoPrice": 1
}
}
}
]
}
|
Name |
Description |
|
offers |
Type: UpdatePromoOfferDTO[] Товары, которые необходимо добавить в акцию или цены которых нужно изменить. Min items: Max items: Example
|
|
promoId |
Type: string Идентификатор акции. Example: |
ShopSku
Ваш SKU — идентификатор товара в вашей системе.
Правила использования SKU:
-
У каждого товара SKU должен быть свой.
-
Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.
Важно
Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.
Что такое SKU и как его назначать
Type: string
Min length: 1
Max length: 255
Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$
Example: example
UpdatePromoOfferDiscountParamsDTO
Параметры товара в акции с типом DIRECT_DISCOUNT или BLUE_FLASH.
Обязательный параметр для акций с этими типами.
|
Name |
Description |
|
price |
Type: integer Зачеркнутая цена — та, по которой товар продавался до акции. Указывается в рублях. Число должно быть целым. Min value: |
|
promoPrice |
Type: integer Цена по акции — та, по которой вы хотите продавать товар. Указывается в рублях. Число должно быть целым. Min value: |
Example
{
"price": 1,
"promoPrice": 1
}
UpdatePromoOfferParamsDTO
Параметры товара, который участвует в акции.
|
Name |
Description |
|
discountParams |
Type: UpdatePromoOfferDiscountParamsDTO Параметры товара в акции с типом Обязательный параметр для акций с этими типами. Example
|
Example
{
"discountParams": {
"price": 1,
"promoPrice": 1
}
}
UpdatePromoOfferDTO
Описание товаров, которые участвуют в акции.
|
Name |
Description |
|
offerId |
Type: ShopSku Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Важно Пробельные символы в начале и конце значения автоматически удаляются. Например, Что такое SKU и как его назначать Min length: Max length: Pattern: Example: |
|
params |
Type: UpdatePromoOfferParamsDTO Параметры товара, который участвует в акции. Example
|
Example
{
"offerId": "example",
"params": {
"discountParams": {
"price": 1,
"promoPrice": 1
}
}
}
Responses
200 OK
Результат добавления товаров в акцию или обновления их цен.
Body
application/json
{
"status": "OK"
}
Type: object
ApiResponseStatusType
Тип ответа. Возможные значения:
OK— ошибок нет.ERROR— при обработке запроса произошла ошибка.
Type: string
Enum: OK, ERROR
ApiResponse
Стандартная обертка для ответов сервера.
|
Name |
Description |
|
status |
Type: ApiResponseStatusType Тип ответа. Возможные значения:
Enum: |
Example
{
"status": "OK"
}
RejectedPromoOfferUpdateReasonType
Причина отклонения изменения:
-
OFFER_DOES_NOT_EXIST— в кабинете нет товара с таким SKU. -
OFFER_DUPLICATION— один и тот же товар передан несколько раз. -
OFFER_NOT_ELIGIBLE_FOR_PROMO— товар не подходит под условия акции. -
OFFER_PROMOS_MAX_BYTE_SIZE_EXCEEDED— товар не добавлен в акцию по техническим причинам. -
DEADLINE_FOR_FOCUS_PROMOS_EXCEEDED— истек срок добавления товаров в акцию. -
EMPTY_OLD_PRICE— не указана зачеркнутая цена. -
EMPTY_PROMO_PRICE— не указана цена по акции. -
MAX_PROMO_PRICE_EXCEEDED— цена по акции превышает максимально возможную цену для участия в акции. -
PROMO_PRICE_BIGGER_THAN_MAX— цена по акции больше 95% от зачеркнутой цены. -
PROMO_PRICE_SMALLER_THAN_MIN— цена по акции меньше 1% от зачеркнутой цены. -
PRICE_TOO_BIG— слишком большая цена по акции. -
OLD_PRICE_TOO_BIG— слишком большая зачеркнутая цена.
Type: string
Enum: OFFER_DOES_NOT_EXIST, OFFER_DUPLICATION, OFFER_NOT_ELIGIBLE_FOR_PROMO, OFFER_PROMOS_MAX_BYTE_SIZE_EXCEEDED, DEADLINE_FOR_FOCUS_PROMOS_EXCEEDED, EMPTY_OLD_PRICE, EMPTY_PROMO_PRICE, MAX_PROMO_PRICE_EXCEEDED, PROMO_PRICE_BIGGER_THAN_MAX, PROMO_PRICE_SMALLER_THAN_MIN, PRICE_TOO_BIG, OLD_PRICE_TOO_BIG
RejectedPromoOfferUpdateDTO
Описание отклоненного изменения.
|
Name |
Description |
|
offerId |
Type: ShopSku Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Важно Пробельные символы в начале и конце значения автоматически удаляются. Например, Что такое SKU и как его назначать Min length: Max length: Pattern: Example: |
|
reason |
Type: RejectedPromoOfferUpdateReasonType Причина отклонения изменения:
Enum: |
Example
{
"offerId": "example",
"reason": "OFFER_DOES_NOT_EXIST"
}
PromoOfferUpdateWarningCodeType
Предупреждение, которое появилось при добавлении товара:
-
DEEP_DISCOUNT_OFFER— большая разница с ценой в каталоге. Проверьте, нет ли ошибки. -
CATALOG_PRICE_IS_LOWER_THAN_PROMO— цена, которая действует во всех магазинах, ниже цены по акции. У товара не будет отображаться цена по акции. -
SHOP_PRICES_ARE_LOWER_THAN_PROMO— цена в отдельном магазине ниже цены по акции. У товара в акции будет отображаться цена в магазине. Для остальных магазинов будет действовать цена по акции. -
SHOP_OFFER_NOT_ELIGIBLE_FOR_PROMO— товар в отдельном магазине не подходит под условия акции.
Type: string
Enum: DEEP_DISCOUNT_OFFER, CATALOG_PRICE_IS_LOWER_THAN_PROMO, SHOP_PRICES_ARE_LOWER_THAN_PROMO, SHOP_OFFER_NOT_ELIGIBLE_FOR_PROMO
CampaignId
Идентификатор кампании (магазина) — технический идентификатор, который представляет ваш магазин в системе Яндекс Маркета при работе через API. Он однозначно связывается с вашим магазином, но предназначен только для автоматизированного взаимодействия.
Его можно узнать с помощью запроса GET v2/campaigns или найти в кабинете продавца на Маркете. Нажмите на иконку вашего аккаунта → Настройки и в меню слева выберите API и модули:
- блок Идентификатор кампании;
- вкладка Лог запросов → выпадающий список в блоке Показывать логи.
⚠️ Не путайте его с:
- идентификатором магазина, который отображается в личном кабинете продавца;
- рекламными кампаниями.
Type: integer
Min value: 1
PromoOfferUpdateWarningDTO
Предупреждение, которое появилось при добавлении товара в акцию или изменении его цен.
|
Name |
Description |
|
code |
Type: PromoOfferUpdateWarningCodeType Предупреждение, которое появилось при добавлении товара:
Enum: |
|
campaignIds |
Type: CampaignId[] | null Идентификаторы кампаний тех магазинов, для которых получены предупреждения. Не возвращается, если предупреждения действуют для всех магазинов в кабинете. Min items: Unique items: Example
|
Example
{
"code": "DEEP_DISCOUNT_OFFER",
"campaignIds": [
1
]
}
WarningPromoOfferUpdateDTO
Описание предупреждения, которое появилось при добавлении товара.
|
Name |
Description |
|
offerId |
Type: ShopSku Ваш SKU — идентификатор товара в вашей системе. Правила использования SKU:
SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов. Важно Пробельные символы в начале и конце значения автоматически удаляются. Например, Что такое SKU и как его назначать Min length: Max length: Pattern: Example: |
|
warnings |
Type: PromoOfferUpdateWarningDTO[] Предупреждения, которые появились при добавлении товара в акцию или изменении его цен. Example
|
Example
{
"offerId": "example",
"warnings": [
{
"code": "DEEP_DISCOUNT_OFFER",
"campaignIds": [
1
]
}
]
}
UpdatePromoOffersResultDTO
Ошибки и предупреждения, которые появились при добавлении товаров в акцию.
|
Name |
Description |
|
rejectedOffers |
Type: RejectedPromoOfferUpdateDTO[] | null Изменения, которые были отклонены. Возвращается, только если есть отклоненные изменения. Min items: Example
|
|
warningOffers |
Type: WarningPromoOfferUpdateDTO[] | null Изменения, по которым есть предупреждения. Они информируют о возможных проблемах. Информация о товарах обновится. Возвращается, только если есть предупреждения. Min items: Example
|
Example
{
"rejectedOffers": [
{
"offerId": "example",
"reason": "OFFER_DOES_NOT_EXIST"
}
],
"warningOffers": [
{
"offerId": null,
"warnings": [
{
"code": "DEEP_DISCOUNT_OFFER",
"campaignIds": [
null
]
}
]
}
]
}
400 Bad Request
Запрос содержит неправильные данные. Подробнее об ошибках при работе с акциями
Body
application/json
{
"status": "OK"
}
Type: object
ApiErrorDTO
Общий формат ошибки.
|
Name |
Description |
|
code |
Type: string Код ошибки. Example: |
|
message |
Type: string Описание ошибки. Example: |
Example
{
"code": "example",
"message": "example"
}
ApiErrorResponse
Стандартная обертка для ошибок сервера.
Type: object
All of 2 types
-
Type: ApiResponse
Стандартная обертка для ответов сервера.
Example
{ "status": "OK" } -
Type: object
errors
Type: ApiErrorDTO[] | null
Список ошибок.
Min items:
1Example
[ { "code": "example", "message": "example" } ]Example
{ "errors": [ { "code": "example", "message": "example" } ] }
Example
{
"status": "OK"
}
401 Unauthorized
В запросе не указаны данные для авторизации. Подробнее об ошибке
Body
application/json
{
"status": "OK"
}
Type: object
403 Forbidden
Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке
Body
application/json
{
"status": "OK"
}
Type: object
404 Not Found
Запрашиваемый ресурс не найден. Подробнее об ошибке
Body
application/json
{
"status": "OK"
}
Type: object
420 Method Failure
Превышено ограничение на доступ к ресурсу. Подробнее об ошибке
Body
application/json
{
"status": "OK"
}
Type: object
500 Internal Server Error
Внутренняя ошибка Маркета. Подробнее об ошибке
Body
application/json
{
"status": "OK"
}
Type: object
pathParams:
- description: "Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом [GET\_v2/campaigns](../../reference/campaigns/getCampaigns.md).\n\nℹ️ [Что такое кабинет и магазин на Маркете](https://yandex.ru/support/marketplace/account/introduction.html)\n"
name: businessId
in: path
required: true
schema:
type: integer
format: int64
minimum: 1
searchParams: []
headers: []
body: |-
{
"promoId": "example",
"offers": [
{
"offerId": "example",
"params": {
"discountParams": {
"price": 1,
"promoPrice": 1
}
}
}
]
}
schema:
description: >
Добавление товаров в акцию или обновление их параметров.
Чтобы добавить товары в акцию или обновить параметры каких-то товаров,
передайте их в параметре `offers`.
type: object
required:
- promoId
- offers
properties:
promoId:
description: Идентификатор акции.
type: string
offers:
description: >-
Товары, которые необходимо добавить в акцию или цены которых нужно
изменить.
type: array
minItems: 1
maxItems: 500
items:
description: Описание товаров, которые участвуют в акции.
type: object
required:
- offerId
properties:
offerId:
description: "Ваш SKU —\_идентификатор товара в вашей системе.\n\nПравила использования SKU:\n\n* У каждого товара SKU должен быть свой.\n\n* Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.\n\nSKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте [в Справке Маркета для продавцов](https://yandex.ru/support2/marketplace/ru/assortment/operations/edit-sku).\n\n{% note warning %}\n\nПробельные символы в начале и конце значения автоматически удаляются. Например, `\" SKU123 \"` и `\"SKU123\"` будут обработаны как одинаковые значения.\n\n{% endnote %}\n\n[Что такое SKU и как его назначать](https://yandex.ru/support/marketplace/assortment/add/index.html#fields)\n"
type: string
pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$
x-transform: trim
minLength: 1
maxLength: 255
params:
description: Параметры товара, который участвует в акции.
type: object
properties:
discountParams:
description: >
Параметры товара в акции с типом `DIRECT_DISCOUNT` или
`BLUE_FLASH`.
Обязательный параметр для акций с этими типами.
type: object
properties:
price:
description: >
Зачеркнутая цена — та, по которой товар продавался до
акции.
Указывается в рублях.
Число должно быть целым.
type: integer
format: int64
minimum: 1
promoPrice:
description: |
Цена по акции — та, по которой вы хотите продавать товар.
Указывается в рублях.
Число должно быть целым.
type: integer
format: int64
minimum: 1
bodyType: application/json
method: post
security:
- type: apiKey
name: Api-Key
in: header
- type: oauth2
x-inline: true
flows:
implicit:
authorizationUrl: https://oauth.yandex.ru/authorize
scopes:
market:partner-api: API Яндекс.Маркета / Поиска по товарам для партнеров
path: v2/businesses/{businessId}/promos/offers/update
host: https://api.partner.market.yandex.ru
No longer supported, please use an alternative and newer version.
Цена, которая действует во всех магазинах.