До нас звернулися із запитом: «Потрібна адмінка, де менеджер додає товари, а на сайті з'являються картки з фотографіями, категоріями та характеристиками. Без адмінки довелося б писати REST API з нуля». Cockpit CMS вирішує це за годину: створюєте колекцію «Товари» з полями (назва, ціна, зображення), зв'язком із категоріями через collectionlink і репітером для характеристик. Готовий JSON-ендпоінт з'являється одразу — фронтенд забирає дані через GET-запит. Ми використовуємо Cockpit CMS у 50+ headless-проектах — це headless-система, що дає гнучкість через Collections та Singletons. За 4–8 годин налаштовуємо структуру, поля, зв'язки та права доступу, а редактор отримує інтуїтивний інтерфейс без зайвого коду. Наш досвід: 5 років на ринку, понад 50 проектів на Cockpit. Порівняно з розробкою кастомної адмінки з нуля, ви економите до 60% часу та до 50% бюджету.
Які проблеми вирішуємо з колекціями?
Типовий біль — ручне створення API для керування контентом. Cockpit автоматично генерує REST-ендпоінти для кожної колекції. Друга проблема — складність зв'язків між сутностями. У Cockpit зв'язки налаштовуються через тип поля collectionlink без SQL-запитів. Третя — необхідність розмежування прав доступу. Cockpit підтримує ролі: адміністратор, редактор, контент-менеджер. У 80% проектів ми використовуємо зв'язки між 3–5 колекціями.
Як створити колекцію через API?
Створювати колекції можна через Admin UI або програмно — через REST API. Ось приклад для колекції «Товари»:
$collection = [
'name' => 'products',
'label' => 'Товари',
'fields' => [
['name' => 'title', 'type' => 'text', 'required' => true, 'label' => 'Назва'],
['name' => 'slug', 'type' => 'text', 'required' => true, 'slug' => true],
['name' => 'description', 'type' => 'wysiwyg', 'label' => 'Опис'],
['name' => 'price', 'type' => 'number', 'label' => 'Ціна'],
['name' => 'image', 'type' => 'asset', 'label' => 'Фото'],
['name' => 'gallery', 'type' => 'gallery', 'label' => 'Галерея'],
['name' => 'category', 'type' => 'collectionlink', 'link' => 'categories'],
['name' => 'published', 'type' => 'boolean', 'default' => false],
['name' => 'publishedAt', 'type' => 'date'],
],
'sortable' => true,
'in_menu' => true,
];
Після цього POST-запитом створюється колекція в Cockpit. Одразу доступні записи через API або адмінку. Весь процес займає 5–10 хвилин. Як зазначено в офіційній документації Cockpit CMS, API повністю RESTful.
Типи полів Cockpit
Cockpit підтримує 20+ типів полів. Ось основні:
| Тип | Опис | Приклад використання |
|---|---|---|
text |
Рядок до 255 символів | Назва товару |
textarea |
Багаторядковий текст | Опис статті |
wysiwyg |
Rich text редактор (TinyMCE) | Контент посту |
markdown |
Markdown | Технічна документація |
number |
Число (int/float) | Ціна, вага |
boolean |
Перемикач так/ні | Опубліковано |
select |
Випадаючий список | Категорія товару |
asset |
Одиночний файл/зображення | Головне фото |
gallery |
Галерея зображень | Фото товару |
date / time |
Дата/час | Дата публікації |
color |
Колірний пікер | Колір фону |
collectionlink |
Посилання на запис іншої колекції | Пов'язаний пост |
repeater |
Повторювані групи полів | Блоки переваг |
layout |
Конструктор блоків (аналог Page Builder) | Головна сторінка |
object |
JSON-об'єкт для довільних даних | Налаштування інтеграції |
tags |
Теги (масив рядків) | Мітки для пошуку |
set |
Група полів для повторного використання | Контактні дані |
Ви можете комбінувати поля в будь-якому порядку. Для зв'язків між колекціями використовуємо collectionlink — він автоматично підтягує записи з пов'язаної колекції.
Як налаштувати зв'язки між колекціями?
Зв'язки між колекціями налаштовуються через тип collectionlink. Вкажіть цільову колекцію та можливість вибору кількох записів. Cockpit автоматично формує випадаючий список з пошуком. Наприклад, для товару можна вибрати категорію з колекції categories. Це аналогічно зовнішньому ключу в реляційних БД, але без SQL.
Колекція vs Синглтон: коли що використовувати?
| Критерій | Колекція | Синглтон |
|---|---|---|
| Кількість записів | Багато (сотні/тисячі) | Одна |
| Приклад | Статті, товари, користувачі | Налаштування сайту, SEO, контакти |
| API ендпоінт | /api/collections/items/{id} |
/api/singletons/{name} |
| Права доступу | По записах | На рівні синглтона |
Синглтон зручний для налаштувань: SEO-теги, контакти, соцмережі, банери. Приклад структури для сторінки «Головна»:
{
"fields": [
{
"name": "hero_title",
"type": "text"
},
{
"name": "hero_subtitle",
"type": "textarea"
},
{
"name": "hero_image",
"type": "asset"
},
{
"name": "featured_posts",
"type": "collectionlink",
"link": "posts",
"multiple": true
},
{
"name": "seo_title",
"type": "text"
},
{
"name": "seo_description",
"type": "textarea"
}
]
}Редактор заповнює поля, а фронтенд отримує готовий JSON через API. Жодної зайвої логіки.
Використання Repeater для блоків контенту
Repeater дозволяє додавати довільну кількість повторюваних блоків. Наприклад, блок «Переваги»:
{
"name": "features",
"type": "repeater",
"label": "Переваги",
"fields": [
{
"name": "icon",
"type": "asset"
},
{
"name": "title",
"type": "text"
},
{
"name": "description",
"type": "textarea"
}
]
}В адмінці редактор бачить кнопку «Додати блок» — кожен новий блок підтягує ті ж поля. Це зручніше, ніж зберігати HTML у текстовому полі. Ми використовуємо repeater у 90% проектів.
Що входить у роботу
- Аналіз структури даних — визначаємо колекції, зв'язки та поля під ваші бізнес-сутності (2–4 години).
- Створення схем — налаштування колекцій, синглтонів та їх полів через Admin UI або API (4–8 годин).
- Налаштування прав доступу — розмежування ролей (адміністратор, редактор, контент-менеджер) (1–2 години).
- Документація API — опис ендпоінтів для фронтенду або інтеграцій (2–4 години).
- Навчання команди — показуємо, як працювати з адмінкою, додавати записи та блоки (2–4 години).
- Підтримка після запуску — виправляємо помилки, допрацьовуємо поля за потреби (до 7 днів).
Як ми працюємо
- Аналітика — вивчаємо структуру контенту, збираємо вимоги.
- Проектування — створюємо ER-діаграму колекцій та зв'язків.
- Реалізація — налаштовуємо Cockpit, пишемо кастомні поля/валідатори за потреби.
- Тестування — перевіряємо сценарії: створення, редагування, видалення записів, права доступу.
- Деплой — розгортаємо на сервері, налаштовуємо бекапи.
Терміни: від 1 дня до 2 тижнів, залежно від складності. Вартість розраховується індивідуально. Отримайте консультацію — наші інженери допоможуть оцінити проект та терміни. Замовте налаштування Cockpit CMS, отримайте готову адмінку без зайвого коду. Гарантуємо результат вчасно.







