Для AI-агентов: markdown этой страницы — /docs-content/entities/catalog-skus/update.md индекс документации — /llms.txt

Изменить головной товар

PATCH /v1/catalog-skus/:id

Изменяет существующий головной товар. Поля передаются плоско в корне JSON. Передавайте только изменяемые поля — остальные сохраняют текущие значения.

Параметры

Параметр Тип Обяз. Описание
id (path) number да Идентификатор головного товара. Список: GET /v1/catalog-skus

Поля запроса (body)

Поле Тип Обяз. Описание
name string нет Название головного товара
active boolean нет Активен ли товар
iblockSectionId number нет ID основного раздела каталога. Список: GET /v1/catalog-sections
iblockSection number[] нет Массив ID всех разделов, к которым привязан товар. Заменяет прежний набор целиком
code string нет Символьный код товара
xmlId string нет Внешний код
sort number нет Порядок сортировки
dateActiveFrom datetime нет Дата начала активности
dateActiveTo datetime нет Дата окончания активности
previewText string нет Текст анонса
previewTextType string нет Формат текста анонса: text или html
detailText string нет Подробное описание
detailTextType string нет Формат подробного описания: text или html
previewPicture object нет Картинка анонса: { "fileData": ["имя.png", "<base64>"] }. { "remove": "Y" } удаляет картинку
detailPicture object нет Детальная картинка, тот же формат
propertyNNN object нет Значение свойства каталога объектом { "value": … }, где NNN — id свойства из GET /v1/catalog-product-properties: "property301": { "value": "лён" }

Полный список полей — в GET /v1/catalog-skus/fields.

Тело должно содержать хотя бы одно записываемое поле. Пустой PATCH ({}) отклоняется с 400 EMPTY_UPDATE_BODY, а PATCH без единого распознанного записываемого поля — с 400 NO_RECOGNIZED_UPDATE_FIELDS. Сообщение второй ошибки перечисляет записываемые поля.

id передаётся в пути, в теле его передавать нельзя. Поля type, available, bundle, createdBy и modifiedBy заполняет Битрикс24, а iblockId задаётся только при создании — при записи все они отвечают 400 READONLY_FIELD.

Примеры

curl — личный ключ

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/catalog-skus/7203" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Футболка базовая, хлопок"
  }'

curl — OAuth-приложение

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/catalog-skus/7203" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Футболка базовая, хлопок"
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-skus/7203', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Футболка базовая, хлопок',
  }),
})

const { success, data } = await res.json()
console.log('Новое название:', data.name)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-skus/7203', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Футболка базовая, хлопок',
  }),
})

const { success, data } = await res.json()

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data object Полный объект обновлённого головного товара. Набор полей — как у GET /v1/catalog-skus/:id

Пример ответа

Показаны основные поля, свойства propertyNNN опущены.

JSON
{
  "success": true,
  "data": {
    "id": 7203,
    "iblockId": 25,
    "iblockSectionId": null,
    "iblockSection": null,
    "name": "Футболка базовая, хлопок",
    "type": 3,
    "active": true,
    "available": true,
    "bundle": false,
    "code": null,
    "xmlId": "7203",
    "sort": 500,
    "createdBy": 1295,
    "modifiedBy": 1295,
    "dateCreate": "2026-10-08T18:45:34.000Z",
    "timestampX": "2026-10-08T18:46:21.000Z"
  }
}

Пример ответа при ошибке

404 — головного товара с указанным id не существует:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "sku does not exist."
  }
}

Ошибки

HTTP Код Описание
404 ENTITY_NOT_FOUND Товара с указанным id не существует (sku does not exist.)
404 ENTITY_NOT_FOUND id принадлежит обычному товару (catalogSku <id> not found). Изменение при этом записано — см. «Известные особенности»
400 EMPTY_UPDATE_BODY Тело запроса пустое — передайте хотя бы одно поле
400 NO_RECOGNIZED_UPDATE_FIELDS В теле нет ни одного распознанного записываемого поля. Сообщение перечисляет записываемые поля
400 READONLY_FIELD В теле передано поле только для чтения: id, type, iblockId, available, bundle, createdBy, modifiedBy
403 SCOPE_DENIED Ключу не хватает скоупа catalog
401 MISSING_API_KEY Не передан заголовок X-Api-Key

Полный список общих ошибок API — Ошибки.

Известные особенности

Свойство каталога передаётся объектом. PATCH со скалярным значением свойства отвечает 200, но значение не записывает: строковое свойство при этом очищается, флажок остаётся прежним. Передавайте { "value": … } — так меняются и строка, и флажок "Y"/"N".

Метод не проверяет, что по id лежит головной товар. С id обычного товара вызов изменяет этот товар и отвечает 404 ENTITY_NOT_FOUND с сообщением catalogSku <id> not found — ответ 404 здесь не означает, что запись не прошла. Перед изменением сверьте запись: GET /v1/catalog-skus/:id для id, который не принадлежит головному товару, отвечает 404 ENTITY_NOT_FOUND.

Смотрите также