WooCommerce: устройство автоматического создания счетов-фактур для заказов

Диагностика проблемы: почему автоматические счета-фактуры не создаются

В стандартной установке WooCommerce нет встроенного механизма автоматического создания счетов-фактур при оформлении заказа. Многие магазины сталкиваются с необходимостью автоматизировать этот процесс для удобства бухгалтерии и клиентов. Проблемы чаще всего связаны с отсутствием интеграции, неправильной конфигурацией плагинов или ошибками в коде, если реализуется кастомный функционал.

Если вы заметили, что счета-фактуры не создаются автоматически либо не прикрепляются к письмам с подтверждением заказа, проверьте следующие моменты:

  • Установлен ли плагин для генерации счетов-фактур (например, WooCommerce PDF Invoices & Packing Slips или аналогичный).
  • Активирована ли опция автоматической генерации и прикрепления счетов к письмам.
  • Нет ли конфликтов с другими плагинами, которые влияют на обработку заказов.
  • Если реализован кастомный код, не вызывает ли он ошибок и корректно ли подключается к нужным хукам WooCommerce.

Пошаговое решение: как настроить автоматическое создание счетов-фактур

1. Установка и базовая настройка плагина WooCommerce PDF Invoices & Packing Slips

Этот бесплатный плагин является одним из самых популярных решений. Он автоматически генерирует PDF-счета на основе шаблонов.

  1. Перейдите в админку WordPress > Плагины > Добавить новый.
  2. Найдите WooCommerce PDF Invoices & Packing Slips и установите плагин.
  3. Активируйте его.
  4. В меню WooCommerce появится новый пункт «PDF Invoices».
  5. В настройках включите опцию "Attach invoice to customer emails" (Прикреплять счет к письмам клиентам).
  6. При необходимости настройте шаблон счета, добавьте логотип, реквизиты компании.

2. Автоматизация создания счета сразу после оплаты

По умолчанию плагин генерирует счет при смене статуса заказа на "Обработан" (processing) или "Завершен" (completed). Чтобы убедиться, что счет создаётся именно в нужный момент, можно добавить кастомный код для принудительного создания счета при изменении статуса заказа, например:

add_action('woocommerce_order_status_completed', 'generate_invoice_on_completed_status');
function generate_invoice_on_completed_status($order_id) {
    if (!$order_id) return;
    // Проверяем, что плагин активен
    if (class_exists('WooCommerce_PDF_Invoices')) {
        $invoice = WooCommerce_PDF_Invoices::get_instance();
        $invoice->get_invoice($order_id); // Генерируем счет
    }
}

Этот код можно добавить в файл functions.php вашей темы или в кастомный плагин.

3. Прикрепление счета к письмам вручную (если автоматизация не работает)

Если по каким-то причинам плагин не прикрепляет счет автоматически, добавьте код для встраивания PDF в письма WooCommerce:

add_filter('woocommerce_email_attachments', 'attach_invoice_to_email', 10, 3);
function attach_invoice_to_email($attachments, $email_id, $order) {
    if ($email_id === 'customer_completed_order' && $order instanceof WC_Order) {
        $upload_dir = wp_upload_dir();
        $pdf_path = $upload_dir['basedir'] . '/woocommerce/invoices/' . $order->get_id() . '.pdf';
        if (file_exists($pdf_path)) {
            $attachments[] = $pdf_path;
        }
    }
    return $attachments;
}

Проверка результата после внедрения

Чтобы убедиться, что автоматическое создание счетов-фактур работает корректно:

  • Создайте тестовый заказ с оплатой.
  • Проверьте, что в папке загрузок WordPress (обычно wp-content/uploads/woocommerce/invoices/) появился PDF-файл с номером заказа.
  • Проверьте письмо с подтверждением заказа — счет должен быть прикреплен.
  • Откройте PDF и убедитесь, что данные счета корректны: реквизиты, список товаров, суммы.

Частые ошибки и как исправить

  • Счета не создаются при смене статуса заказа: проверьте, что статус заказа меняется на "processing" или "completed"; при кастомных статусах добавьте нужные хуки.
  • PDF-файл не прикрепляется к письму: убедитесь в правильности пути к файлу и прав доступа на чтение.
  • Конфликты с другими плагинами: отключайте поочередно плагины, чтобы найти виновника; используйте стандартную тему для проверки.
  • Плагин не активируется или ошибки PHP: проверьте версию WooCommerce и WordPress, совместимость плагина.

Практические советы по безопасности и производительности

  • Храните сгенерированные PDF в защищенной папке, недоступной напрямую из браузера, чтобы избежать утечек данных.
  • Очищайте старые счета-фактуры по расписанию, если у вас много заказов, чтобы не перегружать хранилище.
  • Кэшируйте шаблоны счетов, если используете кастомные генераторы PDF для повышения скорости.
  • Мониторьте логи ошибок PHP и WooCommerce, чтобы быстро выявлять проблемы с созданием счетов.

Сравнение вариантов автоматической генерации счетов-фактур

МетодПлюсыМинусыПример
Плагин WooCommerce PDF Invoices & Packing SlipsПрост в установке, бесплатный, поддержка шаблоновОграниченная кастомизация, требует обновленийhttps://ru.wordpress.org/plugins/woocommerce-pdf-invoices-packing-slips/
Кастомный код на основе TCPDF или DOMPDFМаксимальная гибкость дизайна и логикиТребует знаний PHP, сложен в поддержкеПример кода выше
Платные решения и интеграции с 1С или CRMПолная автоматизация бухгалтерии, поддержка налоговых требованийСтоимость, настройкаЗависит от провайдера
Как запретить редактирование постов в WordPress для определённых ролей
05.03.2026
Как использовать хуки в WordPress для расширения функционала
23.11.2025
Как сделать отзывы с оценками без плагинов
05.01.2026
Как сделать автоматический экспорт записей WordPress в CSV
02.03.2026
WooCommerce: установка и настройка оплаты платежными системами без ошибок
25.05.2026