TakeAway Surcharge per-Product

This method allows for applying a TakeAway Surcharge on a per-Product basis.

It uses a combination of Product Tags, Ticket Tags, Order Tags, Order States, and Automation (Actions/Rules).

While you could use this surcharge to recover the cost of Take-out containers, we are going to call this surcharge an Environmental Fee, and the surcharge can be different for each Product.


FLOW:

Click on the To GO button at the bottom of the Ticket to toggle between Dine In and To GO, while also automatically applying or removing the Environmental Fee surcharge


Ticket Tag TA with sub-Tags β€œDine In” and β€œTo GO” (no mapping required)


Order Tag TA Surcharge with sub-Tag β€œEnvironmental Fee” (no mapping required)


Custom Product Tag Caption β€œEnvFee” to set per-Product Surcharge value:


Set the EnvFee surcharge for each Product using the Product Tag Editor:


Automation Command to toggle Dine In / To GO:


Action to set Ticket Tag TA to β€œDine In” or β€œTo GO”:

Tag Name: TA
Tag Value: [:StayGo]


Action to update Order State TAsurcharge to TA or NonTA:

State Name: TAsurcharge
State: [:TA or NonTA]


Action to Tag Order with the Surcharge and Fee:

Order Tag Name: TA Surcharge
Order Tag Value: Environmental Fee
Order Tag Price: [:SurchargePrice]


Action to UnTag Order:

Order Tag Name: TA Surcharge
Order Tag Value: Environmental Fee


Action to Refresh Ticket display (optional - you might already have this action as part of some other setup):


:exclamation: All Rules require a Default Mapping !!!

Rule to capture Automation Command button and set the TA Ticket Tag value to β€œDine In” or "To GO"

Execute Rule if Matches
Automation Command Name Equals TA StayGo Toggle

TA Update Ticket Tag StayGo:
StayGo: [:CommandValue]


Rule to capture Order Added event and set Order State to TA or NonTA based on TA Ticket Tag value of β€œTo GO” or "Dine In"

TA Update Order TAsurcharge State:
Constraint: '{TICKET TAG:TA}'=='Dine In'
TA or NonTA: NonTA

TA Update Order TAsurcharge State:
Constraint: '{TICKET TAG:TA}'=='To GO'
TA or NonTA: TA


Rule to check TA Ticket Tag value when we toggle using the Automation command for β€œTo GO” or β€œDine In” and set the Order State to β€œTA” or "NonTA"

Execute Rule if Matches
Tag Name Equals TA

TA Update Order TAsurcharge State:
Constraint: '{TICKET TAG:TA}'=='Dine In'
TA or NonTA: NonTA

TA Update Order TAsurcharge State:
Constraint: '{TICKET TAG:TA}'=='To GO'
TA or NonTA: TA


Rule to Tag Orders with the surcharge Fee when the Order State is set to TA:

The amount of the fee is derived from the Product Tag called EnvFee and is only applied if the EnvFee is greater than zero (0). If you want ALL Products to be charged with the same Fee, then remove the Action Constraint and set a static value for SurchargeFee.

Execute Rule if Matches
State Name Equals TAsurcharge
State Equals TA
{ORDER STATE:GStatus} Not Equals Gift

TA Tag Order Surcharge:
Constraint: [=TN('{ITEM TAG:EnveFee}')]>0
SurchargePrice: [=TN('{ITEM TAG:EnveFee}')]


Rule to UnTag an Order when the item is Gifted or when the Order State is set to NonTA:

Execute Rule if Matches
State Name Equals TAsurcharge
State Equals NonTA
State Name Equals GStatus
State Equals Gift


Rule to re-Tag Orders when the item is UnGifted and the Order State is TA:

The amount of the fee is derived from the Product Tag called EnvFee and is only applied if the EnvFee is greater than zero (0). If you want ALL Products to be charged with the same Fee, then remove the last half of the Action Constraint and set a static value for SurchargeFee.

Execute Rule if Matches
State Name Equals GStatus
State Not Equals Gift

TA Tag Order Surcharge:
Constraint: '{ORDER STATE:TAsurcharge}'=='TA' && [=TN('{ITEM TAG:EnveFee}')]>0
SurchargePrice: [=TN('{ITEM TAG:EnveFee}')]


If you implemented this setup manually by following the instructions above then Good on You! And if you didn’t, here is your reward for at least reading all of it…

DB Tools Import File for the Automation (Rules/Actions) and the Ticket Tag and Order Tag - you will still need to set up your Product Tag, and Product Tag EnvFee prices in order for this to work:

TakeAwaySurcharge_TicketTagOrderTag.zip (713 Bytes)

TakeAwaySurcharge_Automation.zip (1.4 KB)

4 Likes