aiarmada / docs
Doc generation package for Laravel with PDF support for invoices, receipts, shipping labels, and customizable templates
v0.1.33
2026-05-29 13:43 UTC
Requires
- php: ^8.4
- aiarmada/commerce-support: v0.1.33
- spatie/browsershot: ^5.3.0
- spatie/laravel-pdf: ^2.9.0
This package is auto-updated.
Last update: 2026-06-02 07:50:32 UTC
README
aiarmada/docs provides document creation, numbering, PDF generation, email delivery, tracking, and owner-aware document storage for Laravel applications.
What ships today
AIArmada\Docs\Services\DocServicefor document creation, updates, conversion, payment recording, and PDF generationAIArmada\Docs\Services\DocEmailServicefor send/send-reminder flows with tracking records- Config-backed numbering through
AIArmada\Docs\Services\SequenceManager - Models for documents, templates, payments, versions, emails, approvals, workflows, and e-invoice submissions
- Optional owner scoping through
aiarmada/commerce-support
Installation
composer require aiarmada/docs php artisan vendor:publish --tag=docs-config php artisan migrate
If you want to customize the bundled Blade templates, you can also publish the package views:
php artisan vendor:publish --tag=docs-views
Basic usage
use AIArmada\Docs\DataObjects\DocData; use AIArmada\Docs\Services\DocService; $doc = app(DocService::class)->create(DocData::from([ 'doc_type' => 'invoice', 'items' => [ [ 'name' => 'Consulting', 'quantity' => 2, 'price' => 150.00, ], ], 'customer_data' => [ 'name' => 'Jane Doe', 'email' => 'jane@example.com', ], 'generate_pdf' => true, ]));
Core APIs
Create a document
Use DocService::create() with DocData::from([...]).
Update or transition status
app(DocService::class)->updateStatus($doc, $statusClass, $notes)$doc->markAsSent()$doc->markAsPaid()$doc->cancel()
Generate or locate PDFs
app(DocService::class)->generatePdf($doc, save: true)app(DocService::class)->downloadPdf($doc)
Record payments
Use app(DocService::class)->recordPayment($doc, $paymentData).
Send emails
app(DocEmailService::class)->send($doc, $recipientEmail, $recipientName)app(DocEmailService::class)->sendReminder($doc, $recipientEmail)
Supported document types
The default config ships these types:
invoicequotationreceiptcredit_notedelivery_noteproforma_invoice
Configuration highlights
Important keys in config/docs.php:
databasedefaultspayment_methodsowneremaileinvoicetypesnumberingstoragepdfcompany
Notes
- Owner scoping is controlled by
docs.owner.*. - Template lookup is owner-aware when owner mode is enabled.
- Email tracking routes are registered under
/docs/track/*. - Per-type storage overrides live under
docs.types.{type}.storage.
Documentation
See the package docs in packages/docs/docs/:
01-overview.md02-installation.md03-configuration.md04-usage.md05-pdf-generation.md06-status-management.md07-templates.md08-tailwind-usage.md99-troubleshooting.md