Сценарий знакомый: клиент оформил заказ по телефону, менеджер подтвердил его вручную, а оплачивать он будет позже — по счёту, при получении или через отдельную ссылку. В админке 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. Он делает две вещи: добавляет понятный статус для неоплаченных подтверждённых заказов и не даёт случайно закрыть заказ как оплаченный.