einfacharchiv/laravel-cashier-microdata

Add Microdata to your Laravel Cashier invoices

v2.0.0 2022-06-08 19:55 UTC

This package is auto-updated.

Last update: 2024-04-08 23:50:26 UTC


README

Software License

This package provides an easy way to add Microdata (in JSON-LD format) to your Laravel Cashier invoices.

Requirements

PHP 7.0 and later.

Installation

You can install this package via Composer. Run the following command:

composer require einfacharchiv/laravel-cashier-microdata

Usage

Add the following snippet to your invoice notification toMail method and adjust the values to your environment. $this->invoice is your \Laravel\Cashier\Invoice (or alternatively \Stripe\Invoice). The methods setSeller, setBuyer, and setUrl are optional.

// ...

public function toMail($notifiable)
{
    \einfachArchiv\LaravelCashierMicrodata\Invoice::getInstance()
        ->setInvoice($this->invoice)
        ->setSeller([
            'company' => config('app.vendor.company'),
            'first_name' => config('app.vendor.first_name'),
            'last_name' => config('app.vendor.last_name'),
            'street_address' => config('app.vendor.street_address'),
            'city' => config('app.vendor.city'),
            'zip' => config('app.vendor.zip'),
            'state' => config('app.vendor.state'),
            'country' => config('app.vendor.country'),
            'vat_id' => config('app.vendor.vat_id'),
            'email' => config('app.vendor.email'),
            'website' => config('app.vendor.website'),
        ])
        ->setBuyer([
            'company' => $notifiable->billing_company,
            'first_name' => $notifiable->billing_first_name,
            'last_name' => $notifiable->billing_last_name,
            'street_address' => $notifiable->billing_street_address,
            'city' => $notifiable->billing_city,
            'zip' => $notifiable->billing_zip,
            'state' => $notifiable->billing_state,
            'country' => $notifiable->billing_country,
            'vat_id' => $notifiable->vat_id,
            'email' => $notifiable->email,
            'website' => $notifiable->website,
        ])
        ->setUrl(route('invoices.show', $this->invoice->id));

    // return (new MailMessage())...
}

// ...

And add the following snippet to your resources/views/vendor/mail/html/layout.blade.php before the </body> tag.

    <!-- ... -->

    {!! \einfachArchiv\LaravelCashierMicrodata\Invoice::getInstance() !!}
</body>
</html>

Contributing

Contributions are welcome.

We accept contributions via Pull Requests on Github.

Find yourself stuck using the package? Found a bug? Do you have general questions or suggestions for improvement? Feel free to create an issue on GitHub, we'll try to address it as soon as possible.

If you've found a security issue, please email support@einfacharchiv.com instead of using the issue tracker.

Happy coding!

Credits

License

The MIT License (MIT). Please see License File for more information.