Django Sage Invoice is a Django application for managing invoices, designed to provide essential features required for small businesses to issue invoices, track payments, and manage customer information. The focus of this initial phase is on simplicity and functionality, ensuring that businesses can use the system without being overwhelmed by advanced or complex features.
The system offers a robust admin interface to create, view, and manage invoices along with their related components, such as categories, items, and totals. The primary objectives are to ensure that businesses can efficiently issue invoices, monitor payment status, and handle basic customer management tasks, making it an accessible solution for small-scale operations.
- Basic Invoicing
- Create and send professional invoices manually.
- Customizable invoice templates with basic branding (logo, company info).
- Invoice status tracking (draft, sent, paid).
- Customer Management
- Add and manage customer profiles.
- Support for basic customer contact and billing information.
- Basic Payments Tracking
- Manual recording of payments (bank transfer, cash).
- Partial payments support.
- Basic Tax Support
- Add tax rates manually (VAT, GST, etc.).
- Apply taxes to invoices and show breakdown.
- Basic Reports
- Export invoices in PDF format.
- Basic reporting on unpaid/paid invoices.
-
Create a Virtual Environment:
python -m venv .venv
-
Activate the Virtual Environment:
-
On Windows:
.venv\Scripts\activate
-
On macOS/Linux:
source .venv/bin/activate
-
-
Install
django-sage-invoice
:pip install django-sage-invoice
-
Initialize Poetry (if not already initialized):
poetry init
-
Install
django-sage-invoice
:poetry add django-sage-invoice
-
Apply Migrations:
After installation, make sure to run the following commands to create the necessary database tables:
python manage.py makemigrations python manage.py migrate
Add django-sage-invoice
to your INSTALLED_APPS
in the Django settings and configure the SAGE_MODEL_PREFIX
and SAGE_MODEL_TEMPLATE
:
INSTALLED_APPS = [
# other packages
"django.contrib.humanize",
"django_jsonform",
"import_export",
"sage_tools",
"sage_invoice",
]
SAGE_MODEL_PREFIX = "invoice"
SAGE_MODEL_TEMPLATE = "sage_invoice"