Being able to customize invoices with View Templates is a great feature.
First, it would nice to document more field names and Liquid options beyond the ones already noted in the Guide, to enhance and facilitate customization.
Second, It would be great to see View Templates functionality extended beyond Sales Invoices to other documents (especially Statements, Receipts, and Credit Memos.)
Finally, I notice that when I use a custom View Template, I lose some of the built-in intelligence of invoices. Custom invoices, for example, don’t know when to put “Hours” in the Quantity column. Perhaps knowing more of the field names would allow us to leverage Liquid to reproduce some of these smarts in our custom invoices.
This is my only serious complaint about Manager. In days of old, the sample code that appeared when creating a new view template was the actual code being used to generate a sales invoice. So, for example, I modified about 6 lines of code to create bigger margins, change a font size, and add a heading line. I was willing to cut and paste those changes every now and again when invoice functions were added.
Now, as you’ve seen, the sample code lacks much of the intelligence of standard sales invoices. So you need to be an HTML whiz kid and have all the field/variable knowledge. Unfortunately, @lubos’s explanation of why he changed didn’t make sense to me, cuz I’m not that whiz kid.
That’s just it: I am the former, but I don’t have the latter. I’m sure there are enough fellow “HTML whiz kids” here who can put the SQL schema information to good use.
I’ve worked through some customized templates for my business, but at the end, I’ve decided to abandon the customization and stick with the default. My thought of the default template is still the best to work with. My only wish is that within the default template where I could replace the heading of my own choice and determine which customers’ information (not the custom fields) is included on the invoice or the receipt.
This is something that will be supported sometime this year. The whole customization thing has been huge learning process for me too. What works, what doesn’t quite work, etc.
It’s possible to do it in Liquid but it’s just too much work. You basically need to set up some variable, give it a value - let’s say Quantity and enumerate through all line items to see if Hours could be used instead.
There are a lot of things in default template which would make it 10,000 lines beast nobody could understand (not even me) if written in Liquid. This is why default template is not written in Liquid and therefore is not available anymore - because it doesn’t exist.
Thanks for this, @lubos. The insight is very helpful. I’m glad you’re planning to extend View Templates. (Some extended documentation of variables would help with that, when it comes.)
I hadn’t realized that the built-in invoice isn’t in Liquid. Now I understand why it’s not the default template that gets loaded when a new template is created. Again, additional documentation of variables would be helpful so users can build templates that have some logic – but of course you shouldn’t give away all your secrets!
If you are from Netherlands and using two BTW (VAT) rates on invoice at the same time, according to Dutch legislation you need to show BTW-exclusive amount for each tax component. Again, this is some obscure rule which applies to one country only and will be incorporated in default template.
As for Liquid variables, default template is also using only variables listed on this page: Manager Cloud
It’s just that default template is written in C#, not in Liquid.