create a whole bunch of addresses on a home computer that is not a server.
put ONLY the public addresses into a database on the server. and use the blockexplorer or blockchain.info api's to do your balance checks.
then use the home computer to sweep all the funds into your master address frequently. for you to be able to re-use those addresses
ensure your server only has public addresses. do not have a bitcoin client on your server. an EPOS is meant for receiving money, not sending it. so there is no requirement to be sending funds to customers.
if a transaction needed to be refunded due to customer relations issues or a problem with the product sold. then the shop manager would use their home computer/another office/customer service department computer for sending the funds. not the main servers computer.
again do not have a bitcoin client on your server
api's you can easily use
show QR Code on html webpage
https://blockchain.info/qr?data=putaddresshere">
get the balance of an address
http://blockchain.info/q/addressbalance/putaddresshere?confirmations=0