Kashoo also allows you to customize the XHTML and CSS code that is used to display the invoice. This can be used to change the language on the invoice, or to fully redo the layout and appearance.

If you're looking to simply choose a different template for your invoice without using or knowing XHTML and CSS programming, please see our article called Customizing Invoices, Selecting Invoice Templates, and Uploading your Logo.

To create a custom template, find an exiting invoice from the Income page and click on it. From there, follow these steps:

Open up an existing invoice and click on the Edit Invoice Template link.

In the Custom Invoice field, choose the New Custom Template link.

Enter a name into the Custom Invoice field and then click on Add Template.

Change the code.

Don't forget to click on Save when you're done.

Template Variables

Here are a list of the variables you can when creating a custom template:

  • ${logo_url} - URL to use to display the business logo you uploaded on the business profile
  • ${number} - Invoice number for this invoice
  • ${po_number} - P.O. number for this invoice
  • ${date} - Invoice date using the date format specified in the business profile
  • ${business_name} - The name of your business, as specified in the business profile
  • ${business_address} - The full address of your business, as specified in the business profile
  • ${business_phone_numbers} - All phone numbers for your business, as specified in the business profile
  • ${business_first_name} - The first name of billing contact person at your business, as specified in the business profile
  • ${business_last_name} - The last name of billing contact person at your business, as specified in the business profile
  • ${business_full_name} - The first & last name of billing contact person at your business, as specified in the business profile
  • ${business_url} - The website URL of your business, as specified in the business profile
  • ${business_street1}, ${business_street2}, ${business_city}, ${business_province_or_state}, ${business_postal_or_zip_code}, ${business_country}, ${business_phone}, ${business_fax}, ${business_mobile}, ${business_toll_free} - Contact information for your business, as specified in the business profile
  • ${business_registration} - The business number of your business, as specified in the business profile
  • ${name} - Customer (company) name
  • ${first_name} - Customer contact person first name
  • ${last_name} - Customer contact person last name
  • ${full_name} - Customer contact person full name
  • ${address} - Customer full address
  • ${url} - Customer website URL
  • ${street1}, ${street2}, ${city}, ${province_or_state}, ${postal_or_zip_code}, ${country}, ${phone}, ${fax}, ${mobile}, ${toll_free} - Contact information for the customer
  • <!-- $if has_shipping_address --> ... content ... <!-- $endif --> - Inner "... content ..." is only shown if the customer has "shipping address" checked
  • ${shipping_name}, ${shipping_street1}, ${shipping_street2}, ${shipping_city}, ${shipping_province_or_state}, ${shipping_postal_or_zip_code}, ${shipping_country}, ${shipping_phone}, ${shipping_notes} - Shipping information for the customer.
  • ${url} - Customer website URL
  • <!-- $beginBlock entry --> --> ... content ... <!-- $endblock entry --> - Inner "... content ..." is repeated once for every line on the invoice
  • ${note} or ${description}- Description entered for the current line
  • ${quantity} - Quantity entered for the current line
  • ${rate} - Quantity entered for the current line; you can also use ${rate_plain} to omit any currency based prefix or suffix (e.g. "$1.23" becomes just "1.23")
  • ${total} - Total (rate * quantity, excluding taxes) for the current line; you can also use ${total_plain} to omit any currency based prefix or suffix (e.g. "$1.23" becomes just "1.23")
  • ${total_inc} - Total (rate * quantity, including taxes) for the current line; you can also use ${total_inc_plain} to omit any currency based prefix or suffix (e.g. "$1.23" becomes just "1.23")
  • ${tax_amount} - Total sales taxes for the current line; you can also use ${tax_amount_plain} to omit any currency based prefix or suffix (e.g. "$1.23" becomes just "1.23"); Important Note Because of decimal rounding, adding up the tax amount for each line may not equal the total taxes shown for the invoice!
  • ${row} - Line number of the current line; i.e. the first line is row 1, the second is row 2, etc.
  • ${item_name} - Name of the item selected for this line, if any
  • <!-- $beginBlock tax --> --> ... content ... <!-- $endblock tax --> - Inner "... content ..." is repeated once for every sales tax charged on the invoice; i.e. if you didn't charge any sales taxes, the content is hidden, if you charged one sales tax (e.g. VAT) one or more lines you'd get this once for the total VAT, and if you had two sales taxes (i.e. GST and PST) you'd see this content twice, once for GST and once for PST.
  • ${tax_name} - Name of the tax (i.e. VAT, PST, GST, SST)
  • ${tax_amount} - Total charged for that tax on this invoice. Also use ${tax_amount_plain} to omit any currency symbol
  • <!-- $beginBlock tax_entry --> --> ... content ... <!-- $endblock tax_entry --> - Inner "... content ..." is repeated once for every sales tax charged on the invoice as with "tax" above but you can also show the registration number (if any)
  • <!-- $beginBlock tax_entry_with_registration_number --> --> ... content ... <!-- $endblock tax_entry_with_registration_number --> - Inner "... content ..." is repeated once for every sales tax charged on the invoice that you have entered a registration number for
  • ${tax_entry_name} - Name of the tax (i.e. VAT, PST, GST, SST) for the current "tax entry"
  • ${tax_entry_amount} - Total charged for that tax on this invoice. Also use ${tax_amount_plain} to omit any currency symbol
  • ${tax_entry_registration} - Registration number entered for this tax
  • ${subtotal} - Total amount payable before taxes and before any payments are applied; also ${subtotal_plain} to remove currency prefixes
  • ${total_due} - Total amount payable after taxes and before any payments are applied; also ${total_due_plain} to remove currency prefixes
  • ${total_paid} - Total amount of any payments recorded against this invoice so far; also ${total_paid_plain} to remove currency prefixes
  • ${balance_due} - Amount of the invoice still payable after payments are applied; also ${balance_due_plain} to remove currency prefixes
  • ${due_date} - Due date entered for the invoice
  • ${currency} - 3-letter ISO currency code for the currency of the invoice
  • ${currency_name} - English name for the currency of the invoice, i.e. "United States Dollar", "Euro", or "Canadian Dollar"
  • ${currency_prefix} - Currency prefix, for example a "$" for dollars; use with a "plain" currency amount if you want to show the prefix separately from the amount
  • ${currency_suffix} - Currency suffix
  • ${currency_foreign_prefix} - Currency prefix that is made unique by adding some characters, for example a "C$" for CAD, "US$" for USD, "A$" for AUD, and so on
  • ${terms} - Terms entered on the invoice
  • ${last_modified} - Last modification time of this invoice
  • ${user_name} - Name of the user who last changed this invoice as entered on their settings page
  • ${user_registration} - Registration # of the user who last changed this invoice as entered on their settings page
  • ${created} - Creation time of this invoice - roughly when "Add" was clicked
  • ${creator_name} - Creation time of this invoice - roughly when "Add" was clicked
  • ${creator_registration} - Registration # of the user who created this invoice originally

Restrictions

For security and performance reasons, some restrictions are placed on the contents of the template.

  • No images other than the logo, are currently allowed
  • No script, iframe, embed, object, or any non-standard tag or attribute is allowed; any that are entered will be stripped out when you save
  • No external stylesheets can be loaded
Did this answer your question?