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

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

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

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

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

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

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

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

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[]

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

Max items: 100

Min items: 1

OfferContentDTO

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

Name

Description

categoryId*

Type: integer<int32>

Идентификатор категории на Маркете. Чтобы узнать идентификатор категории, к которой относится товар, воспользуйтесь запросом POST categories/tree.

Min value: 1

offerId*

Type: string

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

Правила использования 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 обязательно передавайте marketCategoryId — идентификатор категории на Маркете, к которой относятся указанные характеристики товара.

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

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

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

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

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

Max items: 300

Min items: 1

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[]

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

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR

UpdateOfferContentResultDTO

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

Name

Description

offerId*

Type: string

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

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

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

  • SKU товара нельзя менять — можно только удалить товар и добавить заново с новым SKU.

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

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

Min length: 1

Max length: 255

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

errors

Type: OfferContentErrorDTO[]

Ошибки — информация в каталоге не обновится.
Текст ошибки.

warnings

Type: OfferContentErrorDTO[]

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

ApiResponseStatusType

Тип ответа.

Type

Description

ApiResponseStatusType

Enum: OK, ERROR

OfferContentErrorDTO

Текст ошибки.

Name

Description

message*

Type: string

Текст ошибки.

type*

Type: OfferContentErrorType

Типы ошибок:

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

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

parameterId

Type: integer<int64>

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

OfferContentErrorType

Типы ошибок:

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

Type

Description

OfferContentErrorType

Enum: OFFER_NOT_FOUND, UNKNOWN_CATEGORY, CATEGORY_MISMATCH, INVALID_CATEGORY, UNKNOWN_PARAMETER, UNEXPECTED_BOOLEAN_VALUE, NUMBER_FORMAT, VALUE_BLANK, 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[]

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

status

Type: ApiResponseStatusType

Тип ответа.

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[]

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR

403 Forbidden

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR

404 Not Found

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR

420 Method Failure

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR

423 Locked

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR

500 Internal Server Error

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

Body

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

Name

Description

errors

Type: ApiErrorDTO[]

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

status

Type: ApiResponseStatusType

Тип ответа.

Enum: OK, ERROR