You can create an unlimited number of invoices for users (customers). These invoices can be emailed or downloaded as PDF. It is also possible to pay these invoices using my FREE Briddle.Omnipay
plugin and to use my Briddle.Members
plugin to create recurring invoices.
Features
I want you to get excited about this plugin and I understand that that will only happen if you can really make it your own.
STATUS | FEATURE |
---|---|
YES | THOROUGHLY SUPPORTED |
YES | CONCISE DOCUMENTATION |
YES | MULTILINGUAL |
YES | PERMISSIONS |
YES | EXTENDABLE (USING EVENTS) |
YES | CREATE/EDIT/DELETE INVOICES FROM YOUR CODE [NEW] |
YES | AUTOMAGICALLY CREATE ORDER IF DEAL IN Briddle.Crm IS MARKED WON [NEW] |
YES | ADD TAB TO RainLab.User PLUGIN WITH INVOICES FOR A USER [NEW] |
YES | FULLY EDITABLE INVOICE TEMPLATE |
YES | INVOICES COMPONENT (show a list of invoices for a logged in user) |
YES | MAIL INVOICE |
YES | DOWNLOAD INVOICE AS PDF |
YES | LOG (AND SHOW) WHEN EMAILS ARE SEND [NEW] |
YES | MARK ORDERS AS PAID IF PAID WITH MY FREE PLUGIN Briddle.Omnipay [NEW] |
YES | ONLINE PAYMENTS USING MY FREE PLUGIN Briddle.Omnipay |
YES | RECURRING INVOICES USING MY PLUGIN Briddle.Members |
You can complement and extend this plugin with various other (free and paid) plugins. See the documentation tab for more information.
Support
Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.
IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates
Like this plugin?
Did you know that only about 30% of my plugins are paid (70% of my plugins are free) and that 30% of your purchase goes to help fund the October Project? If you purchase this plugin, you can help me to develop it further, provide support for it or make new plugins.
Why is this a paid plugin?
Someting that is free has little or no perceived value. Users do not commit to free products and only use them untill something else that looks nice and is free comes along. When I invest my time in the development of a new plugin or theme I commit to supporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by advertisements, upgrades or additional services like hosting or setup. I simply sell the software.
Did you know that only about 30% of my plugins are paid (70% of my plugins are free) and that 30% of your purchase or donation goes to help fund the October Project?
My plugins take many hours to develop (10-120+) and even more hours to document and maintain. My paid plugins have to pay for both this time and the time I am spending on free plugins and less successfull paid plugins. This means that it will take even a successfull plugin years to become profitable. Please consider buying an extended license if you want me to continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that you feel is missing but valuable.
My other plugins include:
- CRM Pro (Customer Relation Management)
- Room Booking Pro (Room Booking engine)
- Members Pro (Member subscriptions)
- Invoice Pro (Invoicing)
- Webmail Lite (Webmail)
The following plugins are required
This plugin is also included into the following bundles
CRM Pro
The professional Customer Relations Manager (CRM) for October
CRM Pro
The professional Customer Relations Manager (CRM) for October
- CRM Pro
- Pageguide Beta [DEPRECATED]
- Webmail Beta [DEPRECATED]
- Workflow Beta [DEPRECATED]
- + 4 more
Plugin Megapack
All my commercial plugins for an unbeatable price
Plugin Megapack
All my commercial plugins for an unbeatable price
- Members Pro
- CRM Pro
- Room Booking Pro
- Room Booking
- + 6 more
Hello, I am Wiego. Please start by reading the whole documentation! If you have any questions, find a bug or experience difficulties getting the plugin to work please use the Support Forum. Only leave a Review if you are happy with the plugin or are still unhappy with the plugin after reaching out to me in the Support Forum. Thank you!
Why is this a paid plugin?
Someting that is free has little or no perceived value. Users do not commit to free products and only use them untill something else that looks nice and is free comes along. When I invest my time in the development of a new plugin or theme I commit to supporting and maintaining it. I ask my customers to do the same. I do not make money from this plugin by advertisements, upgrades or additional services like hosting or setup. I simply sell the software.
Did you know that only about 30% of my plugins are paid (70% of my plugins are free) and that 30% of your purchase or donation goes to help fund the October Project?
My plugins take many hours to develop (10-120+) and even more hours to document and maintain. My paid plugins have to pay for both this time and the time I am spending on free plugins and less successfull paid plugins. This means that it will take even a successfull plugin years to become profitable. Please consider buying an extended license if you want me to continue to maintain these plugins for the very small fee I ask in return or hire me for adding functionality that you feel is missing but valuable.
Table of contents
- Installation
- Getting started
- Invoices component
- Customize invoice template
- Online payments
- Recurring invoices
- Programmatically adding items to orders
- Programmatically logging order history
- Mail template
- Available events
- Available permissions
- Available languages
- Support
Installation
You need an account on octobercms.com to install this plugin.
- Sign in and click on the Add to Project button on the product page for the plugin in the marketplace.
- Select the project you wish to add the plugin to (or create one).
- Make sure you install any 3rd-party plugins this plugin depends on
- Make sure you have attached this project to your website in the backend of your website in order to pull in the new plugin (Settings > Updates & Plugins). Don't worry, attaching or detaching your website to a project will never delete anything!
- Make sure you allow short_open_tag (default PHP setting)
Getting started
Please note that RainLab.User, RainLab.UserPlus and LukeTowers.SnappyPDF are required for this plugin and that the RainLab.UserPlus plugin now requires RainLab.Location and RainLab.Notify. All these plugins are FREE.
- Add Briddle.Invoice to a project and attach it to your website (This plugin requires RainLab.User, RainLab.UserPlus, and LukeTowers.SnappyPDF. The User Plus Plugin requires RainLab.Location and RainLab.Notify so add those first). All these plugins are FREE.
- Make sure you allow short_open_tag (this is the default PHP configuration)
- Go to Settings > Omnipay > Invoice settings to configure the plugin
Invoices component
This component lists unpaid invoices for a logged in user. Simply place the component on the page and specify a pay URL (without trailing slash). My FREE Briddle.Omnipay
plugin will take care of the rest.
Customize invoice template
You can fully customize the invoice template in Settings > Omnipay > Invoice configuration
The following variables are available:
VARIABLE | DESCRIPTION |
---|---|
{{ order }} |
Translation of "Invoice" |
{{ date }} |
Translation of "Date" |
{{ due }} |
Translation of "Due" |
{{ customer }} |
Translation of "Customer" |
{{ description }} |
Translation of "Description" |
{{ quantity }} |
Translation of "Quantity" |
{{ amount }} |
Translation of "Amount" |
{{ vat }} |
Translation of "Vat" |
{{ subtotal }} |
Translation of "Subtotal" |
{{ tax }} |
Translation of "Tax" |
{{ total }} |
Translation of "Total" |
{{ invoice.id }} |
Invoice ID |
{{ invoice.description }} |
Invoice description |
{{ invoice.vat }} |
Invoice vat |
{{ invoice.amount }} |
Invoice amount |
{{ invoice.user.company }} |
Customer company |
{{ invoice.user.name }} |
Customer company |
{{ invoice.user.street_addr }} |
Customer company |
{{ invoice.user.zip }} |
Customer company |
{{ invoice.user.city }} |
Customer company |
{{ invoice.user.country }} |
Customer company |
{{ invoice.created_at }} |
Invoice Sent date |
{{ invoice.due }} |
Invoice Due date |
{{ company_invoice_prefix }} |
Invoice prefix from settings |
{{ company_logo }} |
Logo from settings |
{{ company_name }} |
Company name from settings |
{{ company_street_addr }} |
Company name from settings |
{{ company_zip }} |
Company zip from settings |
{{ company_city }} |
Company city from settings |
{{ company_country }} |
Company country from settings |
{{ company_conditions }} |
Company conditions from settings |
{{ items }} |
Collection of invoice items (description, quantity, price, vat) |
Online payments
Please use my FREE plugin Briddle.Omnipay to allow online payments. Online payments with this plugin are automagically logged.
My Omnipay plugin does not support automatic payments but you could implement SEPA Direct Debit with Mollie.com to setup automatic payments or use Stripe to setup automatic payments using a credit-card yourself.
Recurring invoices
Please use my plugin Briddle.Members to setup recurring invoices.
Programmatically adding items to orders
Please note that the total amount due and the total VAT in the order will now also be automagically recalculated and updated if you add/update/remove items using the Item model (https://octobercms.com/docs/database/model#basic-inserts).
You can programmatically create a new order using the Order model of the plugin. You can then add/update/remove items in that order. This will automagically recalculate the total amount due and the total VAT.
use Briddle\Invoice\Models\Order; use Briddle\Invoice\Models\Item; $order = new Order; $order->description = 'Some deal'; $order->user_id = 3; $order->due = '2020-12-01'; $order->currency = 'USD'; $order->save(); $item = new Item; $item->description = 'Something'; $item->quantity = 1; $item->vat = 21; $item->price = 1000; $item->order_id= 3; $item->save(); $item = Item::find(3); $item ->description = 'Some other thing'; $item ->save(); $item = Item::find(3); $item ->delete();
or (deprecated):
use Briddle\Invoice\Models\Order; $order = new Order; $order->addItem($orderId,[ 'description' => 'Test item', 'quantity' => 1, 'vat' => 21, 'price' => 1000 ]); $order->updateItem($orderId,[ 'id' => 1, 'description' => 'Test item', 'quantity' => 1, 'vat' => 21, 'price' => 1000 ]); $order->removeItem($orderId,$itemId);
Programmatically logging order history
Mails and online payments using my FREE plugin Briddle.Omnipay are automagically logged
You can use the Log model to log history. The created_on
and updated_on
fields are added automagically.
use Briddle\Invoice\Models\Log; $log = new Log; $log->name = 'Something'; $log->order_id= 3; $log->save();
Mail template
Mails are automagically logged
Upon installation the mail template briddle.invoice::mail.invoice
is created. The following variables are available inside this template:
VARIABLE | DESCRIPTION |
---|---|
{{ invoice.id }} |
Invoice ID |
{{ invoice.description }} |
Invoice description |
{{ invoice.vat }} |
Invoice vat |
{{ invoice.amount }} |
Invoice amount |
{{ invoice.user.company }} |
Customer company |
{{ invoice.user.name }} |
Customer company |
{{ invoice.user.street_addr }} |
Customer company |
{{ invoice.user.zip }} |
Customer company |
{{ invoice.user.city }} |
Customer company |
{{ invoice.user.country }} |
Customer company |
{{ invoice.created_at }} |
Invoice Sent date |
{{ invoice.due }} |
Invoice Due date |
Available events
The following events are available to extend the functionality of this plugin:
STATUS | EVENT |
---|---|
YES | briddle.invoice.afterMail |
YES | eloquent.creating: Briddle\Invoice\Models\Order |
YES | eloquent.created: Briddle\Invoice\Models\Order |
YES | eloquent.saving: Briddle\Invoice\Models\Order |
YES | eloquent.saved: Briddle\Invoice\Models\Order |
YES | eloquent.updating: Briddle\Invoice\Models\Order |
YES | eloquent.updated: Briddle\Invoice\Models\Order |
YES | eloquent.deleting: Briddle\Invoice\Models\Order |
YES | eloquent.deleted: Briddle\Invoice\Models\Order |
YES | eloquent.creating: Briddle\Invoice\Models\Item |
YES | eloquent.created: Briddle\Invoice\Models\Item |
YES | eloquent.saving: Briddle\Invoice\Models\Item |
YES | eloquent.saved: Briddle\Invoice\Models\Item |
YES | eloquent.updating: Briddle\Invoice\Models\Item |
YES | eloquent.updated: Briddle\Invoice\Models\Item |
YES | eloquent.deleting: Briddle\Invoice\Models\Item |
YES | eloquent.deleted: Briddle\Invoice\Models\Item |
YES | eloquent.creating: Briddle\Invoice\Models\Log |
YES | eloquent.created: Briddle\Invoice\Models\Log |
YES | eloquent.saving: Briddle\Invoice\Models\Log |
YES | eloquent.saved: Briddle\Invoice\Models\Log |
YES | eloquent.updating: Briddle\Invoice\Models\Log |
YES | eloquent.updated: Briddle\Invoice\Models\Log |
YES | eloquent.deleting: Briddle\Invoice\Models\Log |
YES | eloquent.deleted: Briddle\Invoice\Models\Log |
YES | eloquent.creating: RainLab\User\Models\User |
YES | eloquent.created: RainLab\User\Models\User |
YES | eloquent.saving: RainLab\User\Models\User |
YES | eloquent.saved: RainLab\User\Models\User |
YES | eloquent.updating: RainLab\User\Models\User |
YES | eloquent.updated: RainLab\User\Models\User |
YES | eloquent.deleting: RainLab\User\Models\User |
YES | eloquent.deleted: RainLab\User\Models\User |
Available permissions
As always you can set permissions for this plugin in Settings > Administrators > Invoice
- Manage orders
- Manage items
- Manage settings
- Manage log
Available languages
This plugin can be translated in any language
This plugin supports the following languages out of the box:
- english
- dutch
- german
Support
Please use the Support Forum (on the left side of the page for any theme or plugin) or send me a message. I also offer design and development services. You can visit my website for more information. Do not use reviews to ask for support.
IMPORTANT NOTICE! All my activities on October CMS are suspended indefinitely after my second burn-out. I do not offer any support or updates
-
This plugin has not been reviewed yet.
-
1.5.3 |
Bugfix error _userorders.htm when no users are found Jun 18, 2020 |
---|---|
1.5.2 |
Bugfix translation string plugin.yaml causing error in admin settings Jun 01, 2020 |
1.5.1 |
Minor bugfix invoice component for downloading PDF Dec 21, 2019 |
1.5.0 |
Minor bugfix backend relationRender form Dec 21, 2019 |
1.4.9 |
Added relationRender for logs to orders and added docs Dec 19, 2019 |
1.4.8 |
Reused the editable PDF layout in the PDF preview - invoice items should now be edited in the relationmanager tab when editing an order Dec 19, 2019 |
1.4.7 |
Fixed wrong default due and created_at dates in the editable PDF layout and added the option to update the created_at field Dec 19, 2019 |
1.4.6 |
Minor GUI cleanup Dec 18, 2019 |
1.4.5 |
Added Event listener briddle.crm.won to autogenerate a new invoice when a deal in the Briddle.Crm plugin is marked as won Dec 18, 2019 |
1.4.4 |
Added tab for listing invoices for a user in the RainLab.User plugin Dec 18, 2019 |
1.4.3 |
Added Event listener to also log orders that are marked as paid manually Dec 18, 2019 |
1.4.2 |
Added Dutch and German translations Dec 17, 2019 |
1.4.1 |
Added listener for briddle.omnipay.paid to automagically mark orders as paid if paid online Dec 17, 2019 |
1.4.0 |
Added default quantity and VAT for new items added in the order preview Dec 17, 2019 |
1.3.9 |
Added email logging Dec 17, 2019 |
1.3.8 |
Updated table briddle_invoice_log Dec 17, 2019 |
1.3.7 |
Created table briddle_invoice_log Dec 17, 2019 |
1.3.6 |
Code restructuring to allow using relationRender and updating the order totals when adding/deleting/updating invoice items with it Dec 16, 2019 |
1.3.5 |
Code restructuring to allow adding orders and items programmatically Dec 03, 2019 |
1.3.4 |
Bugfix in PDF function Oct 18, 2019 |
1.3.3 |
Bugfix in PDF function Oct 18, 2019 |
1.3.2 |
Added invoice component for logged in users to view invoice PDF Oct 18, 2019 |
1.3.1 |
Fixed bug in adding empty items and in generating PDF with missing logo Oct 18, 2019 |
1.3.0 |
Fixed preview view Sep 11, 2019 |
1.2.9 |
Debugging Sep 11, 2019 |
1.2.8 |
Some minor tweaks Sep 10, 2019 |
1.2.7 |
Update to invoice item editor Sep 10, 2019 |
1.2.6 |
Updated table briddle_invoice_items Sep 10, 2019 |
1.2.5 |
Update to invoice item editor Sep 09, 2019 |
1.2.4 |
Update to invoices component view Aug 27, 2019 |
1.2.3 |
Bugfix Aug 27, 2019 |
1.2.2 |
Added invoice summary to invoices list Aug 25, 2019 |
1.2.1 |
Fixed bug in invoice_prefix on PDF invoices and added the Invoices component listing unpaid invoices for a user Aug 25, 2019 |
1.2.0 |
Added briddle.invoice.afterMail event, default currency setting, editable invoice template Aug 24, 2019 |
1.1.0 |
Added dependencies Aug 23, 2019 |
1.0.12 |
Drop table briddle_invoice_statuses Aug 23, 2019 |
1.0.11 |
Updated table briddle_invoice_orders Aug 23, 2019 |
1.0.10 |
Updated table briddle_invoice_orders Aug 23, 2019 |
1.0.9 |
Updated table briddle_invoice_orders Aug 23, 2019 |
1.0.8 |
Updated table briddle_invoice_items Aug 23, 2019 |
1.0.7 |
Created table briddle_invoice_statuses Aug 23, 2019 |
1.0.6 |
Updated table briddle_invoice_items Aug 23, 2019 |
1.0.5 |
Created table briddle_invoice_items Aug 23, 2019 |
1.0.4 |
Updated table briddle_invoice_order Aug 23, 2019 |
1.0.3 |
Updated table briddle_invoice_order Aug 23, 2019 |
1.0.2 |
Created table briddle_invoice_order Aug 23, 2019 |
1.0.1 |
Initialize plugin. Aug 23, 2019 |