Within a store, each lane has to be uniquely distinguished, if only for identification purposes. Furthermore, a specific lane might be called upon to behave differently than all the others. At the Wedge Co-op, the lane at the customer service counter, for example, has certain extra "look up" features, while the one at the juice bar does not seem able to do certain things that are otherwise standard on the other lanes. While making sure that each lane is unique, we nevertheless have to insist on the exact same set of code being run on every lane. We cannot have the code forking within a store. It would be tantamount to running, and hence supporting, more than one point of sales systems at the same location. The lanes are made unique both in identification and in behavior by global settings in the file /pos/is4c/ini/ini.php. This file and the actual data generated by the lane are the only IS4C elements that should be different from lane to lane, everything else is interchangeable. If everything is working so far, editing the file is the final step in making the lane ready for actual operation

A note on session: IS4C relies on session variables to store global settings. Sessions have been easy to manage on the lanes because each lane is accessed by only one client. Nevertheless, it has been pointed out that we should move away from session and use define instead, and that is the direction we are going, but it is going to be a big tasks. There is much that needs to be optimized. Be sure to voice your ideas in the forum.

We'll look at some of the settings.

OS we are installing the linux version.
browserOnly It's a deep dark secret that the browser in the Windows version has to run inside a Visual Basic control in order to work with the scanner scale, but for the linux version, and for those lanes that don't have a scanner scale attached, browserOnly = 1
store until we are completely modular, the store session is used to invoke whatever blocks of code that applies only to your store.
mServer IP of the back end server. "m" stood for "main". For now, the IP is set to the loopback. You will have to change it to point to your server when it is up and running.
mDatabase the lane only writes to the server and therefore only has to access is4c_log and not is4c_op.
DBMS The local database management system, MySQL in our case. the Windows versions in production now use mssql. There are differences in both the PHP and the SQL functions.
remoteDBMS makes allowance for the contingency that the remote server might run a different DBMS. It's MySQL in our case. IS4C will standardize on MySQL and these two settings will disappear until such time when the next big thing in DBMS comes about.
laneno Goes into your sales records so you know on which lane the transactions are rung up.
localhost Set to the standard loopback.
mUser and mPass user and password set up on your back end MySQL server.
localUser and localPass user and password set up on the lane.
print set to 0 by default. The printer is not asked to print. If the printer is not connected to the parallel port or otherwise not working properly, the system will hang whenever it is asked to print. If you have a printer connected and you can echo to your printer port then set print to 1 and set printerPort accordingly. The default is /dev/lp0. If you don't have a printer but nevertheless wants to see what the receipt looks like, set print to 1 and printerPort to receipt.txt. The receipt will be sent to the file /pos/is4c/receipt.txt
Screen Message Settings section customize the messages on your screen and on your receipt.
Credit Card section IS4C is certified with First Data/Concord to handle integrated credit card transactions. The version that is ceritifed is the one running at the Wedge Co-op, and we'll have to work the code into the linux version. We'll have to deal with credit card later. By default the system is set to not handle credit cards directly. That means the cashier will have to deal with credit cards, and other cards on a different terminal and then enter the amount into IS4C again. It is, to start with, not integrated.
MADdiscount and needBasedDisc set to 0. They are needed for special discount programs that might not be generally applicable to your co-op. You will probably have some programs that we can computerize. In which case we'll add it to the code.
discountEnforced when set to 1 it will automatically apply a percentage discount associated with individual members in the memberhsip databsae. All members who are staff, at certain co-ops, for example, receive a substantial discount, and some working members at other co-ops are eligible for different levels of discount based on the number of hours they have put in.
lockScreen when set to 1, the screen will lock when the system is left unattended for 3 minutes. The 3 minutes can be changed, but unfortunately not in this file. We'll look into that later.
timedlogout as an alternative to locking the screen, the cashier will be logged off the system after the time indeicated, in mini seconds has expired. The log in screen pops up and the cashier has to log in again. 0 will turn this off.
ddNotify and promoMsg specific to the Wedge Co-op
memlistNonMember whether the non member number should always show up and highlighted on a member search list. This feature is not implemented right now in the Alberta version
cashOverLimit whether customers are allowed to tender checks over the limit to get change in cash
inputMasked when set to 1, entries in the form box will show up as asterisks. The Wedge uses this on a lane where employees charge for food using a password.
SCReceipt specific to the Wedge, specifies whether the lane will print out a detailed receipt in addition to the charge slip when a staff member charges for food against the next paycheck. Staff can otherwise look up details of their charges on the break room computer.
dollarOver if cashOverLimit is set to 1, specifies how much they can tender over the amount. Depricated.
keymap whether the keyboard layout for the regular keyboard you are using is "Microsoft Natural". Needed for some javascript snippets

Save the edited file. Now the IS4C lane is finally all set to go. We'll run it through a few tests to see that it does, in fact, work properly as a cash register.

Installing the Retail Peripherals A cash register