Django automated billing with an API
To get the latest stable release from PyPi
sudo apt-get build-dep python-imaging
pip install django-silverTo get the latest commit from GitHub
pip install -e git+git://github.com/PressLabs/silver.git#egg=silverAdd silver to your INSTALLED_APPS
INSTALLED_APPS = (
...,
'silver',
)Add the silver URLs to your urls.py
urlpatterns = patterns('',
...
url(r'^silver/', include('silver.urls')),
)Don't forget to migrate your database
./manage.py migrate silverFor the complete API reference, check the project's wiki: <https://github.com/PressLabs/silver/wiki>.
To run Silver automatically, you will have to setup a cron which calls the generate_documents Django command.
For creating the PDF templates, Silver uses the built-in templating engine of Django <https://docs.djangoproject.com/en/1.8/topics/templates/#the-django-template-language>. The template variables that are available in the context of the template are:
nameunitsubscriptionplanprovidercustomerproduct_codestart_dateend_dateproratedproration_percentagemetered_featurecontext
For specifying the storage used add the SILVER_DOCUMENT_STORAGE setting to
your settings file. Example for storing the PDFs on S3:
SILVER_DOCUMENT_STORAGE = (
'storages.backends.s3boto.S3BotoStorage', [], {
'bucket': 'THE-AWS-BUCKET',
'access_key': 'YOUR-AWS-ACCESS-KEY',
'secret_key': 'YOUR-AWS-SECRET-KEY',
'acl': 'private',
'calling_format': 'boto.s3.connection.OrdinaryCallingFormat'
}
)Other available settings:
SILVER_DEFAULT_DUE_DAYS- the default number of days until an invoice is due for payment.SILVER_DOCUMENT_PREFIX- it gets prepended to the path of the saved files. The default path of the documents is{prefix}{company}/{doc_type}/{date}/{filename}
To add REST hooks to Silver you can install and configure the following packages:
- Create your profile as a service provider.
- Add your pricing plans to the mix.
- Import/add your customer list.
- Create subscriptions for your customers.
- Create your custom templates using HTML/CSS or use the ones already provided.
- Setup cron job for generating the invoices automatically.
- Enjoy. Silver will automatically generate the invoices or proforma invoices based on your providers' configuration.
Development of silver happens at http://github.com/PressLabs/silver.
Issues are tracked at http://github.com/PressLabs/silver/issues.
The Python package can be found at https://pypi.python.org/pypi/django-silver/.
You are highly encouraged to contribute with code, tests, documentation or just sharing experience.
Please see CONTRIBUTING.md for a short guide on how to get started with Silver contributions.