Редактирование категорийных характеристик товара

Метод доступен для моделей: FBY, FBS, Экспресс и DBS.

Если вы используете API-Key-токен, для вызова метода необходим один из доступов в списке

Редактирует характеристики товара, которые специфичны для категории, к которой он относится.

Здесь только то, что относится к конкретной категории

Если вам нужно изменить основные параметры товара (название, описание, изображения, видео, производитель, штрихкод), воспользуйтесь запросом POST v2/businesses/{businessId}/offer-mappings/update.

Чтобы удалить характеристики, которые заданы в параметрах с типом string, передайте пустое значение.

Данные в каталоге обновляются не мгновенно

Это занимает до нескольких минут.

⚙️ Лимит: 10 000 товаров в минуту

Request

POST

https://api.partner.market.yandex.ru/v2/businesses/{businessId}/offer-cards/update

Path parameters

Name

Description

businessId

Type: integer

Идентификатор кабинета. Чтобы его узнать, воспользуйтесь запросом GET v2/campaigns.

ℹ️ Что такое кабинет и магазин на Маркете

Min value: 1

Body

application/json
{
  "offersContent": [
    {
      "offerId": "example",
      "categoryId": 0,
      "parameterValues": [
        {
          "parameterId": 1,
          "unitId": 0,
          "valueId": 0,
          "value": "example"
        }
      ]
    }
  ]
}

Name

Description

offersContent

Type: OfferContentDTO[]

Список товаров с указанными характеристиками.

Min items: 1

Max items: 100

