4.4 KiB
Сценарии. Товары и разделы
Как добавить или изменить товар и раздел каталога. Два пути в зависимости от доступа: через 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:
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)