A couple of tips that I can share with you on this in designing the infrastructure, but first you need to determine the very first and important number one factor - security, which I will emphasize the scenario and my experience of it.
Security is going to obviously be incorporated somehow from the ground up. Think about it - the approach to having a database in each location is a NO-NO. Because a) Stock Control - if the stock control is going to be localized, there's a very strong chance that a fiddle can happen on this in order to 'artificially' inflate the profit/loss margins for the sales transactions. b) There will be situations where the price of a product can either be or both, same barcode or different barcodes despite the identical packaging - this can happen quite easily - you scan something, you swear it is in the system, and end up wasting hours trying to figure it out until the barcode was changed. c) The product can have the same barcode, but the price will have changed to reflect the market conditions - this can lead into a wild goose chase trying to work out whether to markup the existing stock to the new price, or wait until the old stock is exhausted, then put in the price change.
This will bring up a hairy situation in how to handle this and what to do - thus security must be enforced - not by computers, but by humans, a simple human error can happen, such as receiving an outer of products that have the same barcode but the price either increased/decreased and put it up on the shelf...this can inconvenience and stunt the flow of POS from customer taking the product, going over to the counter, scan it in, pay the cash...you get the drift.
Thus, this is where the security must step in from the ground up, it is imperative that you tread very carefully and design this correctly as an incorrectly designed POS (even if it does work) can lead to cashiers fiddling with the stock levels, profit/loss, take cash from the POS...Also, how would the security be enforced in regards to the flow of cash coming from the POS...think about that...a fiddle can occur there...by bypassing the POS system completely and put the cash into the pocket...
How do you approach in sync'ing up to the master system, this will have to be done outside business hours depending on how many transactions were committed, furthermore a sync operation could take time hence outside of business hours, no point having it run during the day when there's customers waiting to pay for their purchases.
Security also needs to be considered in the event of 'I have the database locked down - well and good', but what about the transmission of the data, can be easily intercepted...no matter what you say, there WILL always be a tech-savvy operator operating the POS...If a problem occurs on the POS system itself, the chances are that the operator will 'consult' with outside people to fix it as they would probably feel like 'I do not want to hassle the support team - they are probably sick of me pestering them', this underlines and summarizes a number of things:
- Security, from ground up
- Training, must be rigorously followed up, on common sense
- If in doubt ask the seniors...some actually do not bother to do that and assume the operators know what they are doing...
- Need to eliminate human errors and conditions which are outside the control of the POS, market fluctuations in prices of products, barcode errors
- Last but not least, design the UI to be as simple and friendly as possible with zero frustrations such as refusing to accept inputs etc... you get the drift...