Поки хтось вручну стежить за залишками на складі, рано чи пізно ходовий товар закінчиться в найгірший момент — а замовлення постачальнику згадають подати запізно. Тут ви налаштуєте правила перезамовлення (reordering rules), щоб Odoo сам стежив за запасами й формував чернетку RFQ, щойно залишок опуститься нижче мінімуму. Менеджеру лишиться відкрити готовий список і підтвердити — без щоденного моніторингу й без зривів через прострочену закупівлю.
Результат
Odoo сам моніторить рівень запасів і формує RFQ постачальнику, коли quant опускається нижче мінімуму. Менеджер бачить готовий список — лишається тільки підтвердити.
Передумови
- Активований модуль Purchase і призначений
seller_ids(постачальник за замовчуванням) на товарі. - Налаштовано supplier lead time на
product.supplierinfo— Odoo враховує його, коли розраховує дату замовлення. - Зрозуміла різниця між MTS (зі складу) і MTO (під замовлення) — правила потрібні саме для MTS-позицій.
- На товарі
route_idsмістить Buy (а не лише Manufacture).
Як це зробити
Спершу створимо саме правило для конкретного товару, далі задамо пороги й маршрут, а наприкінці запустимо планувальник, який і породжує RFQ.
- Відкрийте правила перезамовлення. Перейдіть у Інвентаризація → Операції → Правила повторного замовлення. Натисніть Створити.
- Виберіть продукт і локацію. У полі
product_idоберіть товар (наприклад, болт М10×40), уlocation_id— конкретний склад або локацію зберігання. Якщо склад один — Odoo підставить його автоматично. - Задайте
min_qtyіmax_qty. Min — мінімальний залишок, нижче якого спрацьовує тригер. Max — цільовий запас, до якого Odoo доводить рівень. Наприклад, min 500, max 2000 шт. - Налаштуйте
qty_multiple. Якщо постачальник продає лише пакетами по 100 шт, поставте 100 — Odoo округлить замовлення вгору до кратного. - Перевірте маршрут. У полі
route_idмає бути Buy. Якщо порожнє — Odoo візьме маршрут із товару; якщо й там нема — правило не спрацює. - Збережіть і запустіть планувальник. Натисніть Виконати планувальник (Run Scheduler) у верхньому меню, або зачекайте, поки cron
procurement.schedulerвідпрацює (за замовчуванням раз на добу о 6). - Перевірте створений RFQ. Перейдіть у Закупівлі → Запити на пропозиції — там з’явиться чернетка на потрібну кількість, постачальник підставлений із
seller_ids. Перевіртеdate_planned(це сьогодні + lead time) і підтверджуйте. - Налаштуйте періодичність cron (опційно). У режимі розробника відкрийте Налаштування → Технічно → Заплановані дії → Run Procurement Scheduler, поставте інтервал, який вам зручний.
Перевірка
- Через тиждень на залишку 480 шт (нижче мінімуму 500) у списку RFQ автоматично з’явилася чернетка на 1520 шт (2000 − 480).
- На картці правила в розділі Огляд видно поточну
qty_available,qty_to_orderі дату наступного перерахунку. - У звіті Звіт про закупівлі → Прогноз видно лінію очікуваного приходу за датою
date_planned + lead time.
Якщо щось пішло не так
| Симптом | Причина | Виправлення |
|---|---|---|
| Планувальник пройшов, RFQ не створився | На товарі немає seller_ids або відсутня ціна | Відкрийте товар → вкладка Purchase → додайте постачальника з ціною; перезапустіть scheduler |
| Створилось два дублі RFQ на той самий товар | Кілька активних правил на одну локацію або правило в parent-локації | Залиште одне правило на пару (product, warehouse); видаліть дублі через Дія → Видалити |
| RFQ створюється щодня | min_qty стоїть вище за max_qty або scheduler рахує без врахування вже замовленого | Перевірте логіку: qty_to_order = max_qty − qty_available − qty_incoming; якщо qty_incoming не рахується — у scheduler стоїть фільтр «без чернеток PO» |
| Lead time не враховується, дата завжди сьогодні | delay на product.supplierinfo = 0 | Відкрийте товар → вкладка Purchase → у рядку постачальника впишіть «Delivery Lead Time» у днях |
| MRP-планувальник скаржиться «no available route» | На товарі або категорії немає route Buy | Перейдіть у Інвентаризація → Конфігурація → Маршрути, перевірте, що Buy активний, потім додайте на товар |
Дотичне
- Перша подія в закупівлі — коли спрацьовує тригер ПК з ПДВ.
- Odoo Purchase — модуль і моделі.
- Odoo Inventory —
stock.warehouse.orderpointіstock.quant. - RFQ → PO → отримання — як саме обробити створений RFQ.