Some experience from the past.. might be outdated info, so do your own research. Cash drawers we looked at were mainly serial controlled and came in two flavors, dumb and smart. Dumb ones would open the drawer on receipt of ANY serial command. Smart ones you could 'talk' to, mainly to figure out if the drawer was open or not. The input voltage (to power itself) was irrelevant for these units as they came with their own supply. Then there were USB ones as well. We just used a regular dumb drawer. Be prepared to spend some money on these. I recall several hundred for a commercial quality cash drawer.
Most all of those commercial receipt printers talk some simple protocol. You mostly just send it text over it's serial/USB/Ethernet/whatever link and it prints out your receipt. You can print bar codes with special control/markup characters, etc.. or even embed pictures for a logo. We ended up going with printers made by Zebra. Their printer language is called EPL or ZPL. We needed two of them at over $300 each. Again not cheap.
There are bar code scanners too.. and those are pretty easy to interface with really.
In the end it was not a money saving exercise, but one where we needed custom POS features. It probably cost about 5x more then an off the shelf solution and I wouldn't do it again if I had another option. I can't imagine there not being a suitable POS solution for a restaurant.
Power problems? MoPower UPS for the Pi