> Усі статті WIKI Helomi: /wiki/llms.txt

# ШІ Цінайда — ціни на всіх майданчиках однією командою

Цінайда — ШІ-програма, яка тримає ціни так, щоб «маржа без комісії» на кожному товарі й у середньому по кожному каналу була не нижчою за ціль (типово 100 %). Вона рахує по кожному оголошенню Prom, Rozetka і сайтів собівартість, комісію, яку майданчик справді нарахував по угодах, і мінімальну ціну для цілі, розкладає товари в кошики «Підняти», «Не чіпати» і «Увага» та складає план «було → стане». Ціни на майданчиках міняються лише тоді, коли людина натискає «Застосувати»; кожна зміна перевіряється, перечитується з майданчика, пишеться в журнал і відкочується одним натиском.

## Можливості
- Ряд показників: середня маржа без комісії по кожному каналу (зважена продажами), «зараз → після плану», курс для цін і його зміна до курсу закупок, скільки товарів нижче цілі й без собівартості.
- Таблиця товар × канал: ціна, собівартість, комісія, маржа без комісії, мінімальна ціна для цілі, продажі, порада, поле «нова ціна».
- Три кошики порад: «Підняти» (нижче цілі), «Не чіпати» (ціль досягнута), «Увага» (собівартості нема, курс з'їв маржу, «не чіпати» нижче цілі).
- Одна команда — план «було → стане»: «нижче цілі → мінімум», «+N %», «одна ціна всюди» для товару, або ціни, вписані в таблиці.
- «Застосувати»: Prom і Rozetka — через їхній API з перевіркою, що на майданчику зараз саме «було», і перечитуванням після; сайти — через фід (сайт читає ціну сам).
- «Відкотити» — зворотний план: оголошення, що змінились, повертаються на «було».
- Своя ціль на позицію: інша маржа, мінімум, максимум, «не чіпати».
- Ним керують інші ШІ (Ломі, Остап) інструментами `ai_tsinaida_*`; застосувати й відкотити — лише після «Підтвердити» людини.

## 1. Картка в «Інтеграції → ШІ»
Картка «Цінайда» показує, чи працює вона, і веде до неї: ім'я, роль, пігулки стану й виду «Програма».

1. Перемикач «Увімкнено» — вимкнена Цінайда показує таблицю, але план, курс і розсилка не працюють, інструменти інших ШІ відповідають «вимкнено».
2. «Відкрити» — вікно «Ціни» (розділ 2).
3. «WIKI» — ця стаття шторкою.

Цінайди ще нема в організації — «Інтеграції → ШІ → Цінайда → Додати». Хто бачить вікно — «Налаштування → Люди → Доступи → ШІ Цінайда»: собівартість і маржа — як «Фінанси», тому типово вікно бачить лише адміністратор.

## 2. Вікно «Ціни»: де ми нижче цілі
Вікно — робоче місце Цінайди на весь екран: бокове меню згортається в рейку ☰, розділи — на нижню панель швидкого доступу. Угорі — показники по каналах, курс і ціль, нижче — кошики, канал, пошук і таблиця.

1. Подивіться показники: маржа без комісії по кожному каналу і скільки оголошень нижче цілі. Коли є чернетка плану, поруч видно, якою маржа стане після нього.
2. Натисніть кошик «Підняти» — лише оголошення нижче цілі, спершу ті, де підняття дасть найбільше (з продажами за 30 днів).
3. Виберіть канал (Prom, Rozetka, сайт) або знайдіть товар за назвою, артикулом чи id оголошення.
4. У рядку видно, звідки цифри: «Собівартість» — зі складу або «сьогодні» (за курсом для цін), «Комісія» — наведіть, щоб побачити, чи вона нарахована по угодах товару, середня по каналу, з правила каналу чи типова.

На телефоні рядки стають картками з підписами, кнопки — на всю ширину.

> [!TIP]
> «Увага» — те, що треба вирішити людині: дописати собівартість у складі, подивитись, чи не з'їв курс маржу, чи зняти «не чіпати».

## 3. Скласти план однією командою
План — це чернетка «було → стане» по кожному оголошенню з причиною; поки його не застосували, на майданчиках нічого не міняється.

1. Виберіть команду:
   - «Скласти план: нижче цілі → мінімум» (чорна) — усі оголошення кошика «Підняти» (або позначені галочками) — до мінімальної ціни для цілі, округленої до «гарної»;
   - «+N %» — змінити ціну позначених або всіх видимих на N відсотків (мінус — знизити);
   - «Одна ціна всюди» — позначте товар галочкою, впишіть ціну — вона стане однаковою на всіх його каналах;
   - впишіть нові ціни в колонку «Нова ціна» — кнопка стає «Скласти план · N».
2. Шторка «План» показує рядки «було → стане», маржу до і після, причину; «Не в плані» — що пропущено й чому (канал вручну, «не чіпати», нема собівартості, зміна менша за найменший крок).
3. Не те — «Скасувати план» або складіть інший: нова команда замінює чернетку.

> [!NOTE]
> Команда «до мінімуму» лише піднімає ціни («Не опускати нижче поточної»), не відходить від поточної більше ніж на «Найбільший крок за раз» і пропускає зміни, менші за «Найменший крок». Ці межі — у «Налаштуваннях».

## 4. Застосувати план і відкотити
«Застосувати» — чорна кнопка шторки плану (і «Застосувати план · N» у вікні, коли чернетка є). Застосовує адміністратор або хто має доступ «Прайс-лист».

1. Натисніть «Застосувати» і підтвердьте. Поки триває — у кнопці спінер, повторний натиск нічого не шле.
2. Для кожного оголошення Цінайда перевіряє, що на майданчику зараз саме «було» (інакше рядок — «хтось змінив; складіть план заново»), шле нову ціну і перечитує майданчик.
3. Тост каже підсумок: «Ціни змінено: N оголош.» або скільки з помилками; «Показати» відкриває план. У кожному рядку — стан («стоїть», «помилка», «пропущено») і відповідь майданчика.
4. Ціна позиції в «Прайс-листі» стає новою, запис — у журналі публікацій і в «Журналі» Цінайди з підписом, хто застосував.
5. «Відкотити» в шторці застосованого плану повертає «було» на оголошеннях, що змінились (теж з підтвердженням і тією самою перевіркою).

| Канал | Як змінюється ціна |
| --- | --- |
| Prom | через API Prom, перевірка «було» і перечитування |
| Rozetka (і акаунти Rozetka) | через API продавця Rozetka, залишок лишається як є |
| Сайти | ціна позиції прайс-листа; сайт читає фід сам (до 5 хв) |
| Епіцентр, Allo, MAUDAU, Kasta, OLX | поки вручну — у таблиці видно, у план не потрапляють |

> [!WARNING]
> Помилка одного оголошення не зупиняє решту плану. Рядок із помилкою лишається з причиною — виправте (ключ майданчика, оголошення видалене) і складіть план заново.

## 5. Курс для цін і собівартість сьогодні
Курс долара для цін — «Оновити курс» у показнику «Курс для цін» бере офіційний курс НБУ на сьогодні; руками — «Налаштування → Курс для цін → Звідки курс долара → руками». Поруч видно, на скільки відсотків курс вищий за середній курс останніх закупок.

1. Коли курс є і ввімкнено «Рахувати собівартість за курсом сьогодні», собівартість = закупка в доларах з останньої закупівлі × курс для цін + доставка й документи на одиницю.
2. Якщо так собівартість вийшла більшою, ніж у складі, рядок потрапляє в «Увага» з порадою «курс з'їв маржу».
3. Курсу нема або закупки з доларами нема — собівартість береться зі складу.

## 6. Своя ціль на товар
Позиція прайс-листа (товар на одному каналі) може мати свою ціль: іншу маржу, мінімальну й максимальну ціну, «не чіпати» і нотатку. Мінімум таблиці не виходить за ці межі, а «не чіпати» не пускає позицію в план.

1. Натисніть назву товару в рядку таблиці — відкриється шторка «Ціль».
2. Впишіть свою маржу, «Не нижче» і «Не вище» або ввімкніть «Не чіпати»; порожнє поле — як у «Налаштуваннях».
3. Натисніть «Зберегти» — рядок перерахується, у підписі з'явиться «своя ціль N %».

## 7. Налаштування
Відкриваються тут же, у вікні: кружечок «Налаштування» праворуч угорі — робоче місце ховається, «Назад до роботи» повертає. Чотири вкладки: Налаштування · API · Огляд · Журнал; під кожним полем — рядок-підказка.

| Група | Поле | Що робить |
| --- | --- | --- |
| Характер | Інструкція для ШІ, Тон, Звертання, Мова, Моє доповнення | Як Цінайда пояснює інших ШІ й вам |
| Ціль і формула | Ціль: маржа без комісії, % (100) | Мінімальна ціна — щоб після комісії лишалось стільки до собівартості |
| Ціль і формула | Комісія для цілі (нарахована по угодах) | Або «з правила каналу» — відсоток із «Фінанси → Канали» |
| Ціль і формула | Комісію рахувати за, днів (90); Комісія, коли даних нема, % (15) | Період угод для частки комісії; запасна частка |
| Ціль і формула | Продажі для «середньої по каналу», днів (30) | Вага середньої маржі каналу — як картка каналу на дашборді Марії |
| Ціль і формула | Округлення нової ціни | …9 до 1 000 і …99 від 1 000; або завжди …9, …99, ціла гривня |
| Ціль і формула | Найбільший крок за раз, % (30); Найменший крок, % (1) | Межі однієї зміни |
| Ціль і формула | Не опускати нижче поточної; Канали, яких не чіпати | «До мінімуму» лише піднімає; канали через кому не йдуть у план |
| Курс для цін | Звідки курс долара (НБУ / руками); Запас до курсу, %; Рахувати собівартість за курсом сьогодні | Курс для цін = курс × (1 + запас) |
| Що показувати (для мене) | Кошик і канал при відкритті, рядків за раз, колонки таблиці | Вигляд вікна — кожен під себе |

Нижче — «Доступи й ліміти» (адміністратор); «API» — «Вхід для ШІ» і токени; «Огляд» — дій сьогодні; «Журнал» — плани, застосування, відкати, курс.

## 8. Картка каналу на дашборді Марії
Комісія на картці каналу дашборду Марії тепер — нарахована майданчиком по угодах за період (мінус сторно), а не поповнення кабінету. «Маржа без комісії» каналу = (маржа − нарахована комісія) ÷ собівартість — та сама, на яку дивиться Цінайда. Поповнення кабінету звіряються у «Фінанси → Маркетплейси». Канал без нарахувань (сайти, канал без правила комісії) — як досі, за витратами категорій каналу.

## Можливі помилки
| Що бачите | Чому | Що робити |
| --- | --- | --- |
| «Цінайду ще не додано» | У організації нема співробітника з каталогу | «Інтеграції → ШІ → Цінайда → Додати» |
| «Нема доступу до ШІ Цінайди» | Розділ «ШІ Цінайда» закрито у «Доступах» | Попросити адміністратора відкрити |
| «Ціни застосовує людина…» (403) | Нема доступу «Прайс-лист» або це ШІ без «Підтвердити» | Попросити адміністратора застосувати; ШІ — підтвердити в кошику |
| «Нічого змінювати: …» | Усе вже як треба або пропущено (вручну, «не чіпати», без собівартості) | Причини — в тексті; змініть кошик, канал чи налаштування |
| Рядок «хтось змінив; складіть план заново» | На майданчику зараз інша ціна, ніж «було» в плані | Скласти план заново — Цінайда візьме теперішню |
| «Prom API не налаштовано» | Нема ключа Prom | «Інтеграції → Prom» |
| «нема ключа Rozetka в картці…» | Не виконано вхід у кабінет продавця | «Інтеграції → Rozetka» — увійти |
| «НБУ не відповів» | Сайт НБУ недоступний | Спробувати ще раз або вписати курс руками |
| Рядок в «Увага»: «собівартості нема» | Позиція не пов'язана зі складом або в товару нема собівартості | «Склад → Прайс-лист» — пов'язати; «Склад» — собівартість |

## Для ШІ-співробітників
Картка розділу — `/api/ai/sections/ai-tsinaida`; доступ — галочка «ШІ Цінайда» у «Доступах» ШІ. Інструменти: `ai_tsinaida_status`, `ai_tsinaida_overview` (plan_id — «після плану»), `ai_tsinaida_table` (channel, basket=raise|keep|attention, q, sort=gain|margin|sales|title, cursor, limit), `ai_tsinaida_item`, `ai_tsinaida_target` (values: target_margin_pct, min_price, max_price, frozen, note), `ai_tsinaida_plans`, `ai_tsinaida_plan` (values: kind=to_min|pct|set|lines, value, channels, price_item_ids, sku, basket, lines — лише чернетка), `ai_tsinaida_plan_get`, `ai_tsinaida_plan_cancel`, `ai_tsinaida_apply` і `ai_tsinaida_revert` (завжди кошик: ціни міняються лише після «Підтвердити» людини), `ai_tsinaida_rate`, `ai_tsinaida_rate_set` (values: source=nbu | manual + rate), `ai_tsinaida_settings_save` і `ai_tsinaida_enabled` (кошик «керування іншими ШІ»). Приклади: «підніми всі товари нижче 100 % на Prom до мінімуму» → `ai_tsinaida_plan` values={kind: to_min, channels: [prom]} і `ai_tsinaida_apply` id; «постав 339 на аналізатор ґрунту всюди» → values={kind: set, value: 339, sku}; «де ми нижче цілі на Rozetka» → `ai_tsinaida_table` channel=rozetka basket=raise. Цифри брати лише з відповідей інструментів; ціни конкурентів не вигадувати.

## Додаткова інформація
- Формули: маржа без комісії = (ціна − комісія − собівартість) ÷ собівартість; мінімальна ціна = собівартість × (1 + ціль) ÷ (1 − частка комісії), далі «гарна» ціна і межі кроку.
- Частка комісії товару = нарахована майданчиком комісія по його угодах ÷ його продажі в цих угодах за «Комісію рахувати за, днів»; нема угод товару — середня по каналу, далі правило каналу, далі типова.
- Конкуренти (Rozetka, далі Prom і Hotline), поради з курсу й продажів і «тримати ціль самій» — наступні оновлення Цінайди.
