Customer Loyalty Points Setup [4K with Voiceover]


can we change terminology as this is confusing, that ticket showed a balance due?


yes after the points are applied. the receipt will print. it should not print when there is that balance due… The ticket is still open because money is owed to close it. once i pay this ticket at the payment screen, the ticket closes and the receipt is printed again showing everything correctly. i am trying to stop the first receipt from printing. i don’t need 2 receipts for this ticket.


Also {TICKET TOTAL} isnt really total due, as you paid ticket still shows grand total due on the after payment when in thery due is 0.

You should have grand Total: {TICKET TOTAL}
Remaining Balance: remaining total/balance


So why are you trying to make it print on points applied?
Remove the print from this rule and change/make a ticket closing rule to force a final print where ticket total is grater than 0 and balance is 0.

Ok, which brings back to earlier question.
You probably need an alternate set of constraints so its (ticket total is grater than 0 and balance is 0.) OR loyalty discount ticket.


ticket total equals 0 constraint was part of my problem earlier. i was told to remove that constraint and things were working. this is a print receipt problem. how can i direct the ticket paid by all points to close using my ticket closing rule, instead of trying to print from the “apply points” rule?


Take the print out of the points automation rule and lets move to the closing/before closing rule where normal end of ticket print is.
Show screenshot of that rule.


i think i need a constraint in the “print paid bill” action that addresses the {ticket total} having a certain value in the “apply points” rule. the constraint i was using addresses the {balance} having a 0 balance. that is true in both cases i presented. the only thing that is different on both receipts is the grand total due: {ticket total}.



You dont need the close ticket there for one, the ticket is already in the process of being closed.

OK, think better plan is maybe leave this rule and go back to the points rule.
Since this is printing if ticket greater than 0 and remaining = 0 then the print action in points automation to print only if remaining amount <0


That did not work either. put constraint back in print bill action in the apply points rule. still printing 2 receipts for ticket with grand total due.


The ticket closing rule you showed is not printing the second copy then… its constrained to remaining amount = 0 so its printing elsewhere.

You say you fdid fast change etc tutorials… sure you dont have another rule printing?

But saying that your grand total due is not actually due so you definatly mean remaining balance?


yes it is printing the second copy.

that is the only rule printing.

the problem is within the “apply points” rule when i try to print the ticket paid with points and there is a remaining balance.

i was trying to get this ticket to print the one final receipt afetr the remaining balance has been paid. if not possible, i will just waste receipt


Your making this very hard to follow.
Issue is printing multiple copies or printing balance…
Show screenshot and HIGHLIGHT exactly what your refering to as showing balance…


it is really simple. issue is multiple copies. i will give you the two scenarios again. the first:
1.) i open ticket, add product (customer has enough points) , apply points to pay ticket in full. (see screenshot: grand total due: 0.00) the ticket then prints correctly and i can close.
second scenario:
2.) i open ticket, add product (customer does not have enough points to pay balance in full), apply points and there is a remaining balance ((see screenshot: grand total due: 67.25) the ticket prints then but is still open because of the balance. to close the ticket i go to payment screen and settle the balance. at this point i get another receipt showing amount tendered, change due, etc. The points are allocated to the loyalty card and ticket is closed.

I am trying to stop scenario 2 from printing two receipts. The last receipt is the only one that is necessary because the points have to be allocated to the loyalty card since there was a payment.

scenario 1 does not have a points receipt printed because there was no cash/credit payment received, points were used.


So remove the total amount constraint from the ticket closing rule and dont put the print rule in the points automation rule.

Assign ticket number when the ticket is paid instead

JTRTech, that is exactly what worked. now i get the one receipt. The constraint was the problem. thanks for the brainstorm. RESOLVED


Your issue will be tickets that have all voids will print from that rule. The ticket total greater than 0 is usually to stop those type of admin or misc prints from happening where ticket total is 0.
Alternative might have been to create a seccond closing rule with constraint of loyalty discount = tocket total to catch the 100% discount tickets.


I will play around with creating a second closing rule and see how this works. Thanks


Hey @JTRTech quick question.

I’ve attempted to put your loyalty points setup together. A few minor things Is not doing what I want it to do but that is most likely due to me maybe doing something wrong.

My question is, how could we apply it so that it adds a point only on check out.

E.g. A point system which counts each time a person has visited.
Then after a certain amount of visits, they can use the points to get a discount.

So rather then adding a point for each item, we add a point for each time a customer checks out.


Great tutorial @JTRTech Absolutely amazing, learned a lot.
But I have configured it on v4 and First MATH.floor did’nt work for me, I searched the forums and found Round which is working fine. Second loyalty points don’t seem to work when I close ticket, I think its a matter of v4, maybe the formula are different. The problem is with this rule, I tried adding simple +100 and it works but it wont add loyalty points and unclaimed points. Can u please help


V4 does not support any jscript that is v5