Example
[
  {
    "offerId": "example",
    "categoryId": 0,
    "parameterValues": [
      {
        "parameterId": 1,
        "unitId": 0,
        "valueId": 0,
        "value": "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

CategoryId

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

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

Список категорий Маркета можно получить с помощью запроса POST v2/categories/tree.

Type: integer

Min value: 0

Exclusive min: true

ParameterValueDTO

Значение характеристики.

Name

Description

parameterId

Type: integer

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

Min value: 1

unitId

Type: integer

Идентификатор единицы измерения. Если вы не передали параметр unitId, используется единица измерения по умолчанию.

value

Type: string

Значение.

Для характеристик типа ENUM передавайте:

  • вместе с valueId, если значение берете из справочника;
  • без valueId, если значение собственное.

Example: example

valueId

Type: integer

Идентификатор значения.

  • Обязательно указывайте идентификатор, если передаете значение из перечня допустимых значений, полученного от Маркета.
  • Не указывайте для собственных значений.
  • Только для характеристик типа ENUM.

Example
{
  "parameterId": 1,
  "unitId": 0,
  "valueId": 0,
  "value": "example"
}

OfferContentDTO

Товар с указанными характеристиками.

Name

Description

categoryId

Type: CategoryId

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

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

Список категорий Маркета можно получить с помощью запроса POST v2/categories/tree.

Min value: 0

Exclusive min: true

Example: 0

offerId

Type: ShopSku

Ваш SKU — идентификатор товара в вашей системе.

Правила использования SKU:

  • У каждого товара SKU должен быть свой.

  • Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.

SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.

Важно

Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.

Что такое SKU и как его назначать

Min length: 1

Max length: 255

Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$

Example: example

parameterValues

Type: ParameterValueDTO[]

Список характеристик с их значениями.

При изменении характеристик передавайте только те, значение которых нужно обновить. Если в categoryId вы меняете категорию, значения общих характеристик для старой и новой категории сохранятся, передавать их не нужно.

Подробнее читайте в «Передача значений характеристики».

Min items: 1

Max items: 300

Example
[
  {
    "parameterId": 1,
    "unitId": 0,
    "valueId": 0,
    "value": "example"
  }
]
Example
{
  "offerId": "example",
  "categoryId": 0,
  "parameterValues": [
    {
      "parameterId": 1,
      "unitId": 0,
      "valueId": 0,
      "value": "example"
    }
  ]
}

Responses

200 OK

Запрос выполнен корректно, данные обработаны.

Ответ 200 сам по себе не значит, что переданные значения корректны

Обязательно посмотрите детали ответа: status, а также перечень ошибок (results.errors) и замечаний (results.warnings), если они есть.

  • Если хотя бы по одному товару вернулась ошибка (results.errors), поле status = ERROR. Изменения по всем переданным товарам не будут применены.
  • Если ошибок нет, но хотя бы по одному товару вернулось замечание (results.warnings), поле status = OK, и изменения будут применены.

Если в status вернулось ERROR, убедитесь, что:

  • все обязательные характеристики заполнены;
  • характеристики действительно существуют в указанных категориях;
  • значения соответствуют характеристикам;
  • ваши собственные значения имеют нужный тип данных.

Найти проблемы помогут поля errors и warnings.

Body

application/json
{
  "status": "OK",
  "results": [
    {
      "offerId": "example",
      "errors": [
        {}
      ],
      "warnings": [
        null
      ]
    }
  ]
}

Type: object

All of 2 types
  • Type: ApiResponse

    Стандартная обертка для ответов сервера.

    Example
    {
      "status": "OK"
    }
    
  • Type: object

    results

    Type: UpdateOfferContentResultDTO[] | null

    Ошибки и предупреждения, которые появились при обработке переданных значений. Каждый элемент списка соответствует одному товару.

    Если ошибок и предупреждений нет, поле не передается.

    Min items: 1

    Example
    [
      {
        "offerId": "example",
        "errors": [
          {
            "type": "OFFER_NOT_FOUND",
            "parameterId": 0,
            "message": "example"
          }
        ],
        "warnings": [
          null
        ]
      }
    ]
    
    Example
    {
      "results": [
        {
          "offerId": "example",
          "errors": [
            {
              "type": "OFFER_NOT_FOUND",
              "parameterId": 0,
              "message": "example"
            }
          ],
          "warnings": [
            null
          ]
        }
      ]
    }
    

ApiResponseStatusType

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Type: string

Enum: OK, ERROR

ApiResponse

Стандартная обертка для ответов сервера.

Name

Description

status

Type: ApiResponseStatusType

Тип ответа. Возможные значения:

  • OK — ошибок нет.
  • ERROR — при обработке запроса произошла ошибка.

Enum: OK, ERROR

Example
{
  "status": "OK"
}

OfferContentErrorType

Типы ошибок и предупреждений:

  • OFFER_NOT_FOUND — такого товара нет в каталоге.
  • UNKNOWN_CATEGORY — указана неизвестная категория.
  • INVALID_CATEGORY — указана нелистовая категория. Укажите ту, которая не имеет дочерних категорий.
  • UNKNOWN_PARAMETER — передана характеристика, которой нет среди характеристик категории.
  • UNEXPECTED_BOOLEAN_VALUE — вместо boolean-значения передано что-то другое.
  • NUMBER_FORMAT — передана строка, не обозначающая число, вместо числа.
  • INVALID_UNIT_ID — передана единица измерения, недопустимая для характеристики.
  • INVALID_GROUP_ID_LENGTH — в названии превышено допустимое значение символов — 255.
  • INVALID_GROUP_ID_CHARACTERS — переданы недопустимые символы.

Проверить, какие категорийные характеристики доступны для заданной категории, и получить их настройки можно с помощью запроса POST v2/category/{categoryId}/parameters.

Type: string

Enum: OFFER_NOT_FOUND, UNKNOWN_CATEGORY, INVALID_CATEGORY, UNKNOWN_PARAMETER, UNEXPECTED_BOOLEAN_VALUE, NUMBER_FORMAT, INVALID_UNIT_ID, INVALID_GROUP_ID_LENGTH, INVALID_GROUP_ID_CHARACTERS

OfferContentErrorDTO

Текст ошибки или предупреждения.

Name

Description

message

Type: string

Текст ошибки или предупреждения.

Example: example

type

Type: OfferContentErrorType

Типы ошибок и предупреждений:

  • OFFER_NOT_FOUND — такого товара нет в каталоге.
  • UNKNOWN_CATEGORY — указана неизвестная категория.
  • INVALID_CATEGORY — указана нелистовая категория. Укажите ту, которая не имеет дочерних категорий.
  • UNKNOWN_PARAMETER — передана характеристика, которой нет среди характеристик категории.
  • UNEXPECTED_BOOLEAN_VALUE — вместо boolean-значения передано что-то другое.
  • NUMBER_FORMAT — передана строка, не обозначающая число, вместо числа.
  • INVALID_UNIT_ID — передана единица измерения, недопустимая для характеристики.
  • INVALID_GROUP_ID_LENGTH — в названии превышено допустимое значение символов — 255.
  • INVALID_GROUP_ID_CHARACTERS — переданы недопустимые символы.

Проверить, какие категорийные характеристики доступны для заданной категории, и получить их настройки можно с помощью запроса POST v2/category/{categoryId}/parameters.

Enum: OFFER_NOT_FOUND, UNKNOWN_CATEGORY, INVALID_CATEGORY, UNKNOWN_PARAMETER, UNEXPECTED_BOOLEAN_VALUE, NUMBER_FORMAT, INVALID_UNIT_ID, INVALID_GROUP_ID_LENGTH, INVALID_GROUP_ID_CHARACTERS

parameterId

Type: integer

Идентификатор характеристики, с которой связана ошибка или предупреждение.

Example
{
  "type": "OFFER_NOT_FOUND",
  "parameterId": 0,
  "message": "example"
}

UpdateOfferContentResultDTO

Ошибки и предупреждения, которые появились из-за переданных характеристик.

Name

Description

offerId

Type: ShopSku

Ваш SKU — идентификатор товара в вашей системе.

Правила использования SKU:

  • У каждого товара SKU должен быть свой.

  • Уже заданный SKU нельзя освободить и использовать заново для другого товара. Каждый товар должен получать новый идентификатор, до того никогда не использовавшийся в вашем каталоге.

SKU товара можно изменить в кабинете продавца на Маркете. О том, как это сделать, читайте в Справке Маркета для продавцов.

Важно

Пробельные символы в начале и конце значения автоматически удаляются. Например, " SKU123 " и "SKU123" будут обработаны как одинаковые значения.

Что такое SKU и как его назначать

Min length: 1

Max length: 255

Pattern: ^(?=.*\S.*)[^\x00-\x08\x0A-\x1f\x7f]{1,255}$

Example: example

errors

Type: OfferContentErrorDTO[] | null

Ошибки.

Если хотя бы по одному товару есть ошибка, информация в каталоге не обновится по всем переданным товарам.

Min items: 1

Example
[
  {
    "type": "OFFER_NOT_FOUND",
    "parameterId": 0,
    "message": "example"
  }
]

warnings

Type: OfferContentErrorDTO[] | null

Предупреждения.

Информация в каталоге обновится.

Min items: 1

Example
[
  {
    "type": "OFFER_NOT_FOUND",
    "parameterId": 0,
    "message": "example"
  }
]
Example
{
  "offerId": "example",
  "errors": [
    {
      "type": "OFFER_NOT_FOUND",
      "parameterId": 0,
      "message": "example"
    }
  ],
  "warnings": [
    null
  ]
}

400 Bad Request

Запрос содержит неправильные данные. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

ApiErrorDTO

Общий формат ошибки.

Name

Description

code

Type: string

Код ошибки.

Example: example

message

Type: string

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

Example: 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: 1

    Example
    [
      {
        "code": "example",
        "message": "example"
      }
    ]
    
    Example
    {
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    
Example
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

401 Unauthorized

В запросе не указаны данные для авторизации. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

403 Forbidden

Данные для авторизации неверны или доступ к ресурсу запрещен. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

404 Not Found

Запрашиваемый ресурс не найден. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

420 Method Failure

Превышено ограничение на доступ к ресурсу. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

423 Locked

К ресурсу нельзя применить указанный метод. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

500 Internal Server Error

Внутренняя ошибка Маркета. Подробнее об ошибке

Body

application/json
{
  "status": "OK",
  "errors": [
    {
      "code": "example",
      "message": "example"
    }
  ]
}

Type: object

All of 1 type
  • Type: ApiErrorResponse

    Стандартная обертка для ошибок сервера.

    Example
    {
      "status": "OK",
      "errors": [
        {
          "code": "example",
          "message": "example"
        }
      ]
    }
    

No longer supported, please use an alternative and newer version.

Запрещены ASCII символы с 0 по 31 (кроме 9) и 127 из таблицы.