/spree_print_invoice-1

Create a PDF invoice for Spree orders

Primary LanguageRuby

SUMMARY

This extension provides a "Print Invoice" button on the Admin Orders view screen which generates a PDF of the order details.

INSTALLATION

  1. The gem relies only on the prawn gem, to install you need to add the following lines to your Gemfile

    gem 'spree_print_invoice' , :git => 'git://github.com/spree/spree_print_invoice.git'

  2. Run bundler

    bundle install

  3. Install migration

    rails g spree_print_invoice:install

  4. Enjoy! Now allow to generate invoices with sequential numbers

Configuration

  1. Set the logo path preference to include your store / company logo.

    Spree::PrintInvoice::Config.set(:print_invoice_logo_path => "/path/to/public/images/company-logo.png")

  2. 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.

  3. 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.

  4. 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)

  5. Many european countries requires numeric and sequential invoices numbers. To use invoices sequential number fill the specific field in "General Settings" or by set Spree::PrintInvoice::Config.set(:print_invoice_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.

  1. 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.

  1. Set page/document options with

Spree::PrintInvoice::Config.set(:prawn_options => {:page_layout => :landscape, :page_size => "A4", :margin => [50, 100, 150, 200]})

Plans

Next receipts and then product related stuff with barcodes.

Contributions welcome

Torsten