Как закрыть заказ в WooCommerce без оплаты и не сломать складские остатки

Сценарий знакомый: клиент оформил заказ по телефону, менеджер подтвердил его вручную, а оплачивать он будет позже — по счёту, при получении или через отдельную ссылку. В админке WooCommerce такой заказ часто переводят в completed или processing «на глаз», и дальше начинаются побочные эффекты: склад уменьшается раньше времени, письма уходят не в тот момент, а отчёты по выручке выглядят как будто деньги уже получены.

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

Когда проблема проявляется на практике

Обычно это видно по одному из признаков:

  • заказ переводят в completed, хотя оплаты ещё не было;
  • остатки товара уменьшаются сразу после ручной смены статуса;
  • клиент получает письмо о завершении заказа раньше оплаты;
  • менеджеры путают «подтверждён» и «оплачен»;
  • в CRM или внешней системе заказ уходит как закрытый, хотя фактически он только принят в работу.

Если у вас есть офлайн-оплата, счёт для юрлиц или частичная предоплата, лучше разделить два состояния: заказ принят и заказ оплачен. В WooCommerce это не одно и то же.

Какой статус использовать вместо завершённого

Для неоплаченного, но подтверждённого заказа обычно подходят:

  • on-hold — заказ удерживается до оплаты;
  • pending — ожидает оплаты;
  • кастомный статус, если у вас отдельный процесс обработки.

Если задача простая, чаще всего достаточно on-hold. Этот статус понятен менеджерам и не выглядит как финальная точка. Главное — не переводить такой заказ в completed только ради удобства.

Диагностика: что именно сейчас ломает процесс

Перед изменениями проверьте три вещи.

1. Когда списывается остаток

В WooCommerce остатки обычно уменьшаются при переходе заказа в статус, который считается «обрабатываемым» или «завершённым», в зависимости от настроек и способа оплаты. Если товар уходит со склада слишком рано, проблема не в самом заказе, а в выбранном статусе и логике списания.

2. Какие письма уходят

Откройте WooCommerce → Настройки → Email и посмотрите, какие уведомления привязаны к статусам processing, completed и on-hold. Часто именно здесь видно, почему клиент получает «заказ завершён» до фактической оплаты.

3. Есть ли внешняя интеграция

Если заказ уходит в 1С, CRM или складскую систему, проверьте, какой статус она считает финальным. Иногда внешняя система реагирует не на оплату, а на любой перевод в completed.

Пошаговое решение без плагинов

Ниже вариант для темы или небольшого mu-plugin. Он делает две вещи: добавляет понятный статус для неоплаченных подтверждённых заказов и не даёт случайно закрыть заказ как оплаченный.


            
Как закрыть дубли страниц пагинации в WordPress без вреда для индексации
22.08.2026