Putting extra textbox for OR number in POS

I’ve been wondering if how can i make a extra textbox in POS below the search bar for OR number textbox.

POS is not customizable in ERPnext

Do you want to add one more filter? Please share the use-case. If it is generic, we can add it in the core product. Means, you could contribute )

That’s not true. Everything is customizable as long as you are willing to spend the money with a developer. Here is what my POS screen looks like:

@cpsolution I have 2 extra fields at the top of the screen.

The first one is for a unique Customer ID that is in addition to the ERPNext customer id field. This extra ID field helps to correlate the customers in ERPNext to the customer records in Sage50 Accounting (Peachtree Accounting). It also means that we had to add the custom field to the customer record and set it up as a searchable field.

The second extra field at the top is labeled as PO# but it is really a free text field where our mobile sales users can either add a PO# or write in a check# if they take a bank check, or really anything else important to the sales transaction. The information gets saved with the sales invoice record.

This is all running in v10 right now. It was not cheap. It cost me significant money to get it done and implemented, but the work is already done. It was submitted as a PR but rejected because it didn’t fit the foundations future idea of POS.

If you really want something like this I can connect you to the developer I hired to make it work. They are not very fast, but they are very good. Just be prepared to spend some money.


1 Like

One thing is certain, the POS screen should have a free text field which could get mapped to either an ‘Additional Details’ or ‘Comments’ field in the Sales Invoice. This is basic and should have been included right out of the box!


Try with custom app

You can achieve this from your custom app if you don’t want to change standard ERPNext/Frappe files.

In your custom app hooks.py add custom entry for page_js to override the standard functionality.

For instance:
In custom app hooks.py add following entry:

page_js = {
            # For Account POS(Offline)
            "pos": "<your-custom-app>/public/js/pos.js",
            # For online POS 
            "point-of-sales": "<your-custom-app>/public/js/point_of_sales.js"


COPY  the pos.js, point_of_sales.js from erpnext to your custom app  "public/js" folder.

After copying the file then you may make changes in pos.js and point_of_sales.js file(in your custom app) to override the standard functionality.


sir can you guide me all through this…what should i do 1st then and so on…
Thank you for your replies

its the official receipt number sir… if we add a field for official receipt number in pos.
we use to track using the OR number specially when it comes to warranty, sales, inventory and defective products.

What should i do to contribute sir @umair. This is my first time to explore the ERPNEXT POS.
Can you help where should i start to share my idea about this matter

Thank you for inspiring me!

  • Where does your Official Receipt Number come from?
  • Is it generated by another business process or system?
  • If not, then could you use the Sales Invoice number from ERPNext?

We have also modified our thermal printer receipt to print the Sales Invoice # on the top of the receipt to make it easier to track it in the system in the event of a return or warranty issue.

The Sales Invoice number does not get generated in POS until you have selected the “Pay” button (at least on the standard edition of the POS module). So it is not easy to get that number ‘before’ you complete the sale.

In the custom POS module that I use, we have also enabled the ability to print a DRAFT receipt BEFORE selecting the PAY button. The act of printing the DRAFT also creates the Sales Invoice number. I believe this was also added to the core system late in the v10 updates because we did submit a PR for it. I am pretty sure you can now print before ending the sale.

We needed it to allow for our mobile sales users to print out a draft receipt for the buyer to review and agree to before selecting the payment method and closing the sale. This way items could be added or removed per customer request before finalizing the sale.

Hope this helps…


1 Like

Where does your Official Receipt Number come from?

We are issuing manual receipt for the customer, we cannot use the auto-generated number from the POS because our manual receipt are not in sequence.

Yeah… in that case you would need a custom field added to the Sales Invoice and then have it editable on the POS screen. That is going to be a custom change.


i already have added the OR field in sales invoice. my problem now is i dont know how to edit the POS screen. Cant help me on that part?

It is not as simple as editing the POS screen. The POS module requires extensive modification in order to get new things on the screen. That screen is already packed with information. It turns out to be like trying to put 2 liters of water into a 1 liter bottle. It took a while for my developers to get it to work.


1 Like

Thank you for your information.

It only allows to override PointOfSale class, other classes(PosCart, PosItem, Payment) declared in the real Point_of_sale.js function are not override-able. But if I need to add another column in the cart section (ex. total= qty* rate) how will I do it without editing in its class (PosCart)??

I am trying the same thing to extend the POSCart

1 Like