Assign ticket number when the ticket is paid instead



I would like to know what is the best way to have ticket numbers assigned when the order is actually settled/paid and have order numbers assigned instead when the ticket is closed/sent to kitchen. There are times when the order is voided right after it gets to the kitchen and the entire ticket is emptied.
When this happens ticket numbers skip and it makes it confusing to manage settled tickets as it seems they got lost or missplaced. I just need the numbers to be consecutive.

Can this be done with ticket tags maybe? I am unsure on how to get a counter working that triggers everytime a ticket is settled completely. I cant find any info if ticket counters can do this as well.

Thank you.


Try using {TICKET ID}


By default, the Ticket Number is assigned when a Ticket is Closed (ie. Orders are Submitted), whether Paid or Not. If you want to assign the Ticket Number when a Ticket is fully Paid, you will need to handle that using custom Automation.

Here is a Tutorial that shows how to track your own “Invoice” number(s)…

That ^ Tutorial leaves the normal default Ticket Number generation intact, which is something that you don’t want to be messing with. However, it behaves in the same way as default Ticket Number generation, in that it assigns/updates the Invoice Number when a Ticket is Closed.

You will need to modify it to suit your needs, that is, you need to change the Rules when the Invoice Number is generated/updated and applied. As is, the Rules are triggered for the events of Before Ticket Closing (invoice number generated//updated) and Ticket Closing (invoice number applied to ticket as a Tag and State).

You should change both of those Rules so that they contain another Constraint to check for Remaining Amount Equals 0


Can I use that Custom Invoice Number in conjunction with the tutorial linked below, because I want to print the {TICKET ID} as a barcode on the paper receipt, but it doesn’t.


The numbers are completely unrelated and have no relation to each other. You can print any of them as a Barcode:


It works. Provide more information.


I have Receipt Printing on Payment Processed. I changed the Event to Ticket Closing, but changing 1 Rule screws up 3 other Rules. So I don’t want to mess around with the Event for the Receipt printing. If I can use a psudo-ticketid that’s issued sometime before Payment Processed, I would use that.


Both Ticket Id and Ticket Number are generated when Orders are Submitted (when the Ticket is Closed, Paid or not).

Even the Tutorial for the Invoice Number behaves the same way, unless you change the Rule as shown to include the Constraint for Remaining Amount Equals 0.


Creating the invoice number of times key creation defeats the point unless you put together some convoluted way to go back if ticket is canceled out.


Thank you for the reply,

I have tried importing this tutorial file, doing the changes and setting the printer tags, they’re a few issues with this;

When I void an order that was sent to the kitchen by mistake and the ticket is emptied this still assigns an invoice number anyways maybe since the remaining amount will equal zero once it is voided. It seems it doesn’t print the invoice number at all on the ticket, the only way I can track this is through the ticket screen by reprinting the ticket. If I settle the ticket normally then print a receipt the invoice number will be empty on the print.


I have managed to solve the issue of voiding order using a custom ticket tag and custom constrain on Apply Invoice Number A and update Invoice Number A along with ‘remaining amount equals 0’.

So if the order is voided it would tag it ‘Processed’ = ‘Skip’ and I added ‘{TICKET TAG:Processed}’ != ‘Skip’ as custom constraint.

I have an Execute Print Bill Job when ticket paid that prints a different template of the ticket when the ticket is paid. When it prints after the ticket it’s closed it does not show the Invoice number on this ticket, as if it has not been assigned as yet.

Edit: What I did is I merged the ticket print job action right after the update ticket tag action under apply invoice number rule. That did the trick! Now the invoice number prints on the ticket when the order is paid.