This extension provides a "Print Invoice" button (per default) on the Admin Orders view screen which generates a PDF of the order details. It's fully extendable so you can add own print slips from your own Rails app. It also comes with a packaging slip.
Add to your Gemfile
gem 'spree_print_invoice', github: 'spree-contrib/spree_print_invoice', branch: 'master'
Run
bundle && exec rails g spree_print_invoice:install
Enjoy! Now allow to generate invoices with sequential numbers.
- Set the logo path preference to include your store / company logo.
Spree::PrintInvoice::Config.set(logo_path: '/path/to/public/images/company-logo.png')
-
Add your own own footer texts to the locale. The current footer works with
:footer_left1
,:footer_left2
and:footer_right1
,:footer_right2
where the 1 version is on the left in bold, and the 2 version the "value" on the right. -
Override any of the partial templates. They are address, footer, totals, header, bye, and the line_items. In bye the text
:thanks
is printed. The:extra_note
hook has been deprecated as Spree no longer supports hooks. -
Set
:suppress_anonymous_address
option to get blank addresses for anonymous email addresses (as created by my spree_last_address extension for empty/unknown user info). -
Many european countries requires numeric and sequential invoices numbers. To use invoices sequential number fill the specific field in "General Settings" or by setting:
Spree::PrintInvoice::Config.set(next_number: [1|'your current next invoice number'])
The next invoice number will be the one that you specified. You will able to increase it in any moment, for example, to re-sync invoices number if you are making invoices also in other programs for the same business name.
- Enable packaging slips, by setting:
Spree::PrintInvoice::Config.set(print_buttons: 'invoice,packaging_slip') # comma separated list
Use above feature for your own template if you want. For each button_name, define button_name_print
text in your locale.
- Set page/document options with:
Spree::PrintInvoice::Config.set(prawn_options: { page_layout: :landscape, page_size: 'A4', margin: [50, 100, 150, 200] })
- Enable PDF storage feature
PDF files can be stored to disk. This is very handy, if you want to send these files as email attachment.
Spree::PrintInvoice::Config.set(store_pdf: true) # Default: false
Spree::PrintInvoice::Config.set(storage_path: 'pdfs/orders') # Default: tmp/order_prints
*) Inside the storage_path
a folder for each template will be created. Files will be saved with order number respectively invoice number as file name.
In order to customize the build in invoice and packaging slip templates you need to copy them into your app:
$ bundle exec rails g spree_print_invoice:templates
You can then customize them at app/views/spree/admin/orders/invoice.pdf.prawn
and app/views/spree/admin/orders/packaging_slip.pdf.prawn
.
See corresponding guidelines
Copyright (c) 2011-2015 Spree Commerce, and other contributors, released under the New BSD License