# Товары

Управление товарами CRM-каталога: создание, получение, обновление, удаление, поиск и агрегация. Товар описывает позицию каталога — название, цену, валюту, раздел и пользовательские свойства.

Битрикс24 API: `crm.product.*`
Скоуп: `crm`

**Методы `/v1/products` устарели.** Для новых интеграций используйте [Товары каталога](/docs/entities/catalog-products) — модель с остатками, ценами и вариациями.

## Операции

- [Создать товар](./products/create.md) — `POST /v1/products`
- [Список товаров](./products/list.md) — `GET /v1/products`
- [Получить товар](./products/get.md) — `GET /v1/products/:id`
- [Обновить товар](./products/update.md) — `PATCH /v1/products/:id`
- [Удалить товар](./products/delete.md) — `DELETE /v1/products/:id`
- [Поиск товаров](./products/search.md) — `POST /v1/products/search`
- [Поля товара](./products/fields.md) — `GET /v1/products/fields`
- [Агрегация товаров](./products/aggregate.md) — `POST /v1/products/aggregate`

## Ключевые поля

| Поле | Описание |
|------|---------|
| `name` | Название товара. Отдельного поля `title` у товара нет |
| `price` | Цена товара. Валюта — в `currency` |
| `currency` | Валюта цены. Список: `GET /v1/currencies` |
| `active` | Активен ли товар |
| `sectionId` | Раздел каталога. Список: `GET /v1/product-sections` |
| `catalogId` | ID каталога. Список: `GET /v1/catalogs` |
| `measure` | ID единицы измерения |

Полный список полей — [`GET /v1/products/fields`](./products/fields.md).

## Что нужно знать перед работой

1. **Это те же товары, что и в каталоге.** Товар с тем же `id` доступен через [`GET /v1/catalog-products`](/docs/entities/catalog-products), где у него больше полей — остатки, склад, вариации. `catalogId` здесь соответствует `iblockId` там.
2. **Тело запроса плоское.** При создании и обновлении передавайте поля прямо в корне JSON: `{"name": "...", "price": 100}`. Обёртка `fields` не нужна.
3. **Для создания нужно только `name`.** Без названия запрос возвращает `422 BITRIX_ERROR`. Остальные поля опциональны: `catalogId` по умолчанию равен каталогу CRM портала, `code` формируется из названия.
4. **Поля ответа в camelCase.** Соответствие исходным именам Битрикс24 — в [Полях товара](./products/fields.md).
5. **Пользовательские свойства товара.** Поля вида `PROPERTY_<N>` приходят в ответах `get` и `fields` — это свойства, настроенные для каталога на портале. В [списке](./products/list.md) и [поиске](./products/search.md) свойство приходит, когда названо в `select` своим именем: `?select=id,name,PROPERTY_301`. У свойств-списков поле возвращает только ID выбранного элемента, без названия. Название элемента отдаёт [`GET /v1/catalog-products`](/docs/entities/catalog-products) — там у того же свойства приходит и ID, и текст значения.
6. **Доступ из веб-интерфейса.** По `catalogId` и `id` товар открывается в магазине портала по адресу `https://<портал>.bitrix24.ru/shop/catalog/<catalogId>/product/<id>/`. Доступ ограничен правами сотрудника.

## Типичный сценарий

1. Посмотреть разделы каталога: [`GET /v1/product-sections`](/docs/entities/product-sections).
2. Список товаров раздела: [`GET /v1/products?filter[sectionId]=19`](./products/list.md).
3. Создать новый или обновить существующий: [`POST /v1/products`](./products/create.md) / [`PATCH /v1/products/:id`](./products/update.md).

## Лимиты

| Лимит | Значение |
|-------|----------|
| Максимум записей на запрос | 5000 (`limit ≤ 5000`) |
| Авто-пагинация | включается при `limit > 50` |
| `offset` на больших выборках | рекомендуется `limit ≤ 500` при `offset ≥ 2500` |
| Batch-запросы | до 50 операций в [`POST /v1/batch`](/docs/batch) |
| Rate limit | общий для API Вайбкод — см. [Лимиты и оптимизация](/docs/optimization) |

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

- [Entity API](/docs/entity-api)
- [Синтаксис фильтрации](/docs/filtering)
- [Batch](/docs/batch)
- [Справочник API](/docs/api-reference)
- [Разделы товаров](/docs/entities/product-sections)
- [Товары каталога](/docs/entities/catalog-products)
