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

4.4 KiB
Raw Permalink Blame History

Сценарии. Товары и разделы

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