Files
obsidian/Магазин обуви (apelsincom)/Сценарии. Товары и разделы.md
2026-07-06 13:05:56 +03:00

41 lines
4.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Сценарии. Товары и разделы
Как добавить или изменить товар и раздел каталога. Два пути в зависимости от доступа: через 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/<TOKEN>/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)]]