Using a Number Pad for Free Tagging Input

Hi,

I have a setup whereby I am prompted to input a phone number as a ticket tag.
At the present time, the prompt automatically appears as below when I start a particular type of transaction. I was wondering if it would be possible to have a number pad when I press ‘keyboard’ instead of the (otherwise wonderful) Samba Keyboard? Or even better if it could pop up with the number pad automatically?
It’s not a big deal as I am thinking I can simply provide a hard (physical) keyboard or number pad to input phone numbers. If the process were more in line with the above then it would keep the input operations within the touchscreen.
Any advice or opinion appreciated. Thanks.

You will need to create your own Phone Number button on the POS screen.

Start by unmapping the Ticket Tag Phone Number button. It should be grayed out after saving.

Then in Manage->Automation->Automation Commands->Add Automation Command.
Create a Phone Number button. (Design to your liking)

in Manage->Automation->Actions->Add Action
Your going to add an action called Update Ticket Tag
Select the Phone Number Ticket Tag. In the Tag Value put [:Enter Phone Number]

Now you going to need to tie these all together using a Rule
In Manage->Automation->Rules->Add Rule
In event name your going to want to use “Automation Command Executed”
Add a custom constraint of “Automation Command Name” “Equals” and select the phone number button you created.
Add the Action you created.
In the Enter Phone Number field enter this: [?Enter Phone Number;;{TICKET TAG:Phone Number};OC]
The button that appears on the left side of the POS screen will only allow you to add the ticket tag if the ticket is not a new ticket without any items on it. You will have to have at least 1 item on the ticket.

To have a popup appear after the first item is selected you will need to create another rule.
This time the event should be “Order Added to Ticket”. Put a constraint of {TICKET TAG:Phone Number} Is Null (last field left blank)
You can also add {ORDER COUNT} Equals 1
If you need to constraint it further you can also do that.
Then add the same action with the same text as before in the “Enter Phone Number” field.

Now when the first item is added to a ticket a popup will appear asking for a phone number. If a mistake has been made, the Phone Number button to the left will pop-up with the previous phone number as the default.

1 Like

I ran out of time yesterday, to explain about creating your own custom keyboard. Here is a link to more information about Prompt and parts of the Prompt’s fields:

1 Like

Use this:

[?Phone Number;\d{x,y};;OCN]

where x is the minimum digits and y is the maximum digits. Only integers are accepted and the number pad will show.

2 Likes

Thank you for this.
I am going to look again at it later.

I did have it asking automatically to enter the phone number when the first item was ordered (albeit with the alphanumeric keyboard).
However, one problem I was having was that if you ordered an item with an order tag that pops up automatically, then the phone number prompt comes in at the same time as the order tag prompt. So you end up with ‘enter phone’ on the left hand side and then whatever the tag options are for the product you ordered first on the right.

Am sure there must be a work around for it but my first thought was to get the prompt to occur on settle instead, that way you are not prompted for a phone number when the customer has already got into the process of telling you their order.

When I set up a rule for this, I couldn’t figure out how to get it to prompt for phone number. Instead it is just showing a message reminding the operator to ask if the customer received their text message with order number. This comes after the tag has been applied. And I can’t remember how I configured that either.

Will take a look at it later and hopefully get a handle on it.

You can constrain your rule to the order count (I used ‘Order Added to Ticket’ as the rule trigger):

2020-08-31_10;22_1598890924_Samba.Presentation

[=TN('{ORDER COUNT}')] EQUALS 1

Here’s how it would look:

Or, you can modify the Close Ticket Rule to not close the ticket if the ticket tag holding the phone number is null. This would have the benefit of ensuring the user enters a phone number.

Also, if you use [?Phone Number;\d{x,y};;ON] instead (no ‘C’ for ‘Cancel’ at the end) only the ‘OK’ button will be visible and the user must enter something.

1 Like

Amazing thanks. It’s clear there are a few ways to approach this and I’ve incorporated your advice into an immediate solution.

One last area of concern for me here is the ticket lister. I am having a hard time figuring out how to get tickets to display if they do not have a phone number attached. For example, some customers won’t want to give their number or might not have their phone on them.

