Почему важно автоматизировать создание счёт-фактуры в WooCommerce
Для онлайн-магазинов, работающих с юридическими лицами и ИП, своевременная генерация счёт-фактуры является обязательным этапом документооборота. Ручное создание счёт-фактуры после каждого подтверждённого заказа занимает время и повышает риск ошибок. Автоматизация процесса помогает ускорить обработку заказов и улучшить клиентский сервис.
Диагностика: как понять, что счёт-фактура не создаётся автоматически
Если при подтверждении заказа вы не получаете готовый счёт-фактуру или уведомление с ним, проверьте следующие моменты:
- Ваша тема или плагин не поддерживают функционал генерации счёт-фактур.
- Нет интеграции с сервисом формирования документов (например, через API).
- Отсутствует нужный хук для автоматической генерации и отправки счёт-фактуры.
Для проверки можно активировать логирование в WooCommerce и посмотреть, вызывается ли функция формирования счёта после смены статуса заказа на «выполнен» или «обработан».
Пошаговое решение: создание счёт-фактуры при смене статуса заказа
1. Подключение плагина для генерации PDF-счёт-фактуры
Установите и активируйте один из популярных плагинов, например, Clearfy Pro (имеет модуль для создания документов) или специализированный плагин WooCommerce PDF Invoices & Packing Slips.
2. Добавление кода для автоматической генерации и отправки счёт-фактуры
Если плагин не поддерживает автоматическую отправку, добавьте следующий код в functions.php вашей дочерней темы или в кастомный плагин:
add_action('woocommerce_order_status_completed', 'custom_generate_invoice_and_email');
function custom_generate_invoice_and_email($order_id) {
if (!$order_id) return;
$order = wc_get_order($order_id);
if (!$order) return;
// Предполагается, что у плагина есть функция generate_invoice_pdf()
// Замените на реальный вызов плагина
$pdf_path = generate_invoice_pdf($order_id);
if (!$pdf_path) return;
// Отправка письма с вложением
$to = $order->get_billing_email();
$subject = 'Ваш счёт-фактура по заказу #' . $order->get_order_number();
$headers = array('Content-Type: text/html; charset=UTF-8');
$attachments = array($pdf_path);
$message = 'Здравствуйте, во вложении ваш счёт-фактура.';
wp_mail($to, $subject, $message, $headers, $attachments);
}Обратите внимание, что функция generate_invoice_pdf — пример. В вашем плагине она может называться по-другому. Изучите документацию плагина и вызовите нужный метод.
3. Настройка триггера по статусу заказа
В WooCommerce счёт-фактура обычно формируется при переходе заказа в статус completed или processing. Убедитесь, что хук woocommerce_order_status_completed или woocommerce_order_status_processing подходит под ваш бизнес-процесс.
Как проверить, что счёт-фактура создаётся и отправляется
- Создайте тестовый заказ в WooCommerce.
- Переведите заказ в статус, на который повешен хук (например, «завершён»).
- Проверьте электронную почту, указанную в заказе — должно прийти письмо со счётом в формате PDF.
- Проверьте логи сервера и WooCommerce на предмет ошибок при генерации PDF или отправке письма.
- Если плагин сохраняет копии счётов, проверьте, что файл действительно создан и соответствует заказу.
Частые ошибки и их исправление
- Функция генерации PDF не найдена или возвращает false
Проверьте правильность вызова функций плагина и наличие всех зависимостей. - Письмо не отправляется
Настройте SMTP для WordPress или используйте специальные плагины (например, WP Mail SMTP) для надёжной доставки писем. - Счёт создаётся, но не соответствует требованиям ФНС
Используйте проверенные плагины с поддержкой актуальных стандартов документооборота. - Хук срабатывает несколько раз
Добавьте флаг или проверку, чтобы избежать дублирования писем и документов.
Практические советы по безопасности и производительности
- Генерируйте PDF только при необходимости, чтобы не нагружать сервер.
- Храните счёта в защищённой папке вне публичного доступа, если они содержат персональные данные.
- Используйте транзакции и обработку ошибок при работе с базой и файловой системой.
- Настройте лимиты на размер вложений в письмах, чтобы избежать проблем с доставкой.
Сравнение вариантов реализации автоматической генерации счёт-фактуры
| Способ | Плюсы | Минусы | Рекомендации |
|---|---|---|---|
| Плагин WooCommerce PDF Invoices | Быстрая установка, готовый функционал | Ограниченная кастомизация, зависит от обновлений | Подходит для большинства магазинов |
| Clearfy Pro с модулем документов | Интеграция с SEO, оптимизация сайта, поддержка документооборота | Платный продукт, может быть избыточен | Если нужны комплексные инструменты оптимизации |
| Собственная реализация через хуки и сторонние библиотеки | Максимальная гибкость, точное соответствие требованиям | Требует разработки и поддержки | Для уникальных бизнес-процессов и сложных интеграций |