Ви помітили в логах свого інтернет-магазину на WooCommerce повідомлення: «Несплачене замовлення відмінено − вичерпано час на оплату. Статус замовлення змінено з “Очікування оплати” на “Скасовано”» (в англійській версії: «Unpaid order cancelled—time limit reached. Order status changed from pending payment to cancelled»)? Не хвилюйтеся! У цій статті ми детально розберемо, чому виникає така ситуація, як це пов’язано з платіжними шлюзами (PayPal, LiqPay, WayForPay, Monobank тощо) і як усунути проблему за дві хвилини.
Управління магазином на WooCommerce іноді супроводжується несподіваними збоями. Одна з найчастіших проблем, із якою стикаються власники сайтів — автоматичне скасування замовлень, які клієнти насправді вже оплатили або перебувають у процесі підтвердження транзакції. Через це виникає плутанина як для адміністратора магазину, так і для самого покупця.
Основні тези (Key Takeaways)
- Помилка «Несплачене замовлення відмінено − вичерпано час на оплату» спричинена стандартним налаштуванням WooCommerce, яке автоматично анулює замовлення після закінчення відведеного часу.
- Ця проблема найчастіше проявляється при роботі з зовнішніми платіжними шлюзами (зокрема PayPal та іншими сервісами еквайрингу) через стандартні параметри управління залишками.
- Щоб прибрати автоматичне скасування, достатньо очистити поле «Утримувати товар (хвилин)» (Hold stock) у налаштуваннях інвентарю WooCommerce.
Що означає помилка «Несплачене замовлення відмінено − вичерпано час на оплату» у WooCommerce?
Першопричиною цієї проблеми є вбудована система управління запасами WooCommerce, а саме опція Утримувати товар (Hold Stock). Ця функція створена для тимчасового бронювання товарних залишків на складі за покупцями, які вже оформили замовлення, але ще не встигли провести оплату.
Як працює цей алгоритм:
- Коли клієнт оформлює замовлення на сайті, WooCommerce встановлює йому статус «Очікування оплати» (Pending payment) та резервує обрані позиції.
- Система чекає на підтвердження платежу від платіжного шлюзу, що зазвичай займає кілька хвилин.
- Якщо підтвердження не надходить протягом заданого часу, WooCommerce вважає, що покупець передумав, і автоматично переводить замовлення у статус «Скасовано» (Cancelled), додаючи в примітки запис: «Несплачене замовлення відмінено − вичерпано час на оплату».
За замовчуванням у WooCommerce встановлено ліміт у 60 хвилин. Хоча ця функція корисна для захисту від продажу товарів, яких фізично немає на складі, вона часто створює конфлікти з платіжними системами, де підтвердження транзакції може тривати довше за відведене системне вікно.
Чому замовлення скасовуються при оплаті через PayPal та інші платіжні шлюзи?
При використанні PayPal або інших сторонніх платіжних сервісів часто виникає часовий розрив між моментом списання коштів із картки клієнта та моментом, коли платіжна система передає сайту підтвердження про успішну операцію (callback/webhook). Через це замовлення застрягає у статусі «Очікування оплати» довше, ніж дозволяє стандартний таймер WooCommerce.
Основні причини таких затримок:
- Додаткові перевірки безпеки: Для міжнародних переказів або платежів від нових користувачів PayPal може витрачати кілька додаткових хвилин (а іноді й годин) на верифікацію транзакції.
- Пікові навантаження на сервери: Під час розпродажів або високого трафіку в інтернет-магазинах черги обробки платежів на стороні платіжних агрегаторів збільшуються.
- Короткочасні збої зв’язку API: Тимчасові затримки передачі даних між серверами платіжного шлюзу та вашим хостингом перешкоджають миттєвому оновленню статусу замовлення.
Найгірше те, що в такій ситуації кошти з покупця можуть списатися із запізненням, але замовлення в адмін-панелі вже матиме статус «Скасовано».
Як виправити помилку «Несплачене замовлення відмінено − вичерпано час на оплату»?
Виконайте два прості кроки в адмін-панелі сайту, щоб вимкнути примусове скасування замовлень за таймаутом:
Крок 1: Відкрийте налаштування запасів WooCommerce
Увійдіть у консоль WordPress і перейдіть у розділ:
WooCommerce > Налаштування > Товари > Запаси (в англійському інтерфейсі: WooCommerce > Settings > Products > Inventory).
Крок 2: Видаліть ліміт часу утримання товару
На сторінці налаштувань запасів знайдіть пункт «Утримувати товар (хвилин)» (Hold stock (minutes)). За замовчуванням у цьому полі вказано значення 60.
- Просто видаліть цифру 60, залишивши поле абсолютно порожнім.
- Прогортайте сторінку вниз і натисніть кнопку Зберегти зміни.
Очищення цього поля повністю відключає автоматичне анулювання замовлень за таймером. Зазвичай платіжні шлюзи підтверджують оплату за 1–2 хвилини, проте при будь-яких затримках на стороні банку або PayPal замовлення спокійно залишатиметься в статусі «Очікування оплати», доки система не отримає фінальний статус транзакції.
Що робити, якщо проблема з платежами не зникла?
Якщо ви очистили поле утримання товару, але в логах замовлень усе одно з’являються помилки або некоректні статуси оплат, перевірте наступне:
- Перевірте інтеграцію та Webhooks: Переконайтеся, що ваш акаунт PayPal або іншого платіжного шлюзу правильно підключений до WooCommerce, а в налаштуваннях платіжного модуля вказані коректні URL-адреси для сповіщень про статус оплати.
- Зверніться до техпідтримки плагіна: Якщо ви використовуєте спеціалізований плагін для інтеграції платіжної системи, напишіть у службу підтримки розробників та надайте логи транзакцій для діагностики.
Висновок
Помилка «Несплачене замовлення відмінено − вичерпано час на оплату. Статус замовлення змінено з “Очікування оплати” на “Скасовано”» виникає через стандартний ліміт утримання товарних залишків у WooCommerce (60 хвилин). При найменшій затримці відповіді від платіжної системи магазин автоматично закриває замовлення як неоплачене.
Найпростіший і найнадійніший спосіб вирішити цю проблему — очистити поле «Утримувати товар (хвилин)» у налаштуваннях інвентарю WooCommerce. Це забезпечить коректну фіксацію всіх платежів без втрати замовлень.
Поширені запитання (FAQ)
Що таке несплачене замовлення (unpaid order)?
Це замовлення, оформлене покупцем на сайті, за яким система ще не отримала підтвердження про надходження коштів. Воно фіксується в момент переходу клієнта на сторінку оплати.
Що означає статус замовлення «Скасовано» (cancelled)?
Цей статус вказує на те, що операцію було анульовано — самим користувачем під час оплати або автоматично системою сайту через закінчення часу очікування. Такі замовлення не передаються в роботу менеджерам.
Чому в логах пише «Несплачене замовлення відмінено − вичерпано час на оплату»?
Це системний запис WooCommerce, який означає, що відведений ліміт часу (за замовчуванням 60 хвилин) на підтвердження транзакції сплив, і двигун сайту автоматично зняв резерв із товарів, скасувавши замовлення.
