That should read 'contract', not 'transaction' - you enter into a contract with the business when you order and consume food based on the printed price on the menu in the same way you enter into a contact with a petrol station when you fill up your car based on the price displayed at the pump and then pay afterwards - a merchant can't legally advertise one price to entice your business, gain that business and then change the price of the goods already consumed after the contract has been entered into at a particular price but before payment is finalised. Surcharges are perfectly legal, but must be disclosed in a way that allows the consumer to back out of the purchase completely, which means they must be disclosed on the menu (and at petrol stations, on the pump itself).