Tipping is an outdated guilt trip that lets employers underpay their staff. Pay a living wage upfront and stop outsourcing payroll to the customer's conscience.
It also makes prices fake. Just show the real cost upfront so customers can compare places without doing moral math at the checkout.