Here is an example of how my lister looks. One of these tickets has had the number entered and the others have not:

The lister format in the settings is as below:

> <L00><block 10 transparent left *>
> <L00><size 15>Ticket No:{TICKET NO}<br/></size>
> [<L00><block 1><size 20>{TICKET TAG:ENTER PHONE}</size></block><br/>]<br/>
> <L00><size 20><timer {TICKET DATE:HH:mm} {TICKET TAG:Delivery Minutes} 1>
> <L00>-30:<color LightGreen><size 20><m:>:<s:{0:00}> min.</size></color>
> <L00><br/>0-5:<color LightPink><size 20><m:{0:00}>:<s:{0:00}></size></color>
> <L00><br/>5:<color LightPink><size 20><m:> Minutes Due!!</size></color>
> <L00></timer></size></block>
> 
> <L00><block 20><size 20>£{TICKET TOTAL}</size></block>

I tried to create a new ticket tag called NO NUMBER with the idea being that I would tag the ticket with that if there was no number. After which I was hoping the lister would look a bit more normal.
But, unsurprisingly, I’m having a bit of a job with that too. Below is what I managed so far but I’ve not been able to get the ticket tag to change to NO NUMBER when no number is added.
The orders are cashed off but kept visible using status, until they are ready and collected.

image

image

image

I am fairly certain that it is something simple and is more due to my primitive knowledge on the subject. In particular I don’t fully understand ticket tags yet. I understand where you create them and how you can use them but I am sure I have seen others create ticket tags within actions without explicitly creating a ticket tag within the ticket tag setup area…

The raw text one sees on the left of your ticket display is that what happens when there’s no phone number?

Hi Memo yes it is indeed.

I was initially thinking to use a ternary expression but it doesn’t seem to be working with ticket tags:

[=('{TICKET TAG:ENTER PHONE}' == '' ? 'NO NUMBER' : '{TICKET TAG:ENTER PHONE}')]

What that would do is see if the ticket tag is empty and if so print ‘NO NUMBER’. If it is not empty it would display the ticket tag value.

Another thought would be to automatically tag the ticket if no phone number is present:

2020-08-31_13;14_1598901261_Samba.Presentation

Event Name: Before Ticket Closing
Custom Constraint: {TICKET TAG:ENTER PHONE} [IS NULL]

Action you’re using to tag the ticket:
Tag Name: ENTER PHONE
Tag Value: NO NUMBER

change:
[<L00><block 1><size 20>{TICKET TAG:ENTER PHONE}</size></block><br/>]<br/>
to:
<L00><block 1><size 20>{TICKET TAG:ENTER PHONE}</size></block><br/><br/>

For readability, I would recommend a more descriptive name for the ticket tag like Phone, Phone Number, Phone No, Phone Nr, etc. I feel it is easier from a readability standpoint when looking at the ticket. YMMV

1 Like

That’s brilliant. Thank you. I’ve implemented your first solution. But your second one would be equally useful.

I’m going to leave it like that for now and see how it goes while I get to grips with other parts of the system.

I was unable to get that to work for whatever reason. I put it in the post hoping someone might be able to make it work.

1 Like

It worked for me.

<L00><block 10 transparent left *>
<L00><size 15>Ticket No:{TICKET NO}<br/></size>
[<L00><block 1><size 20>[=('{TICKET TAG:ENTER PHONE}' == '' ? 'NO NUMBER' : '{TICKET TAG:ENTER PHONE}')]</size></block><br/>]<br/>
<L00><size 20><timer {TICKET DATE:HH:mm} {TICKET TAG:Delivery Minutes} 1>
<L00>-30:<color LightGreen><size 20><m:>:<s:{0:00}> min.</size></color>
<L00><br/>0-5:<color LightPink><size 20><m:{0:00}>:<s:{0:00}></size></color>
<L00><br/>5:<color LightPink><size 20><m:> Minutes Due!!</size></color>
<L00></timer></size></block>

<L00><block 20><size 20>£{TICKET TOTAL}</size></block>

Well look at that! lol

I usually test such things in a ticket template and it didn’t work.

1 Like