# Склад і закупівлі — WIKI Helomi

> Товари й залишки, накладні й інвентаризації, закупівлі з собівартістю, прайс-лист.


---

# Склад і товари

Склад — товари компанії з артикулом, назвою, ціною, собівартістю, залишком, резервом і папкою (категорією). Звідси товари потрапляють в угоди, тут видно кожен рух залишку в «Журналі операцій», а YML-фід і «Публікації на площадки» передають ціни й наявність на сайти та маркетплейси.

## Можливості
- Товари в папках будь-якої глибини; хлібні крихти «Склад / Папка / …».
- Колонки: фото, артикул, назва, од. виміру, собівартість, ціна, «В наявності», «Резерв», «Вільно», «Всього», папка і власні поля.
- Залишок, резерв і «неповно» (резерв більший за залишок); неактуальні товари сховані типово.
- Рухи залишку з картки: прихід, списання, повернення, перерахунок — кожен з коментарем у журналі.
- «Журнал операцій» показує, що куди рухалось: склад → угода, прихід → склад, резерв під угоду.
- Масова зміна ціни й собівартості у відсотках, обнулення наявності.
- YML-фід для Prom, Rozetka й сайтів; «Публікації на площадки» з переглядом змін.
- Імпорт і експорт XLSX у форматі KeepinCRM, з модифікаціями й фото.
- Вкладки складу: «Товари», «Прайс-лист», «Товарні накладні», «Накладні переміщення», «Інвентаризації», «Виробництво», «Статистика» (документи складу — окрема стаття).

## 1. Налаштування
Загальні налаштування складу діють на всю компанію: з якого розділу брати товари в угоду, чи можна продати те, чого нема, бронювання, автоартикул, місця й габарити.

