Установка цен на предложения

Описание

POST /campaigns/{campaignId}/offer-prices/updates

Запрос позволяет управлять ценами предложений без использования прайс-листов.

Внимание. Запрос работает только для включенных магазинов. Если магазин выключен, данные на Яндекс.Маркете не обновятся, даже если HTTP-код — 200 OK. Проверить статус магазина можно с помощью базовых методов или на странице Мои магазины.

Чтобы установить новую цену вместо указанной в прайс-листе, передайте в теле запроса параметр price. Цена устанавливается на 30 дней с последнего обновления, после этого снова начнет действовать цена из прайс-листа.

Чтобы удалить цену предложения, установленную через API, передайте в теле запроса параметр delete=true. После удаления начнет действовать цена из прайс-листа.

Передача цен осуществляется в теле POST-запроса.

Примечание. Запрос доступен начиная с версии 2.38 партнерского API Яндекс.Маркета.

URL ресурса:

https://api.partner.market.yandex.ru/v2/campaigns/{campaignId}/offer-prices/updates.[format]

Входные данные

Параметр

Тип

Значение

Обязательные

campaignId

Int64

Идентификатор магазина.

Структура тела POST-запроса:

<offer-prices>
  <offers>
    <offer id="string" delete="{boolean}">
      <feed id="{int64}"/>
      <price currency-id="{enum}" value="{float}" discount-base="{float}"/>
    </offer>
    ...
  </offers>
</offer-prices>

Параметры тела POST-запроса:

Параметр для формата XML

Параметр для формата JSON

Тип

Значение

offer-prices

Информация о новых ценах предложений.

Обязательный параметр, указывается только для формата XML.

Параметры, вложенные в offer-prices

offers offers

Список предложений.

В теле запроса можно передать от одного до 2000 предложений включительно.

Обязательный параметр.

Параметры, вложенные в offers

offer

Предложение.

Обязательный параметр, указывается только для формата XML.

Параметры, вложенные в offer / offers

feed feed

Информация о прайс-листе, содержащем предложение.

Обязательный параметр.

id id String

Идентификатор предложения из прайс-листа.

Если в прайс-листе содержится несколько предложений с идентификатором id, цена обновится только для первого из них.

Обязательный параметр.

Для формата XML является атрибутом параметра offer.

delete delete Boolean

Удалять ли цену, установленную через API.

Возможные значения:

  • true — цена, установленная через API, удалится, и начнет действовать цена из прайс-листа.

Для формата XML является атрибутом параметра offer.

price price

Информация о новой цене предложения.

Параметр игнорируется, если в теле запроса присутствует параметр delete=true.

Параметры, вложенные в feed

id id Int64

Идентификатор прайс-листа, содержащего предложение.

Обязательный параметр.

Для формата XML является атрибутом параметра feed.

Параметры, вложенные в price

currency-id currencyId Enum

Валюта, в которой указана цена предложения.

Возможно только значение RUR — российский рубль. Управление ценами в других валютах недоступно.

Обязательный параметр.

Для формата XML является атрибутом параметра price.

discount-base discountBase Float

Цена предложения без скидки.

Значение параметра должно быть больше value. Подробнее см. требования к скидкам в Помощи Маркета.

Для формата XML является атрибутом параметра price.

value value Float

Цена предложения.

Возможные значения: больше 0.

Обязательный параметр.

Для формата XML является атрибутом параметра price.

Выходные данные

Структура выходных данных приведена ниже. Порядок следования параметров не гарантируется.

<response>
  <errors>
    <error code="{enum}" message="{string}"/>
    ...
  </errors>
  <status>{enum}</status>
</response>

Описание параметров:

Параметр для формата XML

Параметр для формата JSON

Тип

Значение

response

Ответ.

Параметр выводится только для формата XML.

Параметры, вложенные в response

errors errors

Список ошибок при выполнении запроса.

Выводится, если status="ERROR".

status status Enum

Статус выполнения запроса.

Возможные значения:

  • OK — запрос выполнен успешно.

  • ERROR — произошла ошибка.

Параметры, вложенные в errors

error

Информация об ошибке.

Параметр выводится только для формата XML.

Параметры, вложенные в error / errors

code code Enum

Код ошибки.

Возможные значения:

  • DUPLICATE_OFFER — в теле запроса передано два или более предложения с одинаковыми значениями параметров id.

  • INVALID_FEED_ID — в теле запроса в параметре feed передан идентификатор прайс-листа, который не существует или не относится к магазину campaignId.

  • INVALID_OFFER_ID — в теле запроса в параметре offer передан пустой идентификатор предложения или его значение превышает 50 символов.

  • LIMIT_EXCEEDED — превышено индивидуальное ограничение на количество передаваемых предложений.

  • REQUEST_LIMIT_EXCEEDED — в теле запроса в параметре offers передано больше 2000 предложений.

Для формата XML является атрибутом параметра error.

message message String

Описание ошибки.

Для формата XML является атрибутом параметра error.

Описание ошибок

В случае ошибки сервер возвращает HTTP-код ответа и краткое описание ошибки.

Ошибки, содержащие характерные для данного метода краткие описания:

Описание

Пояснение

Способ возможного решения

Ошибка 400 Bad Request

discount should be between 5% and 95%

Скидка на товар должна быть не меньше 5% и не больше 95% от текущей цены. Проверьте разницу между установленной ценой без скидки и ценой предложения.

Ограничения

В одном запросе можно установить или удалить цены не более чем для 2000 предложений.

В течение минуты можно установить или удалить цены для определенного количества предложений. Если у магазина:

  • не более 10 000 предложений — 50 предложений;
  • более 10 000 предложений — ограничение определяется по формуле:
    (количество предложений магазина) / 200
Примечание.

Количество предложений магазина считается по данным за последние семь дней (не включая сегодня).

Примеры

Запрос:

curl -i -H 'Content-Type: application/xml' -X POST 'https://api.partner.market.yandex.ru/v2/campaigns/10001/offer-prices/updates.xml'

Тело POST-запроса:

-d '<offer-prices>
  <offers>
    <offer id="1671008">
      <feed id="479633"/>
      <price currency-id="RUR" value="800.00" discount-base="950.00"/>
    </offer>
    <offer id="1636288">
      <feed id="479633"/>
      <price currency-id="RUR" value="1500.00"/>
    </offer>
    <offer id="1631602" delete="true">
      <feed id="479659"/>
    </offer>
  </offers>
</offer-prices>'

Ответ:

HTTP/1.1 200 OK
Date: Sat, 13 Apr 2018 13:03:01 GMT
Content-Type: application/xml;charset=utf-8
...

<response>
  <status>OK</status>
</response>