How to customize templates and languages

In this section it is explained the template system introduced in version 1.4.0. Including the template tokens (information that can be added to the invoice) and languages.

Before version 1.4.0, editing the templates with HTML editor was highly not recommended. Only plain text was recommended. Now, with the new system, the HTML editor can be used too. Howerver, this sistem uses some html comments like <!--ITEMS--> that are vital for the correct working of the template. So if you see them, please don't delete them.

Template tokens

In order to fill the content of the invoices, a bunch of tokens are provided. By placing a token in the invoice, the system will change it for the real value of that token. The available tokens are:

General tokens

  • {from_name} The invoicer name
  • {from_address} The invoicer address
  • {from_num} The invoicer fiscal number
  • {from_phone} The invoicer Phone number
  • {from_url} The invoicer URL
  • {from_email} The invoicer e-mail
  • {to_name} The recipient name
  • {to_company} The recipient company
  • {to_email} The recipient e-mail
  • {to_address} The recipient address
  • {to_zipcode} The recipient Zip code
  • {to_city} The recipient city
  • {to_state} The recipient state
  • {to_country} The recipient country
  • {to_vatid} The recipient VAT id
  • {to_phone} The recipient phone
  • {invoice_date} The invoice date
  • {invoice_duedate} The invoice due date
  • {invoice_num} The invoice number
  • {notes} Invoice notes
  • {discount} The invoice discount
  • {subtotal} Subtotal
  • {total} Total
  • {total_payments} Total amount paid (sum of payments)
  • {amount_outstanding} Total amount left to pay (Invoice total - sum of payments)
  • {status} Invoice status
  • {invoice_link} The invoice link (url to access the invoice)
  • {invoice_unlogged_link} The invoice link, accessible for unlogged users
  • {subtotal_items} The addition of all items subtotal
  • {total_items_tax} The addition of all items taxes
  • {subtotal_items_no_discount} The addition of all items subtotals, leaving the discount out
  • {total_items_discount} The total of dicounts applied on items
  • {accept_button} Button to accept the quote
  • {reject_button} Button to reject the quote

ITEMS area (iteration)

  • {sku} The item SKU
  • {name} The item name
  • {desc} The item description
  • {value} The item value
  • {amount} The number of times this item is included
  • {discount} The item discount
  • {tax} The item tax
  • {item_tax_value} The numeric value of the tax of the item
  • {item_subtotal_no_discount} The subtotal of the item, leaving the discount out
  • {item_subtotal} The subtotal of the item
  • {item_total} The item total (item value * item amount - item discount + item tax). For instance if you have a item with value 10, amount 2, it will show 20 here.

TAXES area (iteration)

  • {name} The tax name
  • {value} The tax value

PAID PAYMENTS area (iteration)

  • {description} The payment description
  • {duedate} The payment due date
  • {payment_datetime} The payment datetime (reception)
  • {amount} The amount of the payment
  • {payment_status} The payment status

PENDING PAYMENTS area (iteration)

  • {description} The payment description
  • {duedate} The payment due date
  • {payment_datetime} The payment datetime (reception)
  • {amount} The amount of the payment
  • {payment_link} The link to pay this payment
  • {payment_status} The payment status

Template language

If your are interested in modifying the default language of the template this section is for you. If what you want is to have a template available in more than one language jump to Multilanguage templates

If you whish to translate the default invoice text, you can do it using the [[TEXT_LABEL]] syntax. The render system will search for any words contained between [[ and ]] delimiters, and it will process them using the Joomla language system. If a translation or definition is found for that label, it will be used.

To define your own language text labels, you can do it in the language file of Invoice Manager. For example, if you're using English as your language, you can add your own labels on the file /language/en-GB/en-GB.com_invoices.ini

In that file, for example, if you want to change the translation for [[FROM]], you need to search the line FROM="Translation for FROM label" and change the translation for the label.

Multilanguage templates

In order to have a template available in different languages follow this steps:

Note that for the example, we are going to suppose that we have our system in english and we want the spanish translation

  1. From the administrator area of your site go to Extensions > Language Manager and install the Spanish package for Joomla.

  2. With the colaboration of many of our customers, we have available a lot of translations for Invoice Manager component. This translations can be found here. Note that as the translations are made with this colaboration, they may be unupdated and you may need to check it.

  3. Once you have the language file for Invoice Manager downloaded, you need to place it in your server. If it is the spanish one you will need to place it in /language/es-ES/es-ES.com_invoices.ini. The /es-ES/ folder will change depending on your language.

  4. Once the language package for Joomla and the language file for Invoice Manager are both installed, you will be able to select the new language when creating an invoice and on the default invoice language within the Invoice Manager general options.