- B1: Next.js 15 + Payload CMS 3.0 + Postgres 16, ESLint, Prettier, Husky, Vitest - B2: 9 collections, 6 globals, 12 Page Builder blocks, access control, slugify/revalidate hooks - B3: ezy.com.ua payments, Binotel HMAC webhook, leads API, Telegram bot, Resend email, rate limiting - B4: Tariffs collection with ezy API sync (cron + manual), dynamic pricing source-of-truth - B5: 13 test files covering unit libs and all API routes - B6: Dockerfile multi-stage, docker-compose.prod.yml, nginx.conf SSL, GitHub Actions CI/CD, health endpoint - B7: docs/admin-guide-ua.md (marketer guide), docs/deploy.md (VPS instructions), README quickstart Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
176 lines
9.1 KiB
Markdown
176 lines
9.1 KiB
Markdown
# Керівництво адміністратора — Shumiland
|
||
|
||
Цей посібник для маркетологів та контент-менеджерів. Технічних знань не потрібно.
|
||
|
||
---
|
||
|
||
## Вхід в адмінпанель
|
||
|
||
1. Відкрийте браузер і перейдіть за адресою: **https://shumiland.com.ua/admin**
|
||
2. Введіть email та пароль, які вам надали.
|
||
3. Натисніть **«Увійти»**.
|
||
|
||
> Якщо забули пароль — зверніться до розробника для скидання.
|
||
|
||
---
|
||
|
||
## Навігація
|
||
|
||
Ліве меню містить:
|
||
|
||
| Розділ | Призначення |
|
||
| --------------- | ------------------------------------ |
|
||
| **Сторінки** | Всі сторінки сайту |
|
||
| **Блог** | Статті та новини |
|
||
| **Тарифи** | Квитки (ціни тягнуться з каси ezy) |
|
||
| **Ліди** | Заявки від відвідувачів |
|
||
| **Замовлення** | Замовлення квитків |
|
||
| **Медіа** | Зображення та файли |
|
||
| **Globals** | Шапка, підвал, Головна, Налаштування |
|
||
| **Користувачі** | Облікові записи адмінпанелі |
|
||
|
||
---
|
||
|
||
## Сторінки
|
||
|
||
### Створення нової сторінки
|
||
|
||
1. Натисніть **«Сторінки»** → **«Створити»**.
|
||
2. Заповніть поле **«Заголовок»**.
|
||
3. Поле **«Slug»** (адреса сторінки) заповниться автоматично, наприклад `pro-park`.
|
||
- Можна відредагувати вручну — лише латинські літери, цифри та дефіси.
|
||
4. Перетягуйте блоки з панелі **«Блоки»** для побудови структури сторінки.
|
||
5. Натисніть **«Зберегти чернетку»** — сторінка не буде видна відвідувачам.
|
||
6. Коли готово — натисніть **«Опублікувати»**.
|
||
|
||
### Редагування існуючої сторінки
|
||
|
||
1. **Сторінки** → клік на назву.
|
||
2. Відредагуйте потрібні блоки.
|
||
3. **«Зберегти чернетку»** або **«Опублікувати»**.
|
||
|
||
### Приховати / знову показати сторінку
|
||
|
||
- Відкрийте сторінку → змініть **Статус** на **«Чернетка»** → **«Зберегти»**.
|
||
- Сторінка зникне з сайту, але не видалиться.
|
||
|
||
---
|
||
|
||
## Блоки сторінки (Page Builder)
|
||
|
||
Кожен блок можна додати кількаразово та перетягувати у будь-якому порядку.
|
||
|
||
| Блок | Що робить |
|
||
| ---------------- | ---------------------------------------------------------- |
|
||
| **Hero** | Банер з фоновим відео або зображенням + заголовок + кнопка |
|
||
| **Текст** | Форматований текст (жирний, курсив, списки, посилання) |
|
||
| **Зображення** | Одне зображення з підписом |
|
||
| **Відео** | Вбудоване відео (YouTube / Vimeo) |
|
||
| **Галерея** | Кілька фото у сітці |
|
||
| **Форма заявки** | Налаштовувана контактна форма |
|
||
| **Тарифи** | Блок вибору квитків (дані з каси ezy) |
|
||
| **CTA** | Заклик до дії — кнопка + підзаголовок |
|
||
| **Локації** | Картки локацій парку |
|
||
| **Переваги** | «Чому обирають Shumiland» |
|
||
| **Новини** | Останні N статей з блогу |
|
||
| **Підписка** | Форма підписки на розсилку |
|
||
| **Rich Text** | Повнофункціональний редактор Lexical |
|
||
|
||
---
|
||
|
||
## Медіа (завантаження фото)
|
||
|
||
1. **Медіа** → **«Завантажити»**.
|
||
2. Виберіть файл (JPG, PNG, WebP, SVG — до 20 МБ).
|
||
3. Обов'язково заповніть поле **«Alt текст»** — це важливо для SEO та доступності.
|
||
4. Натисніть **«Зберегти»**.
|
||
|
||
> Завантажені файли одразу доступні у всіх блоках при виборі зображення.
|
||
|
||
---
|
||
|
||
## Globals (шапка, підвал, головна)
|
||
|
||
**Globals** — це глобальні елементи сайту, які існують в одному екземплярі.
|
||
|
||
### Шапка (Header)
|
||
|
||
**Globals → Header**
|
||
|
||
- Змініть логотип або навігаційні посилання.
|
||
- Натисніть **«Зберегти»** — зміни з'являться на всіх сторінках одразу.
|
||
|
||
### Підвал (Footer)
|
||
|
||
**Globals → Footer**
|
||
|
||
- Контакти, посилання в соцмережах, копірайт.
|
||
|
||
### Головна сторінка
|
||
|
||
**Globals → HomePage**
|
||
|
||
- Керуйте блоками головної: hero, локації, переваги, новини, підписка.
|
||
|
||
### Налаштування сайту
|
||
|
||
**Globals → SiteSettings**
|
||
|
||
- GA4 ID (аналітика), Binotel ID (телефонія).
|
||
|
||
---
|
||
|
||
## Блог
|
||
|
||
### Створення статті
|
||
|
||
1. **Блог** → **«Створити»**.
|
||
2. Заповніть **«Заголовок»**, **«Slug»** (автозаповнення), **«Зображення-обкладинка»**.
|
||
3. Напишіть текст у редакторі.
|
||
4. Виберіть **Категорії** та **Теги**.
|
||
5. **«Опублікувати»** або **«Зберегти чернетку»**.
|
||
|
||
---
|
||
|
||
## Тарифи (квитки)
|
||
|
||
### Важливо
|
||
|
||
Ціни та назви тарифів **завжди беруться з каси ezy** автоматично. Ви не можете змінити ціну — тільки касир ezy.
|
||
|
||
### Що можна змінити в адмінпанелі
|
||
|
||
**Тарифи** → виберіть тариф:
|
||
|
||
| Поле | Опис |
|
||
| ----------------------- | -------------------------------------------- |
|
||
| **Відображувана назва** | Замінює стандартну назву з ezy (опціонально) |
|
||
| **Опис** | Короткий текст під назвою квитка |
|
||
| **Зображення** | Фото для картки тарифу |
|
||
| **Категорія** | Групування: динопарк / лабіринт / сімейний |
|
||
| **Сортування** | Порядок відображення (менше = вище) |
|
||
| **Видимий** | Приховати тариф з сайту (не видаляє з ezy) |
|
||
|
||
### Синхронізація тарифів з ezy
|
||
|
||
Синхронізація відбувається автоматично щогодини. Щоб оновити вручну:
|
||
|
||
1. **Тарифи** → кнопка **«Синхронізувати з ezy»** (якщо є) або зверніться до розробника.
|
||
|
||
---
|
||
|
||
## Ліди та замовлення
|
||
|
||
- **Ліди** — заявки з форм сайту (ім'я, телефон, джерело). Статуси: `new`, `contacted`, `closed`.
|
||
- **Замовлення** — записи після натискання «Оплатити». Статус `redirected_to_payment` означає, що людина перейшла на оплату. Фактичну оплату підтверджує каса ezy.
|
||
|
||
> Telegram-бот надсилає сповіщення одразу після появи нового ліду або замовлення.
|
||
|
||
---
|
||
|
||
## Швидкі підказки
|
||
|
||
- Завжди **публікуйте** сторінку, коли хочете показати її відвідувачам — «Зберегти чернетку» не публікує.
|
||
- Для видалення — лише якщо впевнені; краще використовуйте **приховування** (статус «Чернетка»).
|
||
- Alt текст у медіа — **обов'язково** для всіх зображень.
|
||
- Slug **не змінюйте** після публікації — це зламає посилання на сторінку.
|