Pos numberpad and auto decimals

Hello everyone, I was wondering if there is any way to make the pos numberpad do auto decimals as I’m going to use it for price change only and I would like to to punch for example (999) but the numberpad should do (9.99)
I was able to do that with the numberpad on the payment screen but I really need it on the one at the pos screen underneath the items.

Probably not on screen but you could run it through a script or expression to say divide by 100 when updating product price.

1 Like

Or set it to custom keypad and create your own that includes a decimal button

You can even then set button colour and hovet colour so the button changes colour when pressed


I have never worked with custom keyboard but I’ll try to find out how I can get this to run through custom keyboard.
Thanks for your reply.

Good Tutorial here showing use of Custom Keyboard that you can adapt for “auto-decimal” if need be …

1 Like

Thank you for your help, I still don’t know what to put in the custom keyboard field to make the auto decimals.
I would appreciate it if you can help me more with the code.

LMy tutorial posted above tells you exactly what you need to do step by step, the keyboard code is also there so you can just cooy and paste it

Work through the steps to create the proce change button

1 Like

Thank you for your reply,
When I followed your tutorial I ended up with a number-pad that doesn’t allow less than 4 digits to be entered and let’s say I enter 9999, it won’t change it to 99.99 as well as if I enter 999 it should change it to 9.99 and that was my request at the first place.
I just wanted to make the default number-pad to do auto decimals and if you can help me with that would be much appreciated.
If I only enter some code in the existing number-pad and choose custom number-pad , wouldn’t solve my problem?

The custom keypad was to add a decimal button I believe.
The numberpad field as far as I’m aware cannot be set to auto decimal as you type like some other pos.
I understand your request but is not posible through a simple option on the numberpad.
You have two options;
Am guessing you want for setting price or updating price. So you could do what I do for open priced products and rather than entering price in numberpad before adding the open priced order set a custom product tag field for open price product and set a value in that field for these type of products like Y or X and leave others blank.
Then setup a rule on order added event and constrain to product tag ‘open price’ is not null and add an update order action with price set using a [?Prompt] expression which with correct expression will display a popup with numberpad for you to enter price. And although I’ve not done I’m pretty sure you can set a mask format for the prompt which would be your decimal.
You other option or if that doesn’t work and requires a script to process 999 into 9.99 is to rather than use the default numberpad price set flow and set custom automation as I suggested before where the script will process the 999 three diget number into a decimal number before updating price. The script or in fact it would just be a [=x/100] type calculation expression to decimalise the number.

You should be able to set the custom keyoad settings to auto add the decimal i think, @QMcKay might be able to help amend the current settings to do this


What you probably really want when it comes to “auto-decimals” is something called an Input Mask, where the decimal separator is automatically inserted for you. That might be possible with the [?prompt] syntax, or it might not, given that you need to effectively read the input in reverse, which is not natural for [?prompt]. What I mean is, each time you type a number, it needs to be appended to the end of the input, while also shifting each prior-typed digit to the left.

If you want something that is simple and works for your end-goal, but does not visually show you the decimal being inserted as you type, then it can easily be done like the following, where we divide by 100 …

Automation Command

Gives us our own custom Price Change button.

Action - Update Program Setting

We use this to store a value in memory.

Action - Update Order

Used to set the Order Price.


  • Action 1) Prompt for the price and store it in memory variable PCprice

  • Action 2) Update the Order Price by taking the value stored in PCprice and dividing ot by 100

1 Like

Or even simpler, using the Default Price Change button and the Numberpad

Action - Set NumberPad Value

We can use this to clear the value in the Numpad box, or set it to whatever else…

Rule - Default Price Change

:bulb: This Rule already exists; we are modifying it.

  • Action 1) we disable the first Action with 1==2 so that it does not fire.

  • Action 2) this is an Update Order Action, like we defined in the previous post. We get the value entered from the Numberpad and divide by 100 and assign it to the Order price parameter, as such:

[=TN('{:NUMBERPAD}') / 100]
  • Action 3) clear the Numberpad field, or we could set it to the same as above using the same equation.