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

Метод доступен для всех моделей.

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

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

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

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

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

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

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

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

Request

POST

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

Path parameters

Name

Description

businessId*

Type: integer<int64>

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

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

Min value: 1

Body

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

Name

Description

offersContent*

Type: OfferContentDTO[]

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

Min items: 1

Max items: 100

OfferContentDTO

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

Name

Description

categoryId*

Type: integer<int32>

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

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

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

Min value: 1

offerId*

Type: string

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

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

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

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

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

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

Min length: 1

Max length: 255

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

parameterValues*

Type: ParameterValueDTO[]

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

С parameterValues обязательно передавайте categoryId — идентификатор категории на Маркете, к которой относятся указанные характеристики товара.

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

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

Вы можете указывать несколько значений одной характеристики при условии, что:

  • Тип характеристики — ENUM.
  • В ответе на запрос POST category/{categoryId}/parameters у данной характеристики поле multivalue имеет значение true.

Для этого в parameterValues передавайте каждое значение отдельно — несколько объектов с параметрами parameterId, valueId и value. Параметр parameterId должен быть одинаковым.

Min items: 1

Max items: 300

ParameterValueDTO

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

Вы можете указывать несколько значений одной характеристики при условии, что:

  • Тип характеристики — ENUM.
  • В ответе на запрос POST category/{categoryId}/parameters у данной характеристики поле multivalue имеет значение true.

Для этого в parameterValues передавайте каждое значение отдельно — несколько объектов с параметрами parameterId, valueId и value. Параметр parameterId должен быть одинаковым.

Name

Description

parameterId*

Type: integer<int64>

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

Min value: 1

unitId

Type: integer<int64>

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

value

Type: string

Значение.

valueId

Type: integer<int64>

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

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

Только для характеристик типа ENUM.

Responses

200 OK

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

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

Обязательно посмотрите детали ответа: status и перечень ошибок, если он есть.

Даже если ошибка допущена в характеристиках всего одного товара, никакие изменения из запроса в каталог не попадут.

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

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

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

Body

application/json
{
    "status": "OK",
    "results": [
        {
            "offerId": "string",
            "errors": [
                {
                    "type": "OFFER_NOT_FOUND",
                    "parameterId": 0,
                    "message": "string"
                }
            ],
            "warnings": [
                {
                    "type": "OFFER_NOT_FOUND",
                    "parameterId": 0,
                    "message": "string"
                }
            ]
        }
    ]
}

Name

Description

results

Type: UpdateOfferContentResultDTO[]

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

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

UpdateOfferContentResultDTO

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

Name

Description

offerId*

Type: string

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

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

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

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

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

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

Min length: 1

Max length: 255

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

errors

Type: OfferContentErrorDTO[]

Ошибки.

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

Min items: 1

warnings

Type: OfferContentErrorDTO[]

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

Информация в каталоге обновится.
Текст ошибки или предупреждения.

Min items: 1

ApiResponseStatusType

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

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

Type

Description

ApiResponseStatusType

Enum: OK, ERROR

OfferContentErrorDTO

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

Name

Description

message*

Type: string

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

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 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<int64>

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

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 category/{categoryId}/parameters.

Type

Description

OfferContentErrorType

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

400 Bad Request

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

ApiErrorDTO

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

Name

Description

code*

Type: string

Код ошибки.

message

Type: string

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

401 Unauthorized

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

403 Forbidden

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

404 Not Found

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

420 Method Failure

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

423 Locked

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR

500 Internal Server Error

Внутренняя ошибка сервера.

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

Min items: 1

status

Type: ApiResponseStatusType

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

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

Enum: OK, ERROR