Більшість українських SMB-команд не мають eCommerce-сайту з кошиком. Замовлення приймає менеджер, рахунки виставляє бухгалтерія, клієнт оплачує з банк-клієнта по реквізитам. Це працює — поки клієнтів десять. Коли їх стає сто, виникає типовий збій: менеджер надсилає клієнту рахунок поштою, клієнт не платить два дні, менеджер передзвонює, клієнт каже «не встиг ввести реквізити, переключився». Гроші зависають, угода тоншає.
Стандартний Odoo має кнопку «Pay» у клієнтському порталі — але клієнт має туди зайти, авторизуватися, знайти інвойс, натиснути кнопку. Це три кроки drop-off, які SMB-команди постійно недооцінюють.
Двоє модулів — kw_generate_payment_link_account_move (для рахунка) і kw_generate_payment_link_so (для замовлення) — додають у Odoo один computed-field: посилання на оплату цього конкретного документа. Менеджер бере це посилання, вставляє в лист, повідомлення в месенджер чи в SMS — клієнт натискає, потрапляє на сторінку оплати, платить.
Третій модуль — kw_pure_payment_pay — це альтернативна, легка сторінка оплати. Про неї нижче, у блоці про кіоски.
Що з'являється на рахунку і замовленні
Після встановлення на формі рахунка (Customer Invoice) і замовлення на продаж (Sale Order) з'являється поле «Посилання на оплату», яке автоматично перераховується щоразу, коли змінюється сума заборгованості або контрагент. Менеджер не натискає «згенерувати» — посилання вже там, скопіюй і відправ.
URL виглядає так:
https://your-odoo.example/payment/pay
?reference=INV/2026/0042
&amount=12480.00
&access_token=<підписаний токен>
&invoice_id=<id рахунка>
Підписаний токен — це гарантія, що посилання не можна підкоригувати: якщо клієнт чи хтось у листуванні змінить суму у URL — токен перестане збігатися й Odoo не дозволить оплату. Це стандартний механізм з ядра Odoo, модулі його не переписують, а використовують.
З яким провайдером оплати — MonoBank, LiqPay, WayForPay, Privat24Pay
Модулі — provider-agnostic. Вони генерують посилання на стандартний Odoo-endpoint /payment/pay, а який саме провайдер обслуговує транзакцію — визначається у вашому Payment Providers у Settings.
Це означає: якщо ви вже встановили модулі-інтегратори (наприклад, MonoBank Acquiring, LiqPay, WayForPay чи Privat24Pay — KitWorks має кожен з цих модулів окремо у каталозі), kw_generate_payment_link_* працюватиме поверх будь-якого з них. Клієнт побачить ваш звичний checkout. Якщо у вас активовано декілька провайдерів — клієнт обере на сторінці оплати.
Жодних окремих ключів API ці модулі не вимагають. Вони — тонкий шар над тим, що у вас уже є.
Менеджер працює з посиланням, не з реквізитами
Сценарії, які знімаються одразу після впровадження:
- Лист «Дякуємо за замовлення» — у тілі листа і в підвалі: кнопка «Оплатити». Клієнт не шукає реквізитів.
- SMS / Telegram-нагадування — менеджер копіює посилання, скорочує через будь-який shortener і відправляє «Це ваш Рахунок №12345, оплата за посиланням».
- PDF рахунка з QR-кодом — посилання можна за бажанням обернути в QR-код у шаблоні рахунка (це окреме невелике налаштування шаблону, описано у супровідній документації модуля).
Час між «менеджер виставив рахунок» і «клієнт натиснув Оплатити» падає з днів до хвилин — навіть на B2B-угодах, де клієнт всеодно проводить оплату через свій банк-клієнт, факт «гроші зайшли в систему» зазвичай прискорюється.
Легка сторінка оплати — для кіосків, повільного 4G і старих смартфонів
Стандартна Odoo-сторінка /payment/pay тягне за собою повний website-bundle: heavy CSS, тонни JS, шрифти. На офісному ноутбуку це непомітно. На:
- Касовому кіоску з 2 ГБ оперативної пам'яті,
- Польовому планшеті з повільним мобільним інтернетом,
- Старому Android-смартфоні клієнта-водія, який платить за прибуття,
— це може означати 5-10 секунд завантаження або повне зависання сторінки.
kw_pure_payment_pay перевизначає шаблон оплати на легкий: тільки Bootstrap і jQuery, без зайвого. Endpoint виноситься на /website_payment/transaction/pure/. Кінцевий вигляд той самий — кнопки тих самих провайдерів, з якими ви працюєте, — але вантажиться все вдвічі-втричі швидше.
Якщо у вас немає кіосків і ви не виплачуєте картами в полі — модуль не обов'язковий. Це окрема ніша, яку добре закриває один невеликий модуль.
Кому ці модулі найкорисніші
- Сервісні бізнеси без shop (агентства, консалтинг, ремонт техніки) — рахунки за послуги треба отримати оплачені швидко.
- B2B-постачальники — наявність кнопки «Оплатити» у рахунку зменшує тертя у порівнянні з «реквізити внизу листа».
- Команди з активним outbound-продажем — менеджер відправляє рахунок прямо з телефону, клієнт оплачує до того, як угода охолоне.
- POS-кіоски та виїзні касири —
kw_pure_payment_payдає швидку сторінку для оплати на місці.
Що далі
У наступному матеріалі цього циклу — ФОП в Odoo: мульти-реєстрація, нумерація і друк документів, типовий випадок коли одна юридична особа працює з кількома ФОП. Якщо у вас зараз менеджери диктують реквізити в листах руками — це перший крок до виходу з цього сценарію.