# Сценарии. Товары и разделы Как добавить или изменить товар и раздел каталога. Два пути в зависимости от доступа: через REST API и через код (D7). Модель данных — [[Инфоблоки и каталог (apelsincom)]]. > [!info] Про админ-панель > Этот проект сопровождается **без админки** — только по FTP/коду и через REST API. Поэтому пошаговых сценариев «через админку» здесь нет. Всё, что делается кнопками в `/bitrix/admin/`, ниже описано на уровне API и кода. Что и где хранится в БД (и требует доступа в админку для проверки) — помечено в [[Источники и метод проверки (apelsincom)]]. > [!warning] Осторожно с символьным кодом > Символьный код (латиницей) обязателен у товара и раздела — он идёт в ЧПУ-адрес. Смена кода у раздела/товара с уже проиндексированными адресами ломает ссылки (старые → 404). Меняете — настройте редиректы. ## Вариант A. Через REST API Модуль `richcode.api` умеет создавать и править элементы каталога, разделы, остатки и заказы. Полный справочник действий и примеры — [[REST API — методы и примеры (richcode.api)]]. - **Каталог (инфоблок 2) — только через `sale/product`:** `add`, `update`, `delete`, `get`, `list`, а также `section.add`, `section.list`. Контроллер `iblock/element` каталог не обслуживает (вернёт ошибку). - Остатки/склады: `sale/store` — `set.amount`. - Обычные (не каталог) инфоблоки: `iblock/element` — те же действия. - Нужны: включённый API, путь (`/api/`), токен пользователя (`UF_API_TOKEN`) с правами на инфоблок 2 и членством в заданной группе. Пример — создать товар в каталоге (инфоблок 2), тело обёрнуто в `fields`: ```bash curl -X POST "https://<домен>/api/sale//product/add" \ -H "Content-Type: application/json" \ -d '{"fields":{"IBLOCK_ID":2,"NAME":"Кроссовки Модель X","CODE":"krossovki-model-x","ACTIVE":"Y","PRICE":4990,"CURRENCY":"RUB","QUANTITY":10,"PROPERTY_ARTNUMBER":"ART-001"}}' ``` Полные схемы полей (`product/add`, `order/create`, `section.add`) — [[REST API — методы и примеры (richcode.api)#Точные схемы (проверено по моделям)]]. > [!warning] Права API = права пользователя-токена > Через API вы действуете от имени пользователя, которому принадлежит токен. Дайте ему ровно те права, что нужны (доступ к инфоблоку 2, к заказам), не больше. См. [[Информационная безопасность (apelsincom)]]. ## Вариант B. Через код (D7) Разовые массовые операции можно делать скриптом на API ядра Битрикс (D7): `CIBlockElement` / `\Bitrix\Iblock\…`. Скрипт кладут вне ядра, номер инфоблока — **2**. Обязательно бэкап перед массовой правкой. ## После любых изменений - Проверьте, что заполнен символьный код и товар активен. - Сбросьте кэш каталога — он кэшируется надолго ([[Кэширование и обслуживание (apelsincom)]]). - Откройте ЧПУ-адрес и карточку: фото, свойства, кнопка «Купить». ## См. также - [[Инфоблоки и каталог (apelsincom)]] - [[REST API (richcode.api)]] - [[Маршрутизация и ЧПУ (apelsincom)]]