django-oscar-invoices

In order to generate invoice it’s required to create two model records:

  • Merchant account, oscar_invoices.models.LegalEntity. In contains shop name, seller’s business name, website, email, VAT number etc.
  • Merchant address, oscar_invoices.models.LegalEntityAddress. It’s quite similar to the order shipping or billing address.

By default, we generate only HTML invoice document and allow user to decide how to generate PDF documents. You can integrate python-pdfkit, WeasyPrint, xhtml2pdf, reportlab or another library of your choice.

Since documents contains sensitive data, we store them out of the media folder and do not provide public access via URL. For this purpose, we use custom storage class oscar_invoices.storages.DocumentsStorage, invoice documents placed into the nested folder settings.OSCAR_INVOICES_UPLOAD_FOLDER and available for the admin users via dashboard order list.

In order to start generating invoices you need to integrate oscar_invoices.utils.InvoiceCreator into your checkout flow, for instance to order_placed signal receiver.

Indices and tables