Tags in constraints

Hi, is there a list of tags (i.e. {:Tax Template} or {:Order Tag}) that can be used use for building custom constraints?

One more question, I use the ‘Update Order’ action to set a price definition when an order has been tagged, when the order is untagged I would like to remove this price definition again. How can I set a value tu NULL explicitly?

Most if not all Printer Tags can be used in Actions & Rules.
The best way to test is to create an Action to Display a Message, put this in a rule and use a Printer Tag to display the values you want, then you have an idea of what is available. The general guide is if a Rule deals with Orders, then Printer Tags related to orders are available. If a Rule deals with the Ticket, then Printer Tags for Ticket information is available.

If you are using Update Order to apply discounts, etc, you can use Order.PriceTag to set the Order back to its original price. Have a look at How to add %50 discount button and Adding Discounts to Orders with Order Tags for some hints.

Thank you! Second part of my question: is there a special syntax to reset a formerly to an empty value (i.E. reinitialize)?

For Price Definitions, setting the definition again but leaving it blank should reset.

No it does not, unfortunately it just keeps the one already set.


how would I express that don’t want an action executed for a certain (or even more than one) product group (see below)?

Are you using Update Order Tag or Change Price List action ?

Update order action…

For multiple constraints I would use Custom Constraint List and change Execute Rule if Matches All.

Use != instead of <>

Try running Update Order action again with the following should reset the order to original price.
Portion Name = [=Order.PortionName]
Price Tag = [=Order.PriceTag]

I can’t get the custom constraint to work. In the Following example the Message always shows up, i.E. the constraint always resolves to true:

I’m still trying to understand what you are trying to achieve. If you can give more details about your use case we may find better solutions.

VAT in Switzerland is 8% for articles consumed on premises and 2.5% for take-away articles. This applies to food only, other products such as merchandising are always taxed at 8%. Additionally when a voucher is sold, there is no VAT since a voucher is not a product but a financial transaction. So my POS needs to support the following

  • fixed VAT products (8% or no VAT at all)
  • variable VAT products (2.5% or 8%)

A customer might buy all of these in one transaction, so I’m restricted to one departement and one ticket type.

Furthermore I want to keep our product list redundancy-free and the menu simple. My Idea was to handle this using an order tag called ‘Take away’. When it get’s set the tax template for this order line will be set using the new setting in the update product action. This works fine when I set the the order tag product by product:

Additionally I’ve created a button (the pink one - never mind the color, it’s just for testing) to set all products of an order to take away for easier handling of take away-only orders. Naturally I want to exclude the products which belong to the fixed VAT-categories (products groups ‘Gutschein’ - German for Voucher and ‘Merchandising’) from this rule/action because they are for Take away by nature.

Current actions does not support such tagging operations. Now I understand why you were looking for order looper. You need to loop through all orders and execute related actions by order type. Umm… yes that might be an interesting feature but first I have to check if such feature will be possible.

It seems you found the right solution by handling “Order Tagged” event. I suggest you to use Order States instead of Order tags. It will better suit your needs. You can handle Order State Changed event to check order properties and execute related actions. I used same approach on “Coupon Promotions” tutorial and it worked fine. Feel free to ask when needed.

Will try! Thanks a lot!

Hi, using order states does not work either. The problem seems to be that the {GROUP CODE} tags cannot be used in rule constraints when an automation command is executed on all order lines from the ticket screen. It does work when I execute the same automation command from the orders screen after selecting multiple order lines.

OK. Let me test that.

Can you try that?

  1. Execute Update Order State action with a dummy state set. For example update LoopControl state to Test.
  2. Handle Order State Changed event and if:
  • StateName Equals LoopControl
  • State Equals Test
  • {GROUP CODE} Equals xyz,
    … execute your actions to update order’s tax related states.
  1. Execute Update Order State action again to Update LoopControl state back to null.

You’ll execute 1 and 3 from automation command handling rule and create new rule for 2.

Could you solve it? Let us know your progress.

Hi, no I haven’t tried it, I’ve been busy setting up all the hardware for our POS an creating the printer templates. Will get back to the VAT this week end.