- **Поля товару** — «Налаштування → Типи даних → Товари» (зі складу — «⋮ → Налаштувати поля»). Позначки: «Обов'язкове поле», «Вивести в списку», «Вивести при створенні», «Вивести в угоді» (колонка у вікні «Додати товар зі складу»), «Вивести в накладних», «Додати у фільтр», блок. Типи: рядок, цифри, дата, список, текст, так/ні, посилання.
- **Склад і товари** у меню «Налаштування»: «Загальні налаштування» (з якого розділу брати товари в угоду — «Склад» чи «Прайс-лист»; «Заблокувати списання товару, якщо наявність 0»; «Заборонити ручне списання товарів»; «Бронювання товару»; правила собівартості; «Автоматична генерація артикулів»), «Одиниці виміру», «Категорії складу», «YML генератор», «Синхронізація товарів через XML».
- **Як діє кожна галочка «Загальних налаштувань товарів»** (перевірено 16.10, тест `test_product_settings_hold_on_every_path`):
  - «Товари в замовленні: Склад / Прайс-лист» — позиції угоди лише з обраного розділу: у картці угоди, через API й ШІ
    (інший розділ → помилка); позицію без товару (назвою: доставка, послуга) можна додати завжди.
  - «Заборонити додавати товар, якого немає в наявності» — вільного залишку нема: товар не додати в угоду й не збільшити
    кількість позиції (вручну, ШІ, API). Замовлення з маркетплейсів і сайту приходять як є — це реальні замовлення.
  - «Заборонити ставити „Виграно“, якщо товар не списаний» — етап ролі «Виграно», «Виграно» в меню угоди (і коли такого етапу
    у воронці нема), масові дії, тригери, ШІ, API; автодія етапу «в архів — виграно» не архівує, а пише в журнал угоди, чому.
    Не діє для імпорту історії, тихого закриття угод з минулого й замовлень, що приходять уже виконаними.
  - «Заблокувати списання товару, якщо наявність 0» — списати більше, ніж є, не можна: позиція угоди, «Списання» в картці товару,
    етап угоди. Людина бачить повідомлення, і етап не змінюється; автоматичний етап (трекінг, приймання, автодії) змінюється, але позицію
    без залишку пропускає — запис у журналі угоди й сповіщення «Не списано: нема в наявності» у дзвіночку «Сповіщення складу» над вкладками складу (21.10).
  - «Заборонити ручне списання товарів» — не-адміністратор не зменшить залишок у картці товару (пункту «Списання (−)» немає),
    «Обнуленням» чи імпортом з файлу (рядок іде у файл помилок); збільшити можна. Інвентаризація Віктора й синхронізація
    з Prom/XML працюють — це звірка з реальністю, не списання.
  - «Бронювання товару» — контролі дивляться на «Вільно» = в наявності − резерв; вимкнено — на «В наявності».
  - «К-сть місць» — вкладка «К-сть місць» у картці товару (місця й габарити кожного місця).
  - **Вага й габарити** (власник 19.10): «Вага, кг», «Об'єм, м³», «Довжина, см», «Ширина, см», «Висота, см» — системні поля кожного товару (є в усіх компаніях, не обов'язкові; обов'язковими й «при створенні» їх можна зробити в «Типи даних → Товари»). Їх беруть позиції прайс-листа, пов'язані з товаром, і ТТН (галочка «з товарів угоди» в картці служби — [Доставки і ТТН, 3а](shipping.md#3а-вага-й-габарити-з-товарів-угоди)). Старі додаткові поля «Довжина (см)», «Ширина( см )», «Висота(См)» з KeepinCRM перенесено в системні 19.10 — їх можна сховати в «Типи даних». Товари, у яких ваги не було, 19.10 отримали **оцінку ШІ** (модель Opus — за назвою, описом і схожими виміряними товарами): у «Журналі» товару такий запис підписано «оцінка ШІ (Opus) … перевірити при зважуванні»; зважили справжнє — впишіть у картку, оцінка перезапишеться й потягнеться в прайс-лист.
- Сторінки «Склади», «Типи цін», «Правила цін», «Етикетки», «ПДВ», «Prom» є, але пунктів у меню «Налаштування» для них нема.
- **Доступ** — галочка «Склад» у «Налаштування → Розділи меню»; окремі галочки для документів складу й «Прайс-листа» — у статтях про них.

## 2. Знайти товар, папки
Папки (категорії складу) групують товари, щоб їх було легко знайти й відфільтрувати; створюють і переставляють їх у розділі «Склад».

1. Відкрийте «Склад» → вкладка «Товари».
2. Угорі таблиці — папки поточного рівня: клік відкриває папку; «⋮» папки — «Відкрити», «Нова підпапка», «Перейменувати», «Видалити» (лише порожню).
3. Пишіть у «Пошук»: артикул, назва, Marketplace uid або значення власного поля. З пошуком видно товари всієї гілки.
4. «Фільтри»: наявність, актуальність, власні поля і «Колонки».
5. Унизу — кількість товарів і категорій, суми, сторінки.
6. Позначте товари галочками → «Перенести в папку…»: угорі вікна — пошук папки за назвою чи батьківською папкою (видно шлях «Компанія / Папка»), ↑↓ і Enter.

## 3. Додати товар або категорію
1. Натисніть круглу «+» праворуч унизу.
2. «Новий товар» відкриває шторку: артикул (необов'язковий, якщо його не генерує налаштування), «Назва *», од. виміру, собівартість, ціна, папка, «В наявності», вага, об'єм, «Неактуальний» і поля з позначкою «Вивести при створенні». «Зберегти».
3. «Нова категорія» створює папку в поточній папці.

## 4. Картка товару і рухи залишку
1. Клік по назві відкриває картку з вкладками **«Картка» · «Угоди · N» · «Журнал»**. «Картка»: фото, групи полів «Основне», «Ціна», «Вага й габарити» (вага, об'єм, довжина, ширина, висота), «Постачальник, посилання» і власні блоки (значення змінюється кліком; порожні власні поля сховані під «Порожні поля · N»; «Папка» — вибір із пошуком), праворуч «Залишок» (на складі, резерв, вільно, дія із залишком, рухи).
   - **«Угоди»** — окремий розділ: усі угоди, де є цей товар або позиція прайс-листа, пов'язана з ним (набір рахується в штуках товару, біля угоди — «прайс-лист <артикул>»). Угорі підсумки: угод, продано шт, сума; пошук за номером чи назвою угоди; «Усі / В роботі / Архів»; таблиця: угода, клієнт, етап, дата, к-сть, ціна, сума, «списано» / «резерв»; «Показати ще». Угоди лише за збігом артикула не показуються: різні товари бувають з однаковим артикулом латиницею й кирилицею (A000142-1 і А000142-1) — такий артикул краще змінити одному з товарів.
   - **«Журнал»** — хто й коли змінював товар.
2. Щоб змінити залишок, виберіть «Дія із залишком»: «Прихід (+)», «Списання (−)», «Повернення (+)», «Перерахунок (=)» (новий точний залишок), кількість і коментар → «Записати».
3. «Оновити на площадках» відправляє ціну й наявність цього товару на підключені маркетплейси.
4. Товар, що вже є в угодах, видалити не можна — позначте його неактуальним («⋮ → Позначити неактуальним»).
5. Те саме — просто з таблиці, через «⋮» рядка товару (як у KeepinCRM): «Редагувати» (картка), «Додавання в наявний матеріал»
   (кількість, собівартість одиниці — необов'язково, коментар → «Додати»: прихід +), «Відняти матеріал зі складу» (кількість,
   коментар → «Відняти»: списання −), «Журнал» (усі рухи цього товару: дата, +/−, тип, коментар, угода, хто). У вікні видно,
   скільки є зараз і скільки стане. Заборона ручного списання і списання в мінус («Налаштування → Товари») діють і тут.
   Після «Додати» чи «Відняти» внизу екрана коротко з'являється чорна пігулка: «артикул: списано 1 шт, залишилось 42 шт»
   (чи «додано …, тепер …»). Вона зникає сама за кілька секунд або від натиску; на телефоні стоїть ліворуч від «+».
   Для комплекту («Комплектація» без свого залишку) додавання й віднімання вимкнені.

## 5. Резерв і списання через угоди
- Товар з галочкою «резерв» в угоді резервується: «вільно» зменшується, «на складі» — ні.
- Списання і повернення роблять етапи угоди за налаштуванням «Склад» у «Воронках й етапах» або «⋮» позиції в картці угоди. Докладно — стаття «Угоди», розділ «Товари і склад».

## 6. Журнал операцій
1. «Склад» → «Журнал операцій».
2. Кожен рядок: напрямок (надійшло або списано), дата, хто створив, товар з артикулом, кількість, собівартість, ціна, філія, тип руху словами, джерело угоди, коментар.
3. Фільтри: напрямок, тип, дати; пошук за товаром, номером угоди, коментарем. Унизу — «надійшло» і «списано» разом.
4. Видалення операції повертає залишок назад. Резерв тут не видаляється — його знімають в угоді.
5. Два типи рядків лише пояснюють, звідки взялося число, і залишку не змінюють (23.10). «Початковий залишок» — з чим товар прийшов з KeepinCRM при перенесенні. «Зміна без руху складу» — залишок змінили повз журнал: до 14.10 його перезаписувало дзеркало KeepinCRM, до 21.10 — імпорт KeepinCRM під час оновлення програми. У коментарі — проміжок, коли це сталося. Такі рядки не видаляються. Разом з ними сума журналу дорівнює залишку в картці товару.

> [!TIP]
> Залишок не збігається з полицею — зробіть «Перерахунок» у картці товару: він запише справжню кількість окремим рухом.

## 7. Масова зміна ціни, обнулення наявності
- «⋮ → Масова зміна ціни»: ціна або собівартість ± відсоток для вибраних товарів, поточної папки або всього складу.
- «⋮ → Обнулити наявність» після підтвердження ставить нуль; кожна зміна записується в журнал як перерахунок.
- У «⋮» рядка товару: «Відкрити картку», «Позначити неактуальним» / «Позначити актуальним», «Оновити на площадках», «Видалити».

## 8. YML-фід і публікації на площадки
YML-фід — постійна адреса з вашими товарами, цінами й наявністю для сайтів, Google Merchant, Hotline і партнерів; назви тегів налаштовуються під кожного одержувача.

- «Фід (YML)» показує адресу фіду, коли його згенеровано і скільки в ньому товарів; «Оновити». Фід усього складу — `/feed/all.xml`, окремої компанії — `/feed/<назва>.xml`; відкривається без входу, оновлюється раз на 5 хвилин. Склад полів фіду налаштовується в «Налаштування → YML генератор».
- Там само — **фіди каналів із прайс-листа** `/feed/channel/<канал>.xml` (Prom, Rozetka, Kasta, Епіцентр, кожен сайт): оголошення саме цього каналу з його id і ціною з прайс-листа, а кількість і наявність — вільний залишок пов'язаних товарів складу. Саме ці адреси читають ШІ-агенти (Аліна, Єлизавета, Аня), Rozetka й сайти замість фіду KeepinCRM; позиція без зв'язку зі складом віддається з кількістю, яку востаннє бачили в каналі (див. статтю «Прайс-лист»).
- «Публікації на площадки» — журнал відправлень залишків і цін на Prom, Rozetka та інші канали; «Оновити зараз» спершу показує «Було / Стане» і нічого не відправляє, поки ви не підтвердите.
- **Rozetka — з прайс-листа, за розкладом.** Rozetka читає не фід, а API: картка Rozetka в «Публікаціях» має позначку «з прайс-листа» і розклад «автоматично кожні N хв» (типово 60; період і перемикач ставить людина, не `.env`). Кожне оголошення Rozetka з прайс-листа отримує залишок пов'язаних товарів складу і ціну з прайс-листа через `PUT /items/mass-update`; у «Публікаціях» видно «авто востаннє …».

## 9. Імпорт і експорт
«⋮ → Імпорт» і «⋮ → Експорт». Збіг з наявними — «ID, а якщо нема — артикулом», «ID», «Rozetka Offer ID», «Артикулом», «Назвою». Покроково — стаття «Імпорт і експорт».

### Синхронізація товарів через XML
Товари з XML-файлу постачальника чи сайту створюються й оновлюються самі кожні 12 годин; вручну — один раз одразу після створення синхронізації («Налаштування → Склад і товари → Синхронізація товарів через XML»).

## Замовлення з площадок і сайтів беруть позиції звідти ж (14.10)
Якщо в «Налаштування → Товари → Товари в замовленні» стоїть «Прайс-лист», приймання замовлень з Prom, Rozetka, Kasta, Епіцентру, OLX, сайтів і Telegram підбирає кожну позицію з прайс-листа: спершу оголошення цього каналу з тим самим id товару на площадці, потім Rozetka Offer ID, потім артикул, потім назва. Склад списується матеріалами позиції. Якщо стоїть «Склад» — позиція шукається серед товарів складу, як раніше (артикул або режим «Зв'язок позицій» у картці каналу).

## Партнери на товарі (16.10)
Коли в бізнесу товару є партнери («Налаштування → Бренди та юрособи → бренд → Партнери бізнесу»), у картці товару з'являється блок «Партнери»: частка партнера на цьому товарі (порожньо — частка з бренду), «повертати собівартість», «у виплату». За ними рахуються виплати партнерам («Фінанси → Партнери»). Зміни зберігаються одразу.

## Можливі помилки
| Що ви бачите | Чому | Що зробити |
| --- | --- | --- |
| «Артикул … уже є» | Артикул має бути унікальним | Змініть артикул або відкрийте наявний товар |
| «Потрібна назва товару» | Порожня назва | Впишіть назву |
| «Заповніть обов'язкові поля: …» | Поле обов'язкове в «Типах даних → Товари» | Заповніть поле |
| «Товар є у … угодах — позначте його неактуальним» | Товар з угодами не видаляється | «⋮ → Позначити неактуальним» |
| «Папка не порожня: …» | Видаляється лише порожня папка | Перенесіть або видаліть вміст |
| «Ручне списання заборонене — товар списується лише через угоди …» | Увімкнено «Заборонити ручне списання товарів» | Списуйте етапом угоди або попросіть адміністратора |
| «В наявності … — списання в мінус заблоковано …» | Увімкнено «Заблокувати списання товару, якщо наявність 0» | Оприбуткуйте товар |
| «… немає в наявності — збільшити кількість заборонено» | «Заборонити додавати товар, якого немає в наявності», вільного нема | Оприбуткуйте товар або зменшіть кількість |
| «товари в угоду беруться з прайс-листа / зі складу …» | «Товари в замовленні» — інший розділ | Оберіть позицію з потрібного розділу |
| «Угоду не можна закрити як «Виграно»: товар не списаний …» | «Заборонити „Виграно“, якщо товар не списаний» | Спишіть товари або закрийте як «Програно» |
| «Ручне списання заборонене — обнулити залишки може лише адмін» | «Заборонити ручне списання товарів» | Попросіть адміністратора |
| «Поле формує правило «…» — ручне редагування заборонене» | Ціну рахує правило цін | Змініть правило або зніміть замок поля |
| «Резерв знімається в угоді …» | Резерв не видаляється з журналу | Зніміть резерв на позиції угоди |
| «„Початковий залишок“ — запис історії, залишок він не змінював …» | Рядок-пояснення в журналі не видаляється | Щоб виправити залишок, зробіть «Перерахунок» у картці товару |

## Для ШІ-співробітників
Ключ розділу — `products` (`describe_section("products")`). Потрібен доступ «Склад». ШІ склад лише читає; рухи залишку, нові товари й публікації робить людина.

| Інструмент | Що робить |
| --- | --- |
| `products_list` | Пошук `q` (артикул, назва), фільтри `category_id`, `in_stock`, `irrelevant`; колонки з ціною, собівартістю, залишком, резервом і «вільно» |
| `products_get` | Картка товару: поля, фото, рухи, угоди |
| `products_deals` | Угоди з товаром: `q` (№ угоди), `state` (`all`, `active`, `archived`), `page`; підсумки `totals` — угод, продано шт (`units`), сума |

Щоб додати товар в угоду, знайдіть `product_id` тут і викличте `deals_add_item`.

Чого не робити:
- Не обіцяти клієнту наявність без перевірки «вільно» (`free`), а не лише «В наявності».
- Не вигадувати артикули — брати з `products_list`.

## Додаткова інформація
- Пов'язані статті: [Угоди](deals.md), [Склад: накладні, інвентаризації, переміщення](warehouse-docs.md), [Прайс-лист](pricelist.md), [Імпорт і експорт](import-export.md).


---

# Склад: накладні, інвентаризації, переміщення

Документи складу фіксують, як товар приходить, перераховується і переїжджає між філіями: товарна накладна зараховує прибулий товар і закриттям проводить витрати у фінанси, інвентаризація звіряє фактичну наявність із CRM, а накладна переміщення переносить залишок з одного складу на інший. Кожен документ має статус, файл XLSX і окремі права в доступах.

## Можливості
- Товарні накладні: прибулі й очікувані товари, новий товар прямо з накладної (з модифікаціями), масове заповнення характеристик нових товарів.
- Витрати по накладній сумою або відсотком; «Додати витрати по накладній в собівартість товару» розподіляє їх пропорційно.
- Закриття накладної проводить собівартість і витрати у фінанси; відновлення скасовує.
- Етикетки на кількість прибулого товару, файли до накладної, вивантаження в XLSX.
- Інвентаризація: товари блокуються на час підрахунку, відхилення в кількості й сумі, завершення застосовує фактичну наявність.
- Накладні переміщення між складами: «Формування» → «Відправлено» (зі сповіщенням отримувачу) → «Завершено».
- Виробництво з матеріалів за специфікацією.

## 1. Налаштування і доступи
- Вкладки «Товарні накладні», «Інвентаризації», «Накладні переміщення», «Виробництво», «Статистика» — у розділі «Склад» поруч із «Товари».
- Доступи — у «Налаштування → Розділи меню» (або в картці людини в «Користувачі»):
  - «Склад: товарні накладні» (типово увімкнено) і «Склад: закриття накладних» (типово вимкнено);
  - «Склад: інвентаризації» (типово увімкнено) і «Склад: завершення інвентаризацій» (типово вимкнено);
  - «Склад: накладні переміщення» (типово вимкнено).
- Переміщення працюють для типу складу №2 «Один товар = декілька складів» (сторінка налаштувань «Склади»; уточнити: пункту для неї в меню «Налаштування» нема, сторінка відкривається за адресою `/crm/settings/products/warehouses`).
- Поля нових товарів у накладній — ті, що мають «Вивести при створенні» в «Налаштування → Типи даних → Товари».
- Окремо налаштувати поля самих документів складу поки не можна.

## 2. Товарна накладна: прихід товару
Документ приходу товару на склад: що прийшло, від кого, скільки і за якою собівартістю. Прибулі товари після збереження одразу додаються на залишок, очікувані — коли натиснете «Товар прибув»; закриття фіксує накладну й проводить витрати у фінанси.

Партії з Excel-файлу постачальника з розрахунком доставки й оплатами ведіть у «Закупівлях»; переміщення між своїми складами — «Накладні переміщення»; перерахунок — «Інвентаризації». Угорі списку й накладної — це пояснення карткою «Для чого товарні накладні» (той самий абзац, що вище): «Згорнути» лишає пігулку «? Для чого товарні накладні», «Більше не показувати» прибирає його на всіх ваших пристроях, повернути — «Дії з накладною» (⋮) → «Показати пояснення» або «Налаштування → Вигляд → Пояснення на сторінках». На телефоні пояснення одразу згорнуте в пігулку, дотик відкриває його шторкою знизу.

1. «Склад» → «Товарні накладні» → «+ Накладна».
2. «Дані накладної»: назва, постачальник, валюта, склад (якщо складів кілька), коментар (номер рахунку постачальника, умови).
3. «Товари, які прибули» — знайдіть товар у полі під таблицею (назва, артикул або штрихкод сканером), вкажіть кількість і
   собівартість. Той самий товар, відсканований ще раз, додає +1 до кількості, а не другий рядок. Під таблицею — рядок «Разом»:
   позицій, кількість і сума. Прибулі рядки зараховуються на склад після «Створити» / «Зберегти». Кількість і собівартість —
   числа від 0: криве чи від'ємне значення підсвічується червоним, і накладна не збережеться, доки його не виправите. Червона
   крапка на кнопці «Зберегти» — є незбережені зміни; «← Товарні накладні» тоді спершу перепитає.
4. Товару ще нема в каталозі — «+ Новий товар»: «Назва нового товару», артикул (або «автоартикул», якщо ввімкнено автогенерацію), папка, од. виміру, собівартість, «+ модифікація». Такий товар позначено «Новий товар (позначка New)».
5. «Масове заповнення характеристик» заповнює поля одразу в усіх нових товарах накладної.
6. Блок «Фінанси»: «Витрати по накладній» сумою або «% від собівартості» (доставка, пакування, мито — те, чого нема в ціні
   товару; від'ємні не приймаються); галочка «Додати витрати по накладній в собівартість товару» додає їх у собівартість
   пропорційно (колонка «Дод. собівартість»); для проведення у фінанси — «Гаманець» і «Категорія витрат».
7. У «Дії з накладною» (⋮): «Згенерувати етикетки» (на кількість прибулого), «Завантажити XLSX», «Інструкція (WIKI)», «Видалити»;
   нижче — блок «Файли» (PDF, Word, Excel, фото). Угорі збереженої накладної — показники: прибуло, унікальних, собівартість,
   очікується, витрати.
8. На телефоні рядки таблиць стають картками (артикул, назва, кількість і собівартість великими полями, сума, дії), «Разом» — одним
   рядком під ними, кнопка «Зберегти» — на всю ширину.

## 3. Очікуваний товар і «Товар прибув»
1. «Додати очікуваний товар» — рядок, якого ще нема на складі; залишок не змінюється.
2. Коли товар приїхав — «Товар прибув»: очікувані рядки стають прибулими й зараховуються («Усі очікувані товари прибули»).

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

## 5. Інвентаризація
Інвентаризація — перерахунок товару: ви вписуєте фактичну наявність, а Helomi показує відхилення й після завершення виправляє залишки. Поки вона триває, рухи її товарів заблоковано, щоб цифри не розійшлися.

1. «Склад» → «Інвентаризації» → «+ Інвентаризація»: назва, філія, товари (окремо або «Уся папка») → «Створити (товари блокуються)».
2. Поки інвентаризація активна, по її товарах заблоковано списання, повернення, прихід і переміщення. Залишки зміняться лише після завершення.
3. Впишіть «Фактична наявність» для кожного товару. Таблиця покаже «Наявність у CRM», «Відхилення», «К-сть в прихід» (надлишок), «К-сть в списання» (нестача) і суми. «Зберегти фактичну наявність».
4. «Завершити інвентаризацію» (потрібен доступ «Склад: завершення інвентаризацій») — фактична наявність застосовується до складу.
5. «Відновити інвентаризацію» скасовує застосоване. Активну інвентаризацію можна видалити — блокування знімається.

## 6. Накладна переміщення
Накладна переміщення переносить товар між вашими філіями: відправник формує й відправляє її, отримувач перевіряє й приймає — і лише тоді залишки переходять.

1. «Склад» → «Накладні переміщення» → «+ Переміщення»: «Філія-відправник» («Звідки»), «Філія-отримувач» («Куди»).
2. Додайте товари (пошук ліворуч), кількість — не більше, ніж «Є на відправнику». Статус — «Формування»; «Зберегти».
3. «Відправити» — накладна йде у філію-отримувач, відповідальні отримують сповіщення (дзвіночок складу). Статус «Відправлено»; «Скасувати відправлення» може лише той, хто відправив.
4. Отримувач перевіряє і натискає «Завершити та прийняти» — залишки переносяться, статус «Завершено», далі змін нема.
5. Видалити можна лише накладну у статусі «Формування».

## 7. Виробництво
Виробництво збирає готовий товар з матеріалів за специфікацією: матеріали списуються зі складу, а готовий товар приходить на нього одним документом.

1. У картці товару → «Комплектація» → «Специфікація для виробництва» задайте матеріали й кількість.
2. «Склад» → «Виробництво»: товар, «Кількість до виробництва», склад → чернетка або «Провести». Матеріали списуються, готовий товар приходить на склад.
3. Проведене виробництво можна скасувати — рухи повертаються назад.

## Можливі помилки
| Що ви бачите | Чому | Що зробити |
| --- | --- | --- |
| «Накладна закрита — редагування заборонене. Спершу відновіть її» | Накладну закрито | «Відновити накладну» (потрібен доступ до закриття) |
| «Оберіть гаманець для проведення у фінанси» | Увімкнено проведення у фінанси без гаманця | Виберіть гаманець |
| «Накладна з закупівлі: гроші за товар уже на закупівлі …» | «Собівартість у фінанси» на накладній з закупівлі | Залиште вимкненим або приберіть «З закупівлі» |
| «Закупівлі №… не існує» | Номер партії з помилкою | Оберіть партію зі списку |
| ««…»: кількість і собівартість — числа від 0» | У рядку не число або від'ємне значення (поле підсвічено червоним) | Виправте значення й збережіть ще раз |
| «Собівартість не може бути від'ємною» / «Витрати по накладній не можуть бути від'ємними» | Від'ємне значення прийшло через API | Передайте 0 або більше |
| «Новий товар «…»: потрібен артикул (або увімкніть автогенерацію)» | Новий товар без артикула | Впишіть артикул або увімкніть автоартикул у «Загальних налаштуваннях» складу |
| «…: комплект не можна оприбуткувати — оприбутковуйте матеріали» | Комплект не має власного залишку | Додайте в накладну матеріали комплекту |
| «… уже в активній інвентаризації «…»» | Товар зайнятий іншою інвентаризацією | Завершіть ту інвентаризацію |
| «…: іде інвентаризація «…» — …» | Рух товару під час інвентаризації | Дочекайтесь завершення інвентаризації |
| «Переміщення між складами працюють лише для типу складу №2 …» | Тип складу не той | Змініть тип складу в налаштуваннях «Склади» |
| «…: на складі-відправнику …» | Не вистачає товару у відправника | Зменшіть кількість |
| «Відправлену чи завершену накладну видалити не можна» | Накладна вже в дорозі або прийнята | Скасуйте відправлення (якщо ще не прийнято) |
| «…: треба …, в наявності …» | Не вистачає матеріалу для виробництва | Оприбуткуйте матеріал |

## Для ШІ-співробітників
5` (складений інструмент `stock_receive`). ШІ бачить лише результат: залишки й рухи товару через `products_list` і `products_get`.

Чого не робити:
- Не обіцяти, що товар уже на складі, якщо він лише очікується в накладній.

## Додаткова інформація
- Пов'язані статті: [Склад і товари](products.md), [Прайс-лист](pricelist.md), [Фінанси](finance.md), [Імпорт і експорт](import-export.md).


---

# Закупівлі

Закупівлі — партії товару від постачальників: розрахунок собівартості з Excel-файлу замовлення (доставка за вагою, товар за курсом, документи відсотком), стан партії від «формується» до «прибула», товари друзів окремо, оплати перевізнику, постачальнику та за документи, нові товари й прихід на склад Helomi. Оплата партії — це операція журналу «Фінансів»: вона зменшує баланс гаманця, має бізнес за товарами партії і закриває борг, а рядок виписки банку з тією самою сумою не стає другою витратою. Розділ веде ШІ Богдан; усі дані — лише з вашої CRM.

## Можливості
- Партія з Excel-файлу замовлення: позиції, вага, ціна, доставка за вагою, документи відсотком, собівартість кожної штуки.
- Ручна правка ціни чи ваги одного різновиду перерозподіляє решту групи; відредаговане позначено й не перераховується.
- Стан партії: «формується» → «замовлено» → «в дорозі» → «прибула»; дати відправки й прибуття, трек-номери (копіюються кліком).
- Оплати трьома частинами — перевізнику за доставку, постачальнику за товар, за документи; план, сплачено, борг.
- Кожна оплата — операція «Фінансів» з підставою «Закупівля №…», гаманцем і бізнесом (брендом) за товарами партії.
- Товари друзів («не враховувати») і їхні платежі нам — окремо від наших грошей; окремий файл розрахунку для друзів.
- Нові товари партії — на склад Helomi, прихід партії — на обраний склад із собівартістю за штуку.
- Розрахунок у Excel чи PDF, Excel-оригінал при партії, журнал змін (хто що змінив — людина чи ШІ).
- Довідники: постачальники товару (з їхніми артикулами й назвами), перевізники (з файлами-тарифами), партнери, підписки.

## 1. Налаштування
- **Типові курси нової закупівлі, допуск боргу, одиниця й назва нового товару, адреса спільної таблиці** — у пульті ШІ Богдана
  («⋮» → «Пульт ШІ Богдана» → «Налаштування»), див. статтю [ШІ Богдан](ai-bogdan.md). Наприклад, «Не вважати боргом залишок до,
  грн» (типово 10) — хвіст від курсу чи комісії банку не тримає партію в боргах.
- **Гаманець оплат закупівель** і **категорії частин** — «Налаштування → Фінанси → Оплати закупівель» (або «⋮» → «Оплати
  закупівель: гаманець і категорії»). Гаманець — той, з якого типово платять за партії, коли в оплаті гаманець не вибрано;
  порожньо — «Монобанк» або перший банківський. Категорії: «Постачальнику за товар» (типово «Закупівля товару», клас «Закупівля
  товару»), «Перевізнику за доставку» («Доставка партії»), «За документи» («Документи на закупівлю») — обидві з класом «Документи
  й доставка партії», «Платежі друзів нам» («Відшкодування від друзів»). Порожньо — категорія з такою назвою створиться сама.
- **Бізнес і юрособа партії** — поле `brand_id` / `legal_id` закупівлі (через API); порожньо — бізнес за товарами, юрособа — гаманця.
- **Доступи** — розділ «Закупівлі» (меню). Провести чи прибрати оплату у «Фінансах» — ще й «Фінанси» з галочкою «проводити й
  змінювати платежі». Розділ поки відкритий лише організації №1.

## 2. Сторінка «Закупівлі»
Адреса — `/crm/procurement` (стара адреса `/procurement` веде сюди). У шапці: скільки товару в дорозі й скільки ще винні, посилання на пульт ШІ Богдана, «У таблицю Колі», «⋮» (пульт Богдана, оплати закупівель, борги партій у «Фінансах», «Інструкція», «Вхід для ШІ») і чорна кнопка «Нова закупівля».

Вкладки: «Закупівлі», «Постачальники товару», «Перевізники», «Партнери», «Підписки». На «Закупівлях» — пігулки станів («Всі», «Формується», «Замовлено», «В дорозі», «Прибула») і картки партій: стан, постачальник і перевізник, дати (червона крапка — мала вже прибути), трек-номери, оплати по частинах, сума партії. «⋮» картки: «У таблицю Колі», «Нові товари на склад», «Прихід на склад» (зроблене позначено «· зроблено»), «Розрахунок у Excel / PDF», файли й склад для товарів друзів, «Excel-оригінал», «Видалити закупівлю». Клік на назві відкриває закупівлю у вікні (на телефоні — на весь екран).

## 3. Нова закупівля з Excel-файлу
1. «Нова закупівля» → **① Excel-файл замовлення**: перетягніть файл постачальника. Рядки з ціною — голови груп, рядки без ціни
   під ними — різновиди того самого товару; рядок з вагою відкриває посилку.
2. **② Параметри розрахунку**: доставка загальна в доларах, загальна вага (з файлу), курси доставки й закупки (типові — з
   налаштувань Богдана), курс юаня (якщо задано — ще й ціна в юанях), оплата за документи в гривнях.
3. **③ Таблиця собівартості**: ціна групи ділиться між різновидами за кількістю, вага посилки — рівно на кожну штуку. Змінили
   ціну чи вагу одного — решта групи перераховується, змінене підсвічено. «Не враховувати» — товар друзів: документи діляться на
   всіх, у суму партії йде лише наша частка. Попередження показують, коли вага посилки чи ціна групи не зійшлись з файлом.
   «Товар вручну» додає рядок без файлу, «Перебудувати з файлу» скидає правки.
4. **④ Дані закупівлі**: назва (обов'язкова), стан, постачальник, перевізник, дати, трек-номери, нотатка. «Зберегти».
Відкрита закупівля має ще «Оплати партії», «Друзі» і «Журнал змін».

## 4. Оплати партії
1. **У картці закупівлі** — блок «Оплати партії» (після першого збереження): по кожній частині «Треба» (план; «з розрахунку»
   повертає розрахункову суму), «Сплачено», «Лишилось», список оплат; «+ Оплата»: сума (підказка — борг), дата, гаманець,
   нотатка → «Провести оплату». «×» прибирає оплату — операція зникає з журналу й баланс гаманця повертається.
2. **У «Фінанси → Закупівлі»** — партії з боргом по частинах (галочка «лише з боргом») → рядок партії → шторка: картки частин,
   список оплат, «Нова оплата» з тими самими полями.
3. **Списання вже прийшло випискою** (у «Вхідних» чи журналі) — у шторці «Фінанси → Закупівлі» «Списання вже є у журналі?»: номер
   операції, частина → «Прив'язати операцію». Операція отримує підставу «Закупівля №…» і категорію частини.
4. Імпорт виписки, де є та сама сума в тому самому гаманці за ±3 дні від оплати, не створює другої витрати: оплата позначається
   «звірено» (у журналі — «звірено з внесеними» у підсумку імпорту).
5. **Бізнес оплати** — за товарами: артикул → товар складу → коренева папка → бренд; змішана партія ділиться на рядки
   пропорційно сумам частини (товар — за ціною товару, доставка — за доставкою). Позиції друзів не враховуються.
6. Оплати, внесені до 16.10.2026, — **архів** (сірим): рахуються в «сплачено», але в балансах гаманців їх нема (ті гроші вже є у
   виписках банку). Архівний рядок можна лише прибрати.
7. Галочка «оплачено без сум» по частині закриває борг і без оплат (платили з іншого рахунку); оплати, що покривають план (з
   допуском із налаштувань Богдана, типово 10 грн), ставлять галочку самі.
Збереження закупівлі (дані, розрахунок) оплат не чіпає.

## 5. Платежі друзів
Друг платить нам за свій товар у партії: блок «Друзі» картки закупівлі → друг, частина, сума, дата. Це дохід «Відшкодування від друзів» у журналі «Фінансів» з підставою «Закупівля №…» і контрагентом-другом; наш борг перед перевізником і постачальником він не закриває. Прибрати платіж — операція зникає з журналу. «Файл для друзів (Excel / PDF)» у «⋮» картки — розрахунок лише їхніх позицій.

**Сторінка «Товари друзів»** (`/friends/#ключ`, кнопки «Посилання …» і «Відкрити» у вкладці друзів) — лише перегляд, без входу в Helomi: табло прибуття, партії з датою, маршрутом і трек-номерами (клік по номеру — скопіювати), товари, розрахунок «Доставка · Документи · Товар · Лишилось сплатити», файли Excel/PDF і «Скачати все» одним файлом; пошук за назвою чи артикулом, вкладки «Ще їдуть / В дорозі / Замовлено / Прибули», прибулі давніше — згорнутим блоком. Оновлюється сама щохвилини. Ключ друга показує лише його товари й оплати; спільний ключ — усіх друзів. Ключ стоїть після `#`, тому не потрапляє в журнали сервера. Посилання потрапило не туди — нове (старе одразу перестає працювати) робить `POST /api/procurement/friends/<id>/new-token`; кнопки для цього в картці друга поки нема.

## 6. Нові товари й прихід на склад
1. **Нові товари на склад** («⋮» картки): Богдан звіряє артикули партії з вашим складом і показує відсутні — артикул, назва для
   складу (за шаблоном з налаштувань, типово «назва (артикул)»), собівартість з розрахунку, ціна продажу — усе можна виправити.
   «×» у рядку — не заводити цей товар → «Завести». Товари створюються з залишком 0 і одиницею з налаштувань (типово «шт.») — кількість дає
   прихід.
   **Вага, об'єм і Д × Ш × В 1 шт** — теж у рядку, одразу підставлені й редаговані: вага й об'єм — з цієї закупівлі (вага й об'єм
   посилки в файлі діляться порівну на всі штуки під ними), а чого в ній нема — з інших закупівель і таблиці Колі; довжину, ширину
   й висоту упаковки оцінює ШІ (поки рахує — над таблицею «ШІ рахує Д×Ш×В…»), об'єм без файлу = Д × Ш × В. Заміряйте й поправте,
   якщо треба; стерте поле так і лишиться порожнім. Вага й об'єм ляжуть у картку товару, Д × Ш × В з вагою — у вкладку «К-сть
   місць» (місце №1); вагу з картки бере ТТН.
2. **Прихід на склад**: склад приходу (головний — першим), позиції з кількістю й ціною за штуку = собівартість із розрахунку →
   «Зробити прихід». Залишки й собівартість на складі оновлюються, у журналі закупівлі — запис «Прихід на склад».
3. Повторний прихід тієї самої партії зробить дубль — пункт позначається «· зроблено» саме для цього.
4. Для товарів друзів — окремі пункти «Товари друзів на склад» і «Прихід товарів друзів».
5. Якщо прихід оформлено **товарною накладною** («Склад → Товарні накладні»), у блоці «Фінанси» накладної виберіть «З закупівлі»
   → номер партії: «Провести собівартість товарів як витрату у фінансах» вимикається — гроші за товар уже проведено оплатами
   партії. Додаткові витрати накладної (яких нема в закупівлі) проводяться як звичайно.

## 7. Спільна таблиця Колі
Таблиця товарів, з якої читає ШІ Коля (артикул, назва, кількість, ціна). Адреса — у налаштуваннях Богдана («Спільна таблиця Колі»).
- «У таблицю Колі» в шапці — звірити довільний Excel-файл з таблицею: нові товари, зміни кількості й ціни; зніміть галочки з
  того, що не чіпати → «Записати в таблицю». «Подивитись таблицю» — пошук і перегляд рядків.
- «У таблицю Колі» в «⋮» картки — те саме для позицій партії (кількість додається, ціна — собівартість); дата запису стоїть на
  картці.

## 8. Довідники: постачальники, перевізники, партнери, підписки
- **Постачальники товару** — назва, тип, контакти, месенджер, сайт; «Товари» — їхні артикули й назви поруч з нашими (кнопка
  підтягує нашу назву зі складу); пошук «у кого ми це закуповуємо» — за артикулом чи назвою.
- **Перевізники** — менеджер, телефони, месенджер, адреса складу; файли (тарифи, договори) з підписами.
- **Партнери** — компанії з послугами (брокер, фулфілмент…).
- **Підписки** — сервіс, сума на місяць у гривнях чи євро, число поповнення, «оплачено до», автосписання, з якої картки.
«+ Додати» на кожній вкладці, правка — клік на рядку, «Видалити» — у «⋮» рядка.

## Можливі помилки
| Що ви бачите | Чому | Що зробити |
| --- | --- | --- |
| «Адресу спільної таблиці не налаштовано…» (409) | Порожня «Спільна таблиця Колі» в Богдана, а сервер не організації №1 | Пульт Богдана → «Налаштування» → «Спільна таблиця Колі» |
| «Такого складу нема (або він в архіві)» (422) | Обрано архівний чи чужий склад | Оберіть склад зі списку |
| Прихід: «… недостатньо» чи інша відмова складу (409) | Склад не прийняв рух | Перевірте товар і склад, повторіть |
| «оберіть гаманець оплат закупівель …» | Нема гаманця в налаштуваннях і жодного банку чи готівки | «Налаштування → Фінанси → Оплати закупівель» → гаманець |
| «невідома частина оплати «…»» / «Невідомий тип оплати» | Частина не carrier / supplier / docs | Оберіть частину зі списку |
| «сума оплати має бути більше нуля» | Порожня сума | Впишіть суму |
| «операція … вже має підставу «…»» | Операцію прив'язано до угоди чи іншої закупівлі | Перевірте номер операції |
| «оплата партії — витрата, платіж друга — дохід» | Прив'язуєте дохід як оплату партії | Оберіть списання |
| «Накладна з закупівлі: гроші за товар уже на закупівлі …» | Увімкнули «Собівартість у фінанси» на накладній з закупівлі | Залиште вимкненим або приберіть «З закупівлі» |
| «Закупівлі №… не існує» | Номер партії з помилкою | Оберіть партію зі списку |
| «Немає права проводити платежі …» | Нема галочки «Фінанси: проводити й змінювати платежі» | Попросіть адміністратора |
| «Такої юрособи немає» / «бізнесу (бренду) … не існує» | Невірний бренд чи юрособа партії | Оберіть зі списку |

## Для ШІ-співробітників
Розділ `procurement` (`describe_section("procurement")`), доступ «Закупівлі». Собівартість рахує сторінка закупівлі — ШІ її не перераховує й позицій не змінює.
- `purchases_list` (status), `purchases_get`, `purchases_summary`, `purchase_activity` — читання й журнал змін.
- `suppliers_list`, `carriers_list`, `partners_list`, `subscriptions_list`, `supplier_products_search` (q) — довідники.
- `purchase_update` (values: status, sent_date, eta_date, arrived_date, ttn_international, ttn_ukraine, note, supplier_id,
  carrier_id) — дані партії, пише в журнал закупівлі.
- `purchase_payments` — оплати партії з журналу (і архів), план / сплачено / борг по частинах.
- `purchase_pay` (kind, amount, pay_date, purse_id, note) і `purchase_payment_link` (tx_id, kind) — **спочатку запитують**
  підтвердження людини (вид `payments`), бо рухають гроші.
- `purchase_warehouse_check` (friends), `purchase_warehouse_add` (items з перевірки), `purchase_supply_refs`,
  `purchase_supply` (warehouse_id) — склад Helomi; запис — через кошик «Масові дії» (`bulk`). Вагу, об'єм і Д × Ш × В
  нового товару (`weight` кг, `volume` м³, `length`/`width`/`height` см у кожному item) можна не передавати — порожнє сервер
  підкаже сам (закупівлі, таблиця Колі, оцінка ШІ); `POST /api/procurement/purchases/{id}/dims-suggest` {items:[{sku, title}]} —
  ті самі підказки без запису.
- Доручити те саме Богданові — `ai_bogdan_*` (стаття [ШІ Богдан](ai-bogdan.md)).

Чого не робити: не проводити оплату без прямого прохання людини; не вигадувати id гаманців (брати з `finance_refs`), складів (`purchase_supply_refs`) і операцій; не робити прихід партії вдруге; не прив'язувати до партії надходження клієнтів.

## Додаткова інформація
- Пов'язані статті: [ШІ Богдан](ai-bogdan.md), [Фінанси](finance.md), [Склад: накладні](warehouse-docs.md),
  [Товари](products.md), [ШІ Марія Йосипівна](ai-maria.md).


---

# Прайс-лист

Прайс-лист — окремий від складу перелік позицій (товарів і послуг) зі своїми папками, цінами, типами цін і штрихкодами. Він потрібен, коли продаєте те, чого нема на складі як окремого товару, або коли одна позиція прайсу при продажу має списувати кілька товарів складу.

## Можливості
- Позиції з артикулом (вручну або автогенерацією), назвою, од. виміру, ціною, собівартістю, валютою, ставкою ПДВ, вагою, об'ємом, фото.
- Свої папки й підпапки.
- Ціни за типами цін і правила формування цін (як на складі).
- Штрихкоди і пошук сканером.
- Зв'язка зі складом: продаж позиції списує вказані товари складу.
- Картка позиції: продажі, журнал змін.
- Імпорт і експорт XLSX за шаблоном.

## 1. Налаштування
- Доступ — галочка «Прайс-лист» у «Налаштування → Розділи меню» (типово увімкнено).
- Звідки брати товари в угоду — «Налаштування → Склад і товари → Загальні налаштування» → «Товари в замовленні»: «Склад» або «Прайс-лист» (лише з одного). Вибрано «Прайс-лист» — вікно «Додати товар» в угоді показує позиції прайсу.
- Поля прайс-листа задаються там само, де поля товарів.
- Типи цін і правила цін — сторінки «Типи цін» і «Правила цін» налаштувань складу.

## 2. Додати позицію
1. «Склад» → вкладка «Прайс-лист» → «+ Позиція».
2. Заповніть «Назва *», артикул (порожньо — автогенерація, якщо ввімкнено), папку, од. виміру, ціну, собівартість, валюту, ставку ПДВ.
3. «Створити». Позиція відкриється в картці: ціни за типами, фото, штрихкоди, «Продажі», «Журнал змін».

## 3. Зв'язати позицію з товарами складу
1. У картці позиції — блок «Зв'язка з товарами складу (необов'язково)».
2. «Пов'язати товар складу»: товар і кількість на одну позицію прайсу. «Зберегти зв'язку».
3. Без зв'язки позиція — «Не пов'язано — послуга без складу». Якщо ж артикул такої позиції збігається з артикулом товару складу (так приходять оголошення з каналів до «Зв'язати зі складом за артикулом»), продаж списує саме цей товар, 1 шт на позицію (20.10; раніше така позиція ставала «списаною» без руху складу). Набір чи інша кількість — лише через зв'язку «Склад».
4. «Мін. наявність на складі» (колонка таблиці й поле картки) пов'язаної позиції рахується сама, як у KeepinCRM: найменший вільний залишок серед її товарів складу (в наявності мінус резерв), поділений на кількість на одну позицію. Змінився залишок на складі — змінилось і число; вписати його вручну не можна. У позиції без зв'язку зі складом це поле вписується вручну.
5. **Вага й габарити** (власник 19.10): «Вага, кг», «Об'єм, м³», «Довжина, см», «Ширина, см», «Висота, см» — системні поля позиції (не обов'язкові; «Обов'язкове» вмикається в «Типи даних → Прайс-лист»). Пов'язана зі складом позиція бере їх із товарів складу: вага й об'єм — сума (товар × к-сть), довжина й ширина — найбільші, висота — стопкою (набір «3 шт» — утричі вищий). Змінили габарити товару складу — змінилось і тут. Вписали свої в картці позиції — галочка «З товарів складу» знімається й синхронізація цю позицію не чіпає; поставили галочку знову — числа знову з товарів складу. Ці поля беруть ТТН («з товарів угоди» в картці служби). Позиціям без зв'язки зі складом, що не мали ваги, 19.10 вписано **оцінку ШІ** (модель Opus) — запис у «Журналі» позиції «оцінка ШІ (Opus) … перевірити при зважуванні»; справжнє число просто впишіть у картку.

## 4. Продаж позиції в угоді
Коли «Товари в замовленні» = «Прайс-лист», у картці угоди «+» у блоці «Товари» відкриває вікно «Додати позицію з прайс-листа»: ліворуч папки каналів (згорнуті, «+» розгортає), праворуч позиції — довга назва переноситься в межах своєї колонки, вікно завжди на весь екран. Колонка «Вільно» показує, скільки позицій можна продати зараз: вільний залишок пов'язаних товарів складу (в наявності мінус резерв), поділений на кількість товару в одній позиції (набір «3 шт» з 20 шт на складі — 6). Прочерк «—» — позиція не пов'язана зі складом (послуга); пов'язати — у картці позиції, вкладка «Склад». Те саме число віддає API (`stock_free` у `/api/crm/pricelist`). Продаж позиції списує пов'язані товари складу (кількість — на одну позицію) тим самим етапом угоди або «⋮» позиції, що й звичайні товари.

## 5. Папки, пошук, масові дії
- Папки згортаються: спершу видно лише папки каналів, стрілка біля папки розгортає/згортає, клік по папці відкриває її й розгортає, «згорнути все» — під деревом. Що розгорнуто, пам'ятає браузер.
- «+ папка» створює папку; у дереві — перейменувати, підпапка, видалити (лише порожню).
- Пошук: назва, артикул, штрихкод. Фільтр «Актуальні» / «Неактуальні» / «Усі».
- Позначте позиції галочками: перенести в папку («У папку…» — пошук папки за назвою чи каналом, напр. «rozetka тейп», ↑↓ і Enter), «Неактуальна», «Ціна ±%» (наприклад 10 або −5) — для вибраних або «Увесь прайс-лист»; «Зняти вибір».
- Позицію, що є в угодах, не видалити — вона стає неактуальною; «Повернути в актуальні» повертає.

## 6. Імпорт і експорт
«Дії з прайс-листом» → «Імпорт» або «Експорт».
- «Імпорт прайс-листа»: «Завантажити шаблон», «Файл імпорту», «Ключ збігу» — «ID», «Rozetka Offer ID», «Артикул» або «Назва» → «Імпортувати». Збіг оновлює позицію, нема збігу — нова. Рядки з помилками — «Завантажити файл з помилками».
- «Експорт прайс-листа»: «усі поля» або вибрані, «Завантажити відфільтровані (поточна папка й пошук)».

## 7. Оголошення каналів і фід на кожен канал
- «Оголошення з каналів» (кнопка над таблицею): Prom, Rozetka, Kasta, OLX, кожен сайт і Епіцентр завантажуються в окремі папки з id оголошення, ціною майданчика і фото; повторний прогін оновлює, зникле — «Неактуальне»; автооновлення раз на N годин. Зв'язок зі складом ставиться за артикулом («Зв'язати зі складом за артикулом» — вручну).
- **Артикули кирилицею й латиницею (23.10).** «К000028» з кириличною «К» і «K000028» з латинською «K» — різні товари. Автозв'язка спершу шукає товар складу з точно таким артикулом. Двійник з іншою літерою береться лише тоді, коли такий товар один. Якщо двійників два різних, а точного збігу нема, позиція лишається без зв'язки: оберіть товар у «Пов'язати товар складу» самі. Так продаж не спишеться з чужої картки.
- **Фід на кожен канал** — `/feed/channel/<канал>.xml` (`prom`, `rozetka`, `kasta`, `epicentr`, `sites-<slug>`; другий кабінет — `<канал>-<назва акаунта>`). У фіді — оголошення цього каналу (id, артикул, ціна з прайс-листа, фото), а кількість і наявність — вільний залишок пов'язаних товарів складу: змінили залишок на складі — за 5 хвилин це видно у фіді каналу. Позиція без зв'язку зі складом віддається з кількістю, яку востаннє бачили в каналі, і позначкою `Зв'язок зі складом: ні` — агент її не обнуляє. Адреси: «Склад → Фід (YML)» і картка каналу в «Інтеграціях» → «Налаштування продажів → Фід для маркетплейсу» → «Фід каналу з прайс-листа» (зі «Скопіювати»). Ці адреси читають ШІ-агенти (Аліна → Prom, Єлизавета → Kasta, Аня → Епіцентр), Rozetka й сайти замість фіду KeepinCRM.
- Ціна у фіді — та, що в прайс-листі (= ціна на майданчику): змінили її в позиції — агент оновить на площадці.
- **Rozetka** фід не читає — для неї ті самі дані (залишок зі складу, ціна з прайс-листа) Helomi шле сама через Seller API за розкладом («Склад → Публікації» → Rozetka). Позиція без зв'язку зі складом на Rozetka не оновлюється.

## Замовлення з площадок і сайтів беруть позиції звідти ж (14.10)
Якщо в «Налаштування → Товари → Товари в замовленні» стоїть «Прайс-лист», приймання замовлень з Prom, Rozetka, Kasta, Епіцентру, OLX, сайтів і Telegram підбирає кожну позицію з прайс-листа: спершу оголошення цього каналу з тим самим id товару на площадці, потім Rozetka Offer ID, потім артикул, потім назва. Склад списується матеріалами позиції; позиція без матеріалів списує товар складу з тим самим артикулом (1 шт), а без такого товару — послуга, складу не чіпає. Якщо стоїть «Склад» — позиція шукається серед товарів складу, як раніше (артикул або режим «Зв'язок позицій» у картці каналу).

## Можливі помилки
| Що ви бачите | Чому | Що зробити |
| --- | --- | --- |
| «Поле формує правило «…» — ручне редагування заборонене» | Ціну рахує правило цін | Змініть правило або вимкніть його |
| Позиція не видаляється, а стає «неактуальна» | Позиція є в угодах | Залиште неактуальною |
| «Видалити порожню папку?» не спрацьовує | У папці є позиції | Перенесіть позиції в іншу папку |
| Штрихкод «… уже є» | Штрихкод має бути унікальним | Перевірте штрихкод |
| `/feed/channel/<канал>.xml` → «Такого каналу у прайс-листі немає» | Оголошення цього каналу ще не завантажені | «Оголошення з каналів» → вибрати канал → «Завантажити» |
| У фіді каналу кількість не зі складу | Позиція не пов'язана з товаром складу | «⋮ → Зв'язати зі складом за артикулом» або зв'язка вручну в картці |

## Для ШІ-співробітників
5`. Позицію прайсу в угоді ШІ бачить у `deals_get` серед позицій.

## Додаткова інформація
- Пов'язані статті: [Склад і товари](products.md), [Склад: накладні, інвентаризації, переміщення](warehouse-docs.md), [Угоди](deals.md), [Імпорт і експорт](import-export.md).

## Назва Checkbox

Поле «Назва Checkbox» у картці позиції й колонкою в таблиці — назва товару для фіскального чека, одна на артикул. Склад передає її в прайс-лист: поле само дорівнює назві пов'язаного товару складу («Зв'язок зі складом») і оновлюється, коли товар перейменували. Своє значення можна вписати, «= зі складу» повертає назву складу. У чек іде саме це поле (див. статтю «Фіскальні чеки Checkbox»).
