PHPackages                             thirtybittech/invoicematic - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Payment Processing](/categories/payments)
4. /
5. thirtybittech/invoicematic

ActiveStatamic-addon[Payment Processing](/categories/payments)

thirtybittech/invoicematic
==========================

A Statamic addon for generating professional PDF invoices with dynamic content and seamless CMS integration.

v1.0.0(10mo ago)15MITPHPPHP ^8.1

Since Jun 18Pushed 10mo agoCompare

[ Source](https://github.com/thirtyBitTech/invoicematic)[ Packagist](https://packagist.org/packages/thirtybittech/invoicematic)[ Docs](https://github.com/thirtybittech/invoicematic)[ RSS](/packages/thirtybittech-invoicematic/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Invoicematic for Statamic 🧾
===========================

[](#invoicematic-for-statamic-)

**Invoicematic** is a professional-grade, paid Statamic addon that automatically generates beautiful, PDF-based invoices when entries are created in your collections (e.g., orders, registrations, bookings).

Built with flexibility, configurability, and real-world invoicing needs in mind.

---

### ⚡️ Quick Setup

[](#️-quick-setup)

1. **Install:**

    ```
    composer require thirtybittech/invoicematic
    ```
2. **Generate blueprint (optional):**

    ```
    php artisan invoicematic:setup-collection orders
    ```
3. **Use:**

    - Create a new entry in your collection
    - Invoice PDF auto-generated (and emailed if configured)

---

🚀 Features
----------

[](#-features)

- 📄 **Automatically generate PDF invoices** from collection entries
- 📧 Optionally **email the PDF invoice** to the customer (**SMTP required**)
- 🛠 **Artisan command** to auto-generate a **collection blueprint for orders**
- 🎨 **Customizable Blade templates** with full HTML/CSS control for both invoice &amp; email template
- 🔁 Supports **multiple collections** with **independent field mapping**
- 🔒 Prevents **duplicate generation** with smart toggles
- 💾 **Auto-saves PDFs** to your storage (**configurable path**)
- 🧠 **Dynamic field mapping** — no hardcoded field handles
- 💰 Built-in **currency formatting support**
- 🧍 **Customizable company/sender details**
- ✅ **Fully Statamic-native**; no external dependencies required beyond **DomPDF**

---

💼 Use Cases
-----------

[](#-use-cases)

- Ecommerce Order Invoices
- Event Registration Receipts
- Booking Confirmations
- Donation Receipts

---

💸 Paid Addon Notice
-------------------

[](#-paid-addon-notice)

This is a **commercial addon**. A valid license is required to use it in production.

To obtain a license, visit [Statamic Addone](#) or contact .

---

📦 Installation
--------------

[](#-installation)

```
composer require thirtybittech/invoicematic
```

Publish the config:

```
php artisan vendor:publish --tag=invoicematic-config
```

Optionally publish the default Blade template:

```
php artisan vendor:publish --tag=invoicematic-views
```

> After publishing, you can customize the templates under:
>
> - `resources/views/vendor/invoicematic/templates/default.blade.php` (for invoices)
> - `resources/views/vendor/invoicematic/emails/invoice.blade.php` (for emails)
>
> To use custom templates, update the `templates` and `email_template` keys in `config/invoicematic.php` accordingly.

---

⚙️ Configuration
----------------

[](#️-configuration)

Edit `config/invoicematic.php`:

---

### 🗺 Field Aliases (Flexible Mapping)

[](#-field-aliases-flexible-mapping)

Configure how your fields map to canonical invoice fields:

```
'field_aliases' => [
    'orders' => [

        // Required fields
        'order_number'    => ['order_number','order_id', 'id'],
        'customer_name'   => ['customer_name','client_name', 'name'],
        'customer_email'  => ['customer_email','email', 'contact_email'],
        'items'           => ['items', 'products', 'line_items'],
        'item_fields' => [
            'name'     => ['name', 'product_name', 'title'],
            'quantity' => ['quantity', 'qty', 'amount'],
            'price'    => ['price', 'unit_price', 'cost'],
        ],
        'total'     => ['total','amount', 'grand_total'],
        'currency'        => ['currency','currency_code'],

        // Optional metadata
        'tax'       => ['tax', 'vat_amount'],
        'subtotal'  => ['subtotal'],
        'paid'            => ['paid' , 'is_paid', 'payment_status'],
        'date'            => ['date' ,'order_date', 'created_at'],
        'note'          => ['notes', 'message', 'comment'],
    ],

],
```

> You can define multiple collections (`orders`, `registrations`, etc.) with their own mappings.

---

### 🏢 Company Info

[](#-company-info)

Used across all invoices:

```
'company' => [
    'name' => 'Your Company Name',
    'address' => [
        'line1' => '123 Business Rd',
        'line2' => null,
        'city' => 'City',
        'country' => 'Country',
    ],
    'email' => 'email@company.com',
    'footer_message' => 'Thank you for your business',
    'company_logo' => null,
],
```

---

### 💾 Storage &amp; Filename

[](#-storage--filename)

```
'storage_path' => storage_path('app/invoices'),
'filename_format' => '{collection}_{order_number}.pdf',
```

> Filenames are automatically made unique by the system.

---

### 💱 Currency Formatting

[](#-currency-formatting)

```
'currency' => [
    'default' => 'USD',
    'format' => [
        'USD' => ['symbol' => '$', 'decimal' => 2],
        'EUR' => ['symbol' => '€', 'decimal' => 2],
    ],
],
```

---

🧠 How It Works
--------------

[](#-how-it-works)

1. User creates a new entry in a configured collection (e.g., `orders`)
2. Event is triggered
3. If invoice hasn't been generated:

    - Fields are resolved based on alias config
    - PDF is created &amp; saved to storage
    - Optionally is sent to the user with invoice
    - Entry is updated with:

        - `invoice_generated = true`
        - `invoice_path = /path/to/invoice.pdf`

---

🧪 Testing
---------

[](#-testing)

You can manually test by:

- Creating an entry in the target collection
- Verifying that the PDF is saved under `storage_path`
- Ensuring `invoice_generated` and `invoice_path` fields are set on the entry

🔧 Artisan Commands
------------------

[](#-artisan-commands)

### Generate Order Collection Blueprint

[](#generate-order-collection-blueprint)

You can quickly scaffold a blueprint for an `orders` collection using:

```
php artisan invoicematic:setup-collection orders
```

This generates a blueprint with the necessary fields (order\_number, customer\_name, items, etc.).

---

🛠 Requirements
--------------

[](#-requirements)

- PHP 8.1+
- Statamic 5.x
- SMTP configured (for emailing invoices. Optional)

---

Limitations
-----------

[](#limitations)

- This addon does **not** calculate values such as `subtotal`, `total`, or `tax`.
- All values will be used **as-is** in the entry; they must be pre-calculated before being passed to the addon.

---

📩 Support
---------

[](#-support)

Need help or a custom integration? Contact

---

📝 License
---------

[](#-license)

This is a **paid addon**. Redistribution or use without a valid license is prohibited.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance56

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

325d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/82bb450d7f05f8a91bd4a476287fba1dfd190586bda07561113c75c7465b4778?d=identicon)[ThirtyBitTech](/maintainers/ThirtyBitTech)

---

Top Contributors

[![iSaadSalman](https://avatars.githubusercontent.com/u/736170?v=4)](https://github.com/iSaadSalman "iSaadSalman (4 commits)")

---

Tags

laravelpdfbillinggeneratorinvoiceaddonstatamic

### Embed Badge

![Health badge](/badges/thirtybittech-invoicematic/health.svg)

```
[![Health](https://phpackages.com/badges/thirtybittech-invoicematic/health.svg)](https://phpackages.com/packages/thirtybittech-invoicematic)
```

###  Alternatives

[laraveldaily/laravel-invoices

Missing invoices for Laravel

1.5k1.3M4](/packages/laraveldaily-laravel-invoices)[anam/phantommagick

PhantomMagick provides a simple API to ease the process of converting HTML to PDF or images

161456.4k2](/packages/anam-phantommagick)[torgodly/html2media

Html2Media is a versatile Laravel package that allows users to convert HTML content into high-quality PDFs with options for either downloading or triggering a print dialog. Ideal for generating documents, invoices, and reports, this package includes configurable settings for file name, page orientation, format, margins, and scale. Html2Media also provides seamless integration with Filament actions, enabling dynamic content rendering in modals and customizable output previews. Whether you need to save a PDF or send it directly to the printer, Html2Media simplifies the process with robust, flexible features.

4532.5k1](/packages/torgodly-html2media)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
