4cms-catalog
Навигация по каталогу 4cms через аутентифицированный API — дерево рубрик (корни, дети, поддерево, поиск) и список брендов (чанками + поиск по имени/синонимам). Используй, когда нужно обойти/перечислить каталог витрины — «покажи рубрики сайта», «какие подрубрики у …», «дерево категорий», «список брендов», «найди рубрику/бренд по имени с деталями», «дай rubric_id поддерева». Для быстрого резолва одного имени/URL в id предпочтительнее `4cms-resolve` (публичный, без ключа). Вызывай через тул `Skill(4cms-catalog)`, не через `Read .../SKILL.md`.
How do I install this agent skill?
npx skills add https://page-craft.4partners.io --skill 4cms-catalogIs this agent skill safe to install?
No partner audit is available yet. Read the source before installing.
What does this agent skill do?
⚡ Этот скилл — для вызова через тул
Skill(4cms-catalog), не черезRead .../SKILL.md.
4cms Catalog
Обход и перечисление каталога витрины через аутентифицированный API api.4partners.io/v1: дерево рубрик и список брендов. Отдаёт реальные id/slug/link — для привязок блоков и ссылок.
Когда что брать. Нужно зарезолвить одно имя или URL в id — бери
4cms-resolve(публичные ручки, без ключа, мгновенно). Нужно перечислить/обойти (все подрубрики, дерево, список брендов) — это сюда.Граница доменов. Это 4cms — реальные сущности витрины. Создание/публикация страниц — PageCraft.
Предусловие
FOURCMS_API_KEY с доступом к каталогу (Skill(4cms-env)). Установка зависимостей (один раз): npm install --prefix .claude/skills/4cms-catalog
Рейт-лимит ~600 req/min. HTTP всегда
200— реальный статус в теле. При100002 «Доступ запрещён»чаще всего это лимит: разнеси запросы, повтори (api.jsделает 1 авто-ретрай). Поэтому обходы — по чанкам, лениво, а не «выкачать весь каталог разом».
Рубрики — rubrics.js
Дерево может быть на десятки тысяч узлов, поэтому целиком не тянем — ходим по уровням.
| Команда | Что делает |
|---|---|
| (без флагов) | Корневые рубрики |
--info <id> | Одна рубрика детально |
--children <id> | Прямые дети |
--subtree <id> [--depth N] | Всё поддерево (одним вызовом; для огромных категорий лучше --children по уровням) |
--find "<имя>" [--max-nodes 300] | Поиск по дереву обходом вширь с лимитом узлов; ставит truncated, если не обошёл всё |
Бренды — brands.js
Серверного поиска по брендам нет, а дефолтный размер страницы огромный (~10k) — поэтому пагинируем чанками 1000 через курсор next_page_key.
| Команда | Что делает |
|---|---|
--list [--limit 1000] [--next <key>] | Один чанк брендов + next_page_key для следующего |
--find "<имя>" [--max-pages 5] | Поиск по name/slug/синонимам (у брендов богатые синонимы, в т.ч. кириллица) постранично; ставит truncated |
--info <id> | Бренд детально (+ synonyms) |
Рубрика-бренд — rubric-brands.js
Связка «бренд внутри рубрики» (своя ссылка/SEO) — сущность за страницами вида «Nike в рубрике Кроссовки» и за кейсом «сравни бренды в категории X». Та же пагинация-капкан, что у брендов (дефолт 10k) → чанки 1000 + курсор.
| Команда | Что делает |
|---|---|
--list <rubricId> [--max-pages 5] | Бренды рубрики (чанками); ставит truncated |
--list <rubricId> --find "<имя>" | То же, но отфильтровать по имени/slug бренда |
--info <rubricId> <brandId> | Детали связки: link, product_count |
Выдача: { rubric_id, brand_id, brand_name, brand_slug, link, product_count }. link — ссылка на страницу бренда-в-рубрике на витрине.
Резолв готового URL связки (
/brand-{slug}/r-{slug}) — через4cms-resolve(url/info вернётpage_type: rubric_brand).
Формат
- Рубрика:
{ id, parent_id, name, slug, level, is_leaf, link, breadcrumbs_text, partner_tag }. - Бренд:
{ id, name, slug, link, is_active, product_count }(+synonymsу--info/--find). --findпомечает точное совпадениеexact_matchи ставит его первым (несколькоexact_match: true→ неоднозначность, уточни у пользователя).idидёт в привязки (rubric_id,brand_id— если источник их принимает),link— в ссылки.
⚠️
truncated: trueозначает «обошёл не весь каталог» → «не нашёл» ≠ «нет такого». Сузь запрос, подними лимит или используй4cms-resolve.
Если скрипт не отдаёт ожидаемое — проверь живой API
Открой Swagger UI 4cms: https://api.4partners.io/ → Authorize (заголовок X-Auth-Token = твой ключ) → нужный метод → Try it out. Это запрос к реальному API — сравни его ответ с тем, что вернул скрипт.
- HTTP всегда
200— смотри тело (status,status_code,message). 100002 «Доступ запрещён»чаще всего = рейт-лимит (~600 req/min): подожди ~минуту и повтори, а не считай, что прав нет.- Док (Notion): https://help.4partners.io/partner-site-api-v1
Что не делает
- Не резолвит одиночное имя/URL в id мгновенно — это
4cms-resolve. - Не работает с товарами — это
4cms-products. - Не настраивает
.env— это4cms-env.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/page-craft.4partners.io/4cms-catalog">View 4cms-catalog on skillZs</a>