Массовое изменение URL карточек товаров

Обновляет URL-идентификаторы карточек товаров. За один запрос можно передать до 100 карточек. Идентификатор карточки доступен в поле Variant.product_card_id. Старые ссылки на карточки продолжат работать.

Операция атомарная: если карточка не найдена, карточка повторяется в запросе несколько раз или один из slug некорректен, дублируется либо занят другой карточкой, изменения не применяются. В поле errors ответа перечислены невалидные элементы с идентификаторами карточек, кодами и описаниями ошибок.

Request

POST

https://api.kit.yandex.net/v1/products/cards/slugs/bulk_update

Body

application/json
{
  "items": [
    {
      "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "slug": "iphone-15-pro-black"
    }
  ]
}

Name

Description

items

Type: ProductCardSlugUpdate[]

Min items: 1

Max items: 100

Example
[
  {
    "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
    "slug": "iphone-15-pro-black"
  }
]

ProductCardID

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

Type: string<uuid>

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

ProductCardSlugUpdate

Name

Description

product_card_id

Type: ProductCardID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

slug

Type: string

URL-идентификатор карточки. Строчные латинские буквы, цифры, дефис и подчеркивание.

Min length: 1

Max length: 200

Pattern: ^[a-z0-9_-]+$

Example: iphone-15-pro-black

Example
{
  "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "slug": "iphone-15-pro-black"
}

Responses

204 No Content

URL-идентификаторы карточек обновлены.

400 Bad Request

Некорректный запрос, карточка не найдена либо slug занят другой карточкой. Для невалидных элементов в поле errors перечислены идентификаторы карточек, коды и описания ошибок.

Body

application/json
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000",
  "errors": [
    {
      "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
      "code": "VARIANT_NOT_FOUND",
      "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
    }
  ]
}
All of 2 types
  • Type: Error

    Example
    {
      "code": "VALIDATION_ERROR",
      "message": "Invalid input",
      "trace_id": "00000000000000000000000000000000"
    }
    
  • Type: object

    errors

    Type: BulkOperationItemError[]

    Example
    [
      {
        "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
        "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
        "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
        "code": "VARIANT_NOT_FOUND",
        "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
      }
    ]
    
    Example
    {
      "errors": [
        {
          "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
          "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
          "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
          "code": "VARIANT_NOT_FOUND",
          "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
        }
      ]
    }
    

Error

Name

Description

code

Type: string

Example: VALIDATION_ERROR

message

Type: string

Example: Invalid input

trace_id

Type: string

Уникальный идентификатор запроса для отладки.

Example: 00000000000000000000000000000000

Example
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000"
}

VariantID

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

Type: string<uuid>

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

WarehouseID

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

Type: string<uuid>

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

BulkOperationItemError

Ошибка обработки одного элемента массовой операции. Для обновления slug передается product_card_id, для обновления цен и остатков — variant_id.

Name

Description

code

Type: string

Код ошибки элемента:

  • VARIANT_NOT_FOUND — товар не найден.
  • WAREHOUSE_NOT_FOUND — склад не найден.
  • VARIANT_ARCHIVED — товар архивирован.
  • WAREHOUSE_ARCHIVED — склад архивирован.
  • DUPLICATE_ITEM — элемент с таким идентификатором передан более одного раза.
  • INVALID_QUANTITY — некорректное количество.
  • INVALID_PRICE — некорректная цена.
  • PRODUCT_CARD_NOT_FOUND — карточка товара не найдена.
  • DUPLICATE_SLUG — ссылка передана более одного раза.
  • INVALID_SLUG — некорректная ссылка.
  • SLUG_ALREADY_TAKEN — ссылка занята другой карточкой.

Example: VARIANT_NOT_FOUND

message

Type: string

Человекочитаемое описание ошибки.

Example: Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден

product_card_id

Type: ProductCardID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

variant_id

Type: VariantID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

warehouse_id

Type: WarehouseID

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

Example: 019b21d9-c5d9-777d-80bd-d67c664bc6d9

Example
{
  "product_card_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "variant_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "warehouse_id": "019b21d9-c5d9-777d-80bd-d67c664bc6d9",
  "code": "VARIANT_NOT_FOUND",
  "message": "Товар с id 019b21d9-c5d9-777d-80bd-d67c664bc6d9 не найден"
}

401 Unauthorized

Не авторизован.

Body

application/json
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000"
}

Name

Description

code

Type: string

Example: VALIDATION_ERROR

message

Type: string

Example: Invalid input

trace_id

Type: string

Уникальный идентификатор запроса для отладки.

Example: 00000000000000000000000000000000

500 Internal Server Error

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

Body

application/json
{
  "code": "VALIDATION_ERROR",
  "message": "Invalid input",
  "trace_id": "00000000000000000000000000000000"
}

Name

Description

code

Type: string

Example: VALIDATION_ERROR

message

Type: string

Example: Invalid input

trace_id

Type: string

Уникальный идентификатор запроса для отладки.

Example: 00000000000000000000000000000000