Custom Modules

Invoice Ninja support customs modules using https://github.com/nWidart/laravel-modules

You can watch this short video for a quick overview of the feature.

Install Module

To install a module run:

php artisan module:install <vendor/module> --type=github

For example:

php artisan module:install invoiceninja/sprockets --type=github

You can check the current module status with:

php artisan module:list

Create Module

Run the following command to create a CRUD module:

php artisan ninja:make-module <module> <fields>
php artisan ninja:make-module Inventory 'name:string,description:text'

To edit the migration before it’s run add --migrate=false

php artisan ninja:make-module <module> <fields> --migrate=false

After making adjustments to the migration file you can run:

php artisan module:migrate <module>

Tip

You can specify the module icon by setting a value from http://fontawesome.io/icons/ for “icon” in modules.json.

Share Module

To share your module create a new project on GitHub and then commit the code:

cd Modules/<module>
git init
git add .
git commit -m "Initial commit"
git remote add origin [email protected]:<vendor/module>.git
git push -f origin master

Tip

Add "type": "invoiceninja-module" to the composer.json file to help people find your module.

Finally, submit the project to https://packagist.org.