Custom Print Formats Deal Breaker

Unfortunately it looks like ERPNext won’t suit our needs. Frustratingly the functionality overall is amazing and everyone I show in the business is quite impressed. However the inability to customise print formats, the lack of any useful documentation or even simple examples online on how to do so means we cannot proceed. Two lines of how to add a variable in the documentation just isn’t sufficient. I mean there’s not even a clear picture of how to add a sales order item field to a Sales Order report. The “templates” provided on the wiki and elsewhere are 5 years old and required to be Client Side setup - which is no longer even supported…

After some searching here it appears we are not alone as others have lamented the complete lack of print customisation ability as well. By the time you pay for an implementation partner to do all the print customisation required for even a basic business other products like ODOO or even “paid for” ERP products will be less expensive overall.

Great product guys, but I really hope you commit some time in the near future to this area as the product is crying out for it and other products like OpenERP have a much simpler and intuitive report designer.


As a simple example, the custom print format page states:

frappe.db.get_value(“[doctype]”, “[name]”, “fieldname”)

Get value from another document.

So I try all variations of calling a sales order item field but returns “None” on the print.

What is the syntax in the Standard Print Format since even that is inaccessible…

Hi @monojoker

Can you give some details about what report and print format are you trying to make? Maybe you don’t even need to write code for that.

In v5, we are making a UI for print format generator, so some issues with customizing print formats should be gone.

We know we are a lot behind in documentation. It will be our primary focus this year, along with videos, once v5 is released. In the mean time, we are happy to help on the forum.


Hi @anand,

Don’t get me wrong I really appreciate the forums and the prompt responses I get to requests. I feel a bit silly posting so many specific questions though about how to do what I assume is the basics for a Python/Javascript competent person. A Print Format Generator UI would be amazing in what’s already a very capable product. What is ETA for V5 release?

I’m also not criticising the lack of documentation - I can only imagine how much work is involved in creating and supporting a full ERP - just lamenting the difficulty that provides to a n00b like me when trying to configure the system for a demo in a tight timeframe :smile:

Anyway what I’m trying to do right now is make minor changes to the Sales Order. For example setup a Sales Order Custom Print Format which is a bit different from standard.

So here is standard layout:

But I want this:

BTW I did try and contact some of the partners on the community portal who are available to do paid jobs (eg customisation) but have not received any replies :frowning:

  1. Currently if those fields are not set as “Print Hide” they will appear in the Item description
  2. You can set “Print Hide” to the taxes table to not print it.

For any company there will always be use cases that cannot be fully covered. You have to take a call on basis of the total cost-benefit of the solution.

1 Like


Thankyou for the tip, I will make changes today.

You are correct of course, even the most suitable “off the shelf” solution will only at best be 70-80% fit for a business. I guess for a printing/design company being able to customise forms to look professional and contain custom logos, etc is important.

Given the revelation about a custom GUI print format engine in V5 (when is that expected to release?) we can workaround the limitation for now using a rather primitive Excel macro set.

Has anyone successfully implemented a BI or other reporting tool “over the top” of ERPNext in the Frappecloud to get around the report engine limits?


You can export the report as csv, open it in excel to run macros.

What kind of limitations do you face in reporting?


@anand Yes that’s how I will be doing the custom print formats we need - it’s still quite cumbersome if you think about it as you have to first filter the list for one Sales Order (we only print one job form at a time) - and that’s the only field you can’t “auto-filter” on simply by clicking it unfortunately :smile:

Then you have to open Excel, paste the data in (careful to put it in the right cells, etc), run the macro, etc.

It’s certainly an option but the ability to add a custom report using HTML would be much better. Unfortunately I can’t even find the syntax to add Sales Order Items to a Custom Print Format for Sales Order - the help section of the system says to use: frappe.db.get_value(“[doctype]”, “[name]”, “fieldname”) As per my thread here: Custom Print Format Examples - #2 by rmehta

But using that logic does not return the Sales Order Item fields at all.

Could you tell me the exact format of that statement to return, say Sales Order Item → Item Code on a Custom Print Format? The standard one does it but I want freedom to place such details elsewhere on my printout - more than simply hiding/showing in the Customise Form section can achieve.

Something like this:

Does that make sense?

1 Like


  1. You can use this print format for your reference.
  1. syntax for printing a Sales Order Item field on a custom print format?

make this change to fetch data from sales order item.

{%- for row in doc.sales_order_item -%}


[image: photo]
Sambhaji Kolate
Software Developer, Systematrix Solution
Mobile: 9850015051 |

1 Like

@kolate_sambhaji - why don’t you make a GitHub repo of all print format samples? It would be a great resource for the community.

Hi Rushabh,

Thanks for your suggestion.
I have created GitHub repo of print format samples.

I will add more information and tips for print formate in my free time.

Print Formate Builder Tool is a nice feature in v.5.0

I have one question related to Print Formate Builder Tool
, Clients want to print document which is not
submitted. Not Submitted document show 'DRAFT". Can we remove this
‘DRAFT’ label from report builder tool? OR
Can we change ‘DRAFT’ to ‘PROFORMA’ in case of Invoice?

Sambhaji Kolate

1 Like

The reason “Draft” exists is because there must be an audit record for every document that is sent to the customer / supplier, so that conflicts can be avoided.

Hi Team,

How can we print address of warehouse in Delivery Note/Purchase Receipt?
Is it possible to print values from linked field without fetching?
Currently, I am fetching warehouse address fields from warehouse using
If we update the address or contact info. this will be not updated in
existing transaction. So we need better way to handle this.


1 Like