Перейти до основного контенту
База знань · виробничий облік USD41,42 ПДВ20% МЗП8 000

Виробництво · Середній

Multi-level BoM: kit vs phantom — коли який

Дві стратегії складних виробів: kit «розгортає» компоненти прямо на батьківському MO, manufacture виробляє вузол окремим MO. Розбираємо, коли який вибрати.

Час
20 хвилин
Модуль Odoo
Manufacturing → BoM (mrp.bom, type=phantom|normal)
Читання
~3 хв
  • BoM
  • kit
  • phantom
  • subassembly

Складний виріб майже ніколи не буває «плоским»: усередині нього сидять підвузли, а в тих підвузлах — свої компоненти. Питання щоразу одне: який вузол має жити на складі окремою позицією та зі своєю собівартістю, а який — лише технологічний крок, не вартий окремого документа. Тут ви навчитеся розрізняти ці два випадки й налаштовувати кожен підвузол як manufacture або kit, щоб не плодити зайвих MO і водночас не втрачати контроль над собівартістю.

Результат

Розумієте, коли робити вузол окремим виробничим замовленням, а коли — просто розгортати його компоненти прямо на батьківському MO. Не плодите зайвих документів, але й не втрачаєте контроль над собівартістю проміжних вузлів.

Передумови

  • Виріб має внутрішню структуру — складається з підвузлів (наприклад, готовий пристрій = плата + корпус + блок живлення, причому плата теж має свою BoM).
  • Кожен підвузол уже заведений як окремий продукт.
  • Знаєте, який вузол хочете бачити на складі окремою позицією, а який — ні.

Як це зробити

  1. Складіть дерево. Перш ніж торкатися Odoo, розберіться зі структурою на папері. Намалюйте, що з чого складається на 2–3 рівні. Кожен вузол — це або «річ, яку можна зберігати окремо», або «технологічний крок, який має сенс тільки всередині батьківського виробу».

  2. Для кожного підвузла зробіть свою BoM. Manufacturing → Bills of Materials → New, як у першому гайді. На цьому етапі тип BoM можна не чіпати.

  3. Виберіть стратегію для кожного підвузла:

    • Manufacture this product (normal). Підвузол стане окремим MO: на нього виписують наряд, він проходить свої стани й оприбутковується на склад. Використовуйте, коли:

      • вузол потрапляє на склад як окрема позиція (можна продати окремо або відправити в інший цех);
      • треба бачити собівартість підвузла окремо;
      • підвузол має свої серійні номери або lot tracking;
      • технологічний цикл вузла довгий і його зручно планувати окремо.
    • Kit (phantom). Підвузол не отримує свого MO — Odoo «розгорне» його компоненти прямо в батьківському MO. Використовуйте, коли:

      • вузол — просто логічне групування (наприклад, «кріплення» = болт + гайка + шайба);
      • не цікаво бачити собівартість вузла окремо;
      • вузол ніколи не лежить на складі — його збирають просто під час складання батьківського виробу;
      • на BoM в полі BoM Type виставляєте Kit.
  4. Перевірте на батьківському MO. Запустіть тестовий MO на головний виріб:

    • якщо підвузол — Manufacture, ви побачите кнопку Replenish Manufacturing або автоматично створений child MO (за procurement_group_id);
    • якщо підвузол — Kit, на батьківському MO у компонентах одразу видно «розгорнуті» матеріали підвузла.
  5. Налаштуйте reordering для manufacture-вузлів. Якщо вузол виробляється окремо, треба маршрутизація Manufacture на самому продукті (вкладка InventoryRoutes) — інакше Odoo не зрозуміє, що йому робити child MO.

Перевірка

  • При MO на готовий виріб з Kit-підвузлом у списку компонентів видно матеріали найнижчого рівня.
  • При MO на готовий виріб з Manufacture-підвузлом автоматично з’являється child MO для підвузла (або резерв на складі, якщо є залишок).
  • Звіт Bill of Materials Structure показує дерево з усіма рівнями і нормативну собівартість на кожному.

Якщо щось пішло не так

  • Подвійне списання. Підвузол позначили як Kit, але на нього все одно зробили MO вручну. Або матеріали підвузла лежать у самій батьківській BoM. Перевірте дерево — кожна сировина має зустрічатися рівно один раз.
  • Child MO не створюється. На продукті-підвузлі немає маршруту Manufacture в Inventory → Routes. Або BoM на підвузол неактивна.
  • «Phantom» не розгортається. Старе слово з Odoo 13 — у сучасних версіях це Kit у полі BoM Type. Якщо в інтерфейсі бачите Phantom, це той самий механізм.
  • MO підвузла зависає в Confirmed. Не вистачає матеріалів на складі. Перевірте кількості або налаштуйте Pull from-маршрут на постачальника.
  • Собівартість «зникла» на верхньому рівні. Підвузол — Manufacture, але його MO ще не закритий. Доки child MO не в стані Done, його собівартість не «впала» в батьківський. Закрийте child MO першим.

Дотичне