Главная/WordPress Fullstack/Блупринты/WooCommerce/Автоматическая генерация строгих PDF-счетов на оплату и накладных для юридических лиц
К карточкам раздела «WooCommerce»
WooCommerce(ТЗ 42 из 54)
ТЗ: Автоматическая генерация строгих PDF-счетов на оплату и накладных для юридических лиц
WooCommerce5 шагов • +25 XP

ТЗ: Автоматическая генерация строгих PDF-счетов на оплату и накладных для юридических лиц

Разработка модуля генерации официальных PDF-счетов с реквизитами, факсимиле подписи, печатью и платежным QR-кодом (ГОСТ). Автоматическое прикрепление PDF к письмам клиенту при выборе безналичного расчета.

~12 ч работыУровень: MiddleDompdf / mPDFwoocommerce_email_attachmentsQR Code GOST GeneratorHTML-to-PDF TemplateHPOS Invoicing MetaSecurity Download Tokens
+5 XP за шаг
Выполнено 0 из 5 шагов (0%)
Трудозатраты~12 рабочих часов
Фриланс вилка~$540 – $900 (€480 – €840)
Оценка веб-студии~$1,140 – $1,920 (€1080 – €1800)

ТЗ заказчика (исходный бриф):

«У нас много заказов от юридических лиц с оплатой по безналичному расчету. Менеджеры вручную выставляют счета в 1C, на это уходит куча времени. Нужно, чтобы сразу после оформления заказа сайт сам формировал красивый PDF-счет на оплату с нашими банковскими реквизитами, печатью, подписью директора и QR-кодом для оплаты через мобильный банк, и отправлял клиенту в письме!»
Ключевые требования:
  • •Создание шаблона PDF-счета на оплату согласно коммерческим стандартам РФ/СНГ (таблица товаров, НДС, сумма прописью)
  • •Генерация двухмерного QR-кода платежа по ГОСТ Р 56042-2014 для моментальной оплаты в мобильных приложениях банков
  • •Автоматическая генерация PDF-файла и прикрепление его во вложение к письму покупателя при смене статуса заказа
  • •Кнопка "Скачать счет (PDF)" в личном кабинете покупателя и в панели управления заказом в админке WooCommerce
  • •Защита ссылок на скачивание счета через криптографический токен (HMAC) для предотвращения утечки персональных данных
Ограничения проекта:
  • •Использование легкой библиотеки генерации PDF без зависимости от внешних платных сервисов
  • •Корректное отображение кириллических шрифтов (DejaVu Sans / Roboto) без кракозябр
  • •Кеширование сгенерированного PDF в защищенной директории uploads/agenticlab-invoices
Критерии приёмки (KPI):
  • Время генерации PDF-документа < 1.2 сек
  • 100% сканируемость QR-кода оплаты EPC/SEPA / Stripe в мобильных приложениях
  • Экономия до 4 часов рабочего времени менеджеров в день

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

Выберите архитектуру и стек — шаги роадмапа, структура файлов и примеры кода переключатся автоматически:

Пошаговое практическое руководство по ТЗ

Подробный разбор архитектуры, код реализации и советы эксперта по каждому этапу:

1
Этап 1 из 5

Интеграция PDF-рендерера и настройка шрифтов с поддержкой кириллицы

~45 минСредний

Практическое руководство:

Подключите библиотеку Dompdf через Composer. Настройте конфигурацию: включите поддержку удаленных изображений (isRemoteEnabled: true) и зарегистрируйте директорию защищенного шрифта DejaVu Sans.

План и контрольные точки реализации:
1Установить dompdf/dompdf через Composer
2Настроить опции Dompdf\Options
3Проверить корректную отрисовку русских символов в тестовом PDF
Важные технические нюансы и подводные камни:

Убедитесь, что директория шрифтов имеет права на запись веб-сервером.

Совет эксперта (Best Practice):

Защита папки счетами через .htaccess: Создание файла .htaccess с директивой deny from all предотвращает прямой доступ к файлам счетов из интернета в обход проверки прав доступа WordPress. (Важно: На серверах под Nginx обязательно заблокируйте доступ к uploads/agenticlab-invoices в конфиге виртуального хоста.)

Ожидаемый артефакт этапа:

Надежный сервис генерации PDF с безупречной поддержкой кириллицы.

PHP
<?php
declare(strict_types=1);

use Dompdf\Dompdf;
use Dompdf\Options;

class AgenticLab_PDF_Generator {
    public static function generate_invoice_pdf(\WC_Order $order): string {
        $options = new Options();
        $options->set('isHtml5ParserEnabled', true);
        $options->set('isRemoteEnabled', true);
        $options->set('defaultFont', 'DejaVu Sans');

        $dompdf = new Dompdf($options);

        ob_start();
        include dirname(__DIR__) . '/templates/pdf/invoice-template.php';
        $html = ob_get_clean();

        $dompdf->loadHtml($html, 'UTF-8');
        $dompdf->setPaper('A4', 'portrait');
        $dompdf->render();

        $upload_dir = wp_upload_dir();
        $invoices_dir = $upload_dir['basedir'] . '/agenticlab-invoices';
        if (!file_exists($invoices_dir)) {
            wp_mkdir_p($invoices_dir);
            file_put_contents($invoices_dir . '/.htaccess', 'deny from all');
        }

        $file_path = $invoices_dir . '/invoice-' . $order->get_id() . '.pdf';
        file_put_contents($file_path, $dompdf->output());

        return $file_path;
    }
}
2
Этап 2 из 5

Генерация платежной строки QR-кода по ГОСТ Р 56042-2014

~50 минСложный
3
Этап 3 из 5

Верстка строгого HTML-шаблона счета

~50 минСредний
4
Этап 4 из 5

Прикрепление PDF-счета к письмам клиенту и безопасная ссылка на скачивание

~45 минСредний
5
Этап 5 из 5

Тестирование сканирования QR-кода и проверка вложений

~25 минЛегкий

Типичные грабли на этом ТЗ

2 антипаттерна

Инструменты экосистемы Fullstack AI Lab для этого ТЗ

Интеграция