Software before the 1990s POS device by Brobeck Early electronic
cash registers (ECR) were controlled with proprietary software and were limited in function and communication capability. In August 1973, IBM released the IBM 3650 and 3660 store systems that were, in essence, a mainframe computer used as a store controller that could control up to 128 IBM 3653/3663 point of sale registers. This system was the first commercial use of client-server technology,
peer-to-peer communications,
local area network (LAN) simultaneous backup, and remote initialization. By mid-1974, it was installed in
Pathmark stores in New Jersey and
Dillard's department stores. One of the first microprocessor-controlled cash register systems was built by William Brobeck and Associates in 1974, for
McDonald's Restaurants. It used the
Intel 8008, an early microprocessor (forerunner to the
Intel 8088 processor used in the original
IBM Personal Computer). Each station in the restaurant had its own device which displayed the entire order for a customer — for example, [2] Vanilla Shake, [1] Large Fries, [3]
Big Mac — using numeric keys and a button for every menu item. By pressing the [Grill] button, a second or third order could be worked on while the first transaction was in progress. When the customer was ready to pay, the [Total] button would calculate the bill, including sales tax for almost any jurisdiction in the United States. This made it accurate for McDonald's and very convenient for the servers and provided the restaurant owner with a check on the amount that should be in the cash drawers. Up to eight devices were connected to one of two interconnected computers so that printed reports, prices, and taxes could be handled from any desired device by putting it into
Manager Mode. In addition to the error-correcting memory, accuracy was enhanced by having three copies of all important data with many numbers stored only as multiples of 3. Should one computer fail, the other could handle the entire store. In 1986,
Gene Mosher introduced the first graphical point of sale software featuring a
touchscreen interface under the ViewTouch trademark on the 16-bit
Atari 520ST color computer. It featured a color
touchscreen widget-driven interface that allowed configuration of widgets representing menu items without low level programming. The ViewTouch point of sale software was first demonstrated in public at Fall Comdex, 1986, in Las Vegas, Nevada, to large crowds visiting the Atari Computer booth. This was the first commercially available POS system with a widget-driven color graphic touch screen interface and was installed in several restaurants in the US and Canada. In 1986,
IBM introduced its
468x series of POS equipment based on
Digital Research's
Concurrent DOS 286 and
FlexOS 1.xx, a modular real-time multi-tasking multi-user operating system.
Modern software (post-1990s) A wide range of POS applications have been developed on platforms such as Windows and Unix. The availability of local processing power, local data storage, networking, and graphical user interface made it possible to develop flexible and highly functional POS systems. Cost of such systems has also declined, as all the components can now be purchased off-the-shelf. In 1993, IBM adopted
FlexOS 2.32 as the basis of their
IBM 4690 OS in their 469x series of POS terminals. This was developed up to 2014 when it was sold to
Toshiba, who continued to support it up to at least 2017. With increased options for commodity hardware and a more competitive market, the 1990s saw increased attention paid to the user interaction between store employees and POS systems.
Touchscreens and larger displays became widely available in the 1990s, offering an alternative to limited displays like two-line VFDs used in the
IBM 4683. The performance of the employees using the POS devices, a controllable cost for the business, depends upon the ease of learning, ease of use, and level of employee experience with it. Although experienced employees work more quickly with
mechanically keyed entry, some systems favoured adopting
GUI technology for ease of learning or for ergonomic factors. The key requirements that must be met by modern POS systems include high and consistent operating speed, reliability, ease of use, remote supportability, low cost, and rich functionality. Retailers can reasonably expect to acquire such systems (including hardware) for about US$4000 (as of 2009) per checkout lane. Reliability depends not wholly on the developer but at times on the compatibility between a database and an OS version. For example, the widely used
Microsoft Access database system had a compatibility issue when Windows XP machines were updated to a newer version of Windows. Microsoft offered no immediate solution. Some businesses were severely disrupted in the process, and many downgraded back to Windows XP for a quick resolution. Other companies utilized community support, for a registry tweak solution has been found for this. POS systems are one of the most complex software systems available because of the features that are required by different end users. Many POS systems are software suites that include sale, inventory, stock counting, vendor ordering, customer loyalty and reporting modules. Sometimes purchase ordering, stock transferring, quotation issuing, barcode creating, bookkeeping or even accounting capabilities are included. Each of these modules is interlinked if they are to serve their practical purpose and maximize their usability. For instance, the sale window is immediately updated on a new member entry through the membership window because of this interlinking. Similarly, when a sale transaction is made, any purchase by a member is on record for the membership window to report providing information like payment type, goods purchased, date of purchase and points accumulated. Comprehensive analysis performed by a POS machine may need to process several qualities about a single product, like selling price, balance, average cost, quantity sold, description and department. Highly complex programming is involved (and possibly considerable computer resources) to generate such extensive analyses. POS systems are designed not only to serve the retail, wholesale and hospitality industries as historically is the case. Currently POS systems are also used in goods and property leasing businesses, equipment repair shops, healthcare management, ticketing offices such as cinemas and sports facilities and many other operations where capabilities such as the following are required: processing monetary transactions, allocation and scheduling of facilities, keeping record and scheduling services rendered to customers, tracking of goods and processes (repair or manufacture), invoicing and tracking of debts and outstanding payments. Different customers have different expectations within each trade. The reporting functionality alone is subject to so many demands, especially from those in the retail/wholesale industry. To cite special requirements, some business's goods may include perishables and hence the inventory system must be capable of prompting the admin and cashier on expiring or expired products. Some retail businesses require the system to
store credit for their customers, credit which can be used subsequently to pay for goods. A few companies expect the POS system to behave like a full-fledged
inventory management system, including the ability to provide FIFO (First In, First Out) and LIFO (Last In, First Out), reports of their goods for
accounting and tax purposes. In the
hospitality industry, POS system capabilities can also diverge significantly. For instance, a restaurant is typically concerned about how the sale window functions: whether it has functionality such as creating item buttons, various discounts, adding a service charge, holding of receipts, queuing, table service as well as takeaways, merging and splitting of a receipt. These capabilities may be insufficient for a spa or slimming center which would require, in addition, a scheduling window with historical records of customers' attendance and their special requirements. A POS system can be made to serve different purposes to different end users depending on their business processes. Often an off-the-shelf POS system is inadequate for customers. Some customization is required, and this is why a POS system can become very complex. The complexity of a mature POS system extends to remote networking or interlinking between remote outlets and the HQ such that updating both ways is possible. Some POS systems offer the linking of web-based orders to their sale window. Even when local networking is only required (as in the case of a high-traffic supermarket), there is the ever-present challenge for the developer to keep most if not all of their POS stations running. This puts high demand not just on software coding but also designing the whole system covering how individual stations and the network work together, and special consideration for the performance capability and usage of databases. Due to such complexity, bugs and errors encountered in POS systems are frequent. With regard to databases, POS systems are very demanding on their performance because of numerous submissions and retrievals of required for correct sequencing the receipt number, checking various discounts, membership, calculating subtotal, so just to process a single sale transaction. The immediacy required of the system on the sale window such as may be observed at a checkout counter in a supermarket cannot be compromised. This places much stress on individual enterprise databases if there are just several tens of thousands of sale records in the database. Enterprise database Microsoft SQL Server, for example, has been known to freeze up (including the OS) entirely for many minutes under such conditions showing a "Timeout Expired" error message. Even a lighter database like Microsoft Access will slow to a crawl over time if the problem of database bloating is not foreseen and managed by the system automatically. Therefore, the need to do extensive testing,
debugging and improvisation of solutions to preempt failure of a database before commercial implementation complicates the development. POS system accuracy is demanding, given that monetary transactions are involved continuously not only via the sale window but also at the back end through the receiving and inputting of goods into the inventory. Calculations required are not always straightforward. There may be many discounts and deals that are unique to specific products, and the POS machine must quickly process the differences and the effect on pricing. There is much complexity in the programming of such operations, especially when no error in calculation can be allowed. Other requirements include that the system must have functionality for membership discount and points accumulation/usage, quantity and promotional discounts, mix and match offers, cash rounding up, invoice/delivery-order issuance with outstanding amount. It should enable a user to adjust the inventory of each product based on physical count, track expiry of perishable goods, change pricing, provide audit trail when modification of inventory records is performed, be capable of multiple outlet functionality, control of stocks from HQ, doubling as an invoicing system, just to name some. It is clear that POS system is a term that implies a wide range of capabilities depending on the end-user requirements. POS system review websites cannot be expected to cover most let alone all the features. Unless one is a developer, it is unrealistic to expect the reviewer to know all the aspects of a POS system. For instance, a POS system might work smoothly on a test database during the review but not when the database grows significantly in size over months of usage. And this is only one among many hidden critical functionality issues of a POS system.
Hardware interface standardization (post-1980s) Vendors and retailers are working to standardize development of computerized POS systems and simplify interconnecting POS devices. Two such initiatives were
OPOS and
JavaPOS, both of which conform to the
UnifiedPOS standard led by
The National Retail Federation.
OPOS (
OLE for POS) was the first commonly adopted standard and was created by
Microsoft,
NCR Corporation,
Epson and
Fujitsu-ICL. OPOS is a
COM-based interface compatible with all COM-enabled
programming languages for
Microsoft Windows. OPOS was first released in 1996.
JavaPOS was developed by
Sun Microsystems,
IBM, and
NCR Corporation in 1997 and first released in 1999. JavaPOS is for
Java what OPOS is for Windows, and thus largely platform independent. There are nearly as many proprietary protocols as there are companies making POS peripherals. Most POS peripherals, such as displays and printers, support several of these command protocols to work with many different brands of POS terminals and computers. ==User interface design==