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(1y ago)15MITPHPPHP ^8.1

Since Jun 18Pushed 1y 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 1w 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

27

—

LowBetter than 46% of packages

Maintenance45

Moderate activity, may be stable

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

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

426d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/176063521?v=4)[ThirtyBitTech](/maintainers/ThirtyBitTech)[@thirtyBitTech](https://github.com/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.6k1.5M5](/packages/laraveldaily-laravel-invoices)[unopim/unopim

UnoPim Laravel PIM

10.8k2.5k](/packages/unopim-unopim)[statamic/statamic

Statamic

832182.1k](/packages/statamic-statamic)[duncanmcclean/statamic-cargo

Comprehensive e-commerce addon for Statamic. Build bespoke e-commerce sites without the complexity.

3622.8k](/packages/duncanmcclean-statamic-cargo)[anam/phantommagick

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

160465.5k2](/packages/anam-phantommagick)[akira/laravel-pdf-invoices

A modern, strictly typed, and extensible invoice generator for Laravel 12+ built with PHP 8.4 syntax. This package provides a clean builder pattern API, immutable data objects, and modular design inspired by LaravelDaily/laravel-invoices but rewritten from scratch with SOLID principles and Laravel best practices.

382.4k8](/packages/akira-laravel-pdf-invoices)

PHPackages © 2026

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