The present invention relates to a system and method for enhancing the functionality of a Point Of Sale (POS) terminal, and in particular relates to a controller for use with a POS terminal.
Many transactions in the retail industry, hospitality industry and elsewhere are automated using Point Of Sale (POS) systems. These systems register product details (for example using a barcode scanner or manually operated keypad), calculate a sale price, carry out financial transactions (for example by use of a credit card payment machine), and provide a record of the transaction (by way of a printed receipt, for example). In some environments, such as supermarket check-outs, more sophisticated systems are provided, capable of high throughput and great flexibility in terms of promotions that may be offered and on-the-fly discounting of items purchased, interactions with stock control systems, and so on.
At the heart of any POS system is a POS terminal, a combination of computer hardware and software that controls the operation of peripheral devices connected to the terminal.
Electronic cash registers (ECR) were the first examples of POS terminals. Different manufacturers used different proprietary hardware and software and different proprietary communication protocols. Later on generic PC hardware platforms replaced the proprietary platforms but many proprietary communications protocols have persisted in parallel, including for example the EPSON Esc/POS, UTC Standard, UTC Enhanced, AEDEX, ICD 2002, Ultimate, CD 5220, DSP-800 and ADM 787/788 standards. These standards are used to communicate between the POS terminal and the peripherals such as the display unit, receipt printer, and so on. Despite the differences between these standards, they all involve the transmission of alphanumeric text (with appropriate ‘escape codes’ to encode formatting information and the like) via a standard PC serial port connection, providing a relatively cheap, simple and efficient method of interconnecting POS system components.
Newer POS systems have been developed with greatly enhanced capabilities, including in some cases touch screen displays which are presented to the user so that the user can make selections relating to the transaction. This can, for example, allow cashier-less transactions in supermarkets and the like. These POS systems are very expensive, however, not least because they are still proprietary systems that require the replacement of the POS terminal and the display and possibly other elements of the system, with the POS terminal representing a significant proportion of the total upgrade cost. Accordingly, businesses using legacy systems with the earlier generation of text-based displays can find themselves unable to afford the price of upgrading to a newer system, or unwilling to accept the disruption caused by a wholesale replacement of their legacy systems (with attendant risks of incompatibility with other legacy systems such as stock control systems).
The present invention seeks to address problems in the above-mentioned prior art.
The present invention provides a system for enhancing the functionality of a Point Of Sale (POS) terminal, the system comprising: a POS terminal comprising a display output interface (such as a serial port, USB interface, and so on) and an identification input interface (such as a further serial port, USB interface, and so on), the POS terminal being programmed: to receive identification data (such as a barcode scan, QR code, manually entered product ID, touch screen input, and so on) via the identification input interface, the identification data identifying a selected product for processing by the POS terminal, to process the identification data to generate alphanumeric text data encoding a description of the selected product, and to output the alphanumeric text data via the display output interface; a display unit (such as a computer monitor, touch screen display, tablet PC screen, and so on); and a controller, programmed: to receive the alphanumeric text data from the POS terminal display output interface, to process the alphanumeric text data to generate further identification data identifying the selected product, to process the further identification data to select graphical data appropriate for the selected product, and to output the graphical data to the display unit (for example via a digital video interface of some sort).
Accordingly, by providing an appropriate controller and display unit, the functionality of the POS terminal and the system as a whole can be enhanced without requiring the replacement of the POS terminal. The term “Point Of Sale” in relation to a terminal or system preferably connotes not only devices for carrying out transactions in the retail, hospitality and other sectors, but also analogous operations that may not necessarily involve a transfer of money or the change of ownership of a tangible product, such as the use of checkouts for stock control purposes, or transaction systems based on some form of credit or other non financial basis, or systems for loaning items rather than selling them, and so on. The term “alphanumeric text data” preferably connotes an ASCII style encoding of data using a defined number of bytes (such as 1 byte) to encode each letter, number or “special' character (such as punctuation and the like), for example in accordance with any of the EPSON Esc/POS, UTC Standard, UTC Enhanced, AEDEX, ICD 2002, Ultimate, CD 5220, DSP-800 and ADM 787/788 communication protocols.
The alphanumeric text data may also encode a price of the selected product.
The graphical data may comprise a promotional offer relating to the selected product. In this case, the controller may be further programmed to receive a user input accepting the promotional offer (or indeed refusing).
Alternatively or additionally, the controller may be further programmed to receive a user input comprising promotion identification data (such as a QR code, barcode, or the like), the promotion identification data identifying a promotional offer made available to the user. The controller may be operable to receive the user input from a device operated by the user, such as a mobile phone, portable PC, or a home computer (operated off-site, for example, in advance of the purchase). A code can for example be read from a user's mobile phone or the like by an optical reader (see below) if displayed on the screen as a QR code, barcode, numbers and the like, by a Bluetooth® connection, or by other means. The user can for example obtain a code on a mobile phone or the like by communicating with a server via the telecommunications network, for example by sending an SMS message or by using an inbuilt browser on the phone. Alternatively a code may be sent to a user's phone or computer unsolicited, for example as part of a store or brand loyalty programme, or otherwise in dependence on an analysis of the user's spending habits or in response to the user responding to an advertisement or promotion and the like.
In response to receiving the user input regarding the promotion, the controller is preferably further programmed to generate identification data relating to the promotional offer, and to transmit the identification data to the identification input interface of the POS terminal. The identification data may identify a further product for processing by the POS terminal (for example, a further product that is free or discounted according to the terms of the promotion), or it may identify a promotional code that, in use, can cause the POS terminal to vary its processing of at least one product (for example, by discounting the price of a particular item or class of items, or by enabling a 2-for-1 style offer or the like, and so on).
Preferably the identification data comprises barcode data, so that it can be transmitted to the POS terminal via a barcode scanner input, for example, thus requiring no new functionality to be provided in the POS terminal with regard to facilitating the promotions.
The aforesaid features relating to receiving a user input comprising promotion identification data may be provided independently of the aforesaid features relating to processing alphanumeric text data encoding a description of the selected product.
The controller may be further programmed to receive a user input comprising account identification data (in the form of a QR code, barcode, magnetic swipe, smart card interaction, or the like), the account identification data identifying a payment account associated with the user, and to transmit the account identification data to the POS terminal, for example via a magnetic stripe reader input or a barcode reader input, and the like. The controller may be further programmed to transmit the account identification data in a format suitable to cause the POS terminal to conduct a transaction using the identified account. The transaction may for example entail the deduction of funds from a pre-paid or other account, or the allocation of loyalty points to a loyalty point account associated with the user. These features may also be provided independently.
In other examples, the graphical data may comprise a still or moving picture relevant to the selected product, such as a photograph or video of the selected product, for example. This can help the user to identify the product in question and to verify that the correct transaction is taking place. The graphical data may also comprise an advertisement, which may for example be chosen for its relevance to the purchased product, the history of products scanned by the POS terminal, or a particular characteristic of the user or store location, for example.
In one embodiment the display unit and the controller unit are integrated into a single device. This could for example be an off-the-shelf (and suitably programmed) tablet or notebook computer, allowing the invention to be put into effect using no more than one computer, means for attaching the computer to the checkout (or other location), and connecting wires. This can provide a relatively simple and cost-effective upgrade for the POS terminal.
In another embodiment, the controller comprises an adaptor for attachment to the display output interface, and a further display output interface (such as some form of digital video interface) for outputting graphical display data to the display unit. In this arrangement, an off-the-shelf, unmodified display unit can be used, potentially saving cost and simplifying the installation and maintenance in case, for example, the display needs to be replaced or if there is an existing stock of appropriate displays, for example. The further display output interface may include a wireless transmitter for transmitting the graphical display data wirelessly to the display unit. The graphical display data may comprise rasterised bitmap data (for example in accordance with conventional digital video communication protocols) or, particularly in the case of the wireless transmission, reduced bandwidth video data such as compressed video data (using MPEG or other compression) and/or vector graphics data.
In a variant of the above embodiments, the system further comprises an adaptor for attachment to the display output interface of the POS terminal, the adaptor further comprising a controller interface (such as a serial port, USB interface, Ethernet or other network interface and the like) for outputting the alphanumeric text data to the controller. In this case, the controller interface may include a wireless transmitter for transmitting the alphanumeric text data wirelessly to the controller. This can allow the system to be upgraded without having to run a wired connection all the way between the POS terminal and the controller and display unit (which may, as noted, be incorporated within the same device), which can simplify the upgrade process.
In another embodiment, the controller is an executable code module stored in and executable by the POS terminal, and the display output interface is a virtual serial port that, in use, redirects the alphanumeric text data to the controller code module. (In different embodiments, the display output interface may be a normal, non-virtual computer serial port) This can remove the need for any separate hardware to be provided except for the upgraded display unit, and can allow the functionality of the POS terminal to be upgraded without necessarily making any changes at all to the proprietary/legacy software.
In any of the embodiments, the controller may be programmed to store sales data representing products that have been processed by the POS terminal. The controller may be programmed to transmit at least a portion of the sales data to a remote server (which may for example be a stock control server). Accordingly, stock control systems can be upgraded again without having to make any modifications to a legacy POS terminal. The controller may further be programmed to output display data representing at least a portion of the sales data. This can allow a user to browse the transaction history and, for example, to analyse trends and to view the effects of introducing new promotions and the like.
The controller may be further programmed to receive relationship data associating an item of graphical data with a product, and wherein processing the further identification data comprises processing the relationship data in dependence on the selected product. In other words, the user can use the controller (or other software/hardware) to specify which promotions, images, animations, advertisements, and so on, are to be displayed in connection with each product. The association can be a hard-coded correspondence between a product ID and a graphics ID, for example, or it may be specified by a variety of rules or by computer software that may, for example, select a particular graphic in dependence on the user's purchase history, demographics, location, and so on.
The display unit preferably comprises a touch screen for displaying a graphical output and receiving a user touch input, and is operable to transmit the user touch input to the controller. This can more easily facilitate the selection of a particular promotion, for example.
The display unit may comprise an optical reader for receiving a user optical input, and in that case is operable to transmit the user optical input to the controller. This can allow a user to input a selection of a promotion via a QR code or other image displayed on the user's phone, or via a printed promotion code, and the like.
In one embodiment the controller is operable to communicate with a plurality of POS terminals (and, correspondingly, may be operable to communicate with a respective plurality of display units). Thus, costs can be reduced even if the controller is relatively expensive, since providing one controller can remove the need to upgrade multiple POS terminals.
In a preferably related embodiment, the POS system further comprises a network and the controller is connected to the POS terminal via the network (preferably via a network-enabled adaptor that is connected to the POS terminal). The controller may also be connected to the display via the network, and may be located on a server. The controller may be connected to multiple POS terminals as in the above embodiment. This can further simplify maintenance and operation, as multiple sites may be managed from a single server/controller, for example, and the only hardware that may need to be installed on-site (other than the new displays) is the network interconnection between the POS terminals (via the above-mentioned adaptors, for example) and the server.
The POS terminal may be programmed to output data conforming to at least one of the EPSON Esc/POS, UTC Standard, UTC Enhanced, AEDEX, ICD 2002, Ultimate, CD 5220, DSP-800 and ADM 787/788 standards, or may use another, for example proprietary, standard.
In another aspect of the invention there is provided a controller for use with a POS terminal, the POS terminal comprising a display output interface and an identification input interface, and the POS terminal being programmed to receive identification data via the identification input interface, the identification data identifying a selected product for processing by the POS terminal, to process the identification data to generate alphanumeric text data encoding a description of the selected product, and to output the alphanumeric text data via the display output interface, wherein the controller is programmed: to receive the alphanumeric text data from the POS terminal display output interface, to process the alphanumeric text data to generate further identification data identifying the selected product, to process the further identification data to select graphical data appropriate for the selected product, and to output the graphical data to a display unit.
In a further aspect of the invention there is provided a controller for use with a POS terminal, the POS terminal comprising a display output interface and an identification input interface, and the POS terminal being programmed to receive identification data via the identification input interface, the identification data identifying a selected product for processing by the POS terminal, to process the identification data to generate alphanumeric text data encoding a description of the selected product, and to output the alphanumeric text data via the display output interface, wherein the controller comprises: an input module for receiving the alphanumeric text data from the POS terminal display output interface, an alphanumeric text processing module for processing the alphanumeric text data to generate further identification data identifying the selected product, a graphical data processing module for processing the further identification data to select graphical data appropriate for the selected product, and an output module for outputting the graphical data to a display unit.
All relevant features mentioned above in respect of the POS system may also be provided in conjunction with the controller embodiments mentioned above.
In another aspect of the invention there is provided a method of enhancing the functionality of a POS system including a POS terminal comprising a display output interface and an identification input interface, and the POS terminal being programmed to receive identification data via the identification input interface, the identification data identifying a selected product for processing by the POS terminal, to process the identification data to generate alphanumeric text data encoding a description of the selected product, and to output the alphanumeric text data via the display output interface, wherein the method comprises: receiving the alphanumeric text data from the POS terminal display output interface, processing the alphanumeric text data to generate further identification data identifying the selected product, processing the further identification data to select graphical data appropriate for the selected product, and outputting the graphical data to a display unit.
The method may further comprise receiving a user input accepting the promotional offer. The method may alternatively comprise receiving a user input comprising promotion identification data, the promotion identification data identifying a promotional offer made available to the user. The user input may be received from a device operated by the user. The method may further comprise generating, in response to receiving the user input, identification data relating to the promotional offer, and transmitting the identification data to the identification input interface of the POS terminal.
The method may further comprise transmitting graphical display data wirelessly to the display unit, and may further comprise receiving the alphanumeric text data from a controller interface of an adaptor that is attached to the display output interface, and may yet further comprise receiving the alphanumeric text data wirelessly from the adaptor.
The method may comprise receiving the alphanumeric text data from a virtual serial port associated with the display output interface, or it may comprise receiving the alphanumeric text data from a computer serial port.
The method may comprise storing sales data representing products that have been processed by the POS terminal, and may comprise transmitting at least a portion of the sales data to a remote server, or outputting display data representing at least a portion of the sales data, and/or receiving relationship data associating an item of graphical data with a product, and processing the relationship data in dependence on the selected product.
The method may further comprise receiving user touch input data from a touch screen associated with the display unit, and/or receiving user optical input data from an optical reader associated with the display unit.
The method may further comprise communicating with a plurality of POS terminals, and may further comprise communicating with the POS terminal via a network.
In another aspect of the invention there is provided a computer readable medium tangibly embodying computer program code which, when executed by the processor of a controller unit that also includes a memory, program store, data store and input/output interface, causes the controller unit to carry out a method as aforesaid.
In a further aspect of the invention there is provided a controller unit including a processor, memory, program store, data store and input/output interface, the program store containing computer program code which, when executed by the processor, causes the controller unit to carry out a method as aforesaid.
Although the embodiments of the invention described above with reference to the drawings comprise methods performed by computer apparatus, and also computer apparatus, the invention also extends to program instructions, particularly program instructions on or in a carrier, adapted for carrying out the processes of the invention or for causing a computer to perform as the computer apparatus of the invention. Programs may be in the form of source code, object code, a code intermediate source, such as in partially compiled form, or any other form suitable for use in the implementation of the processes according to the invention. The carrier may be any entity or device capable of carrying the program instructions.
For example, the carrier may comprise a storage medium, such as a ROM, for example a CD ROM or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc, hard disc, or flash memory, optical memory, and so on. Further, the carrier may be a transmissible carrier such as an electrical or optical signal which may be conveyed via electrical or optical cable or by radio or other means. When a program is embodied in a signal which may be conveyed directly by cable, the carrier may be constituted by such cable or other device or means.
Although various aspects and embodiments of the present invention have been described separately above, any of the aspects and features of the present invention can be used in conjunction with any other aspect, embodiment or feature where appropriate. For example apparatus features may where appropriate be interchanged with method features.
An example embodiment of the present invention will now be illustrated with reference to the following Figures in which:
In the example shown in
The screen 502 may be generated by any appropriate means, and may in some variants be displayed by a web browser that is executing content local to the controller, remote from the controller, or a mixture of the two.
There are a number of different ways to incorporate the controller into the legacy POS system, as will now be described.
As foreshadowed by the text shown in
In the example shown in
The transmission of a promotion to the POS terminal 1400 is achieved by converting the promotional offer into a barcode that either represents a particular product or a particular promotion code that has been pre-programmed into the POS terminal. The barcode is then sent to the barcode scanner input serial port of the POS terminal 1400, which causes the POS terminal to respond as if that barcode had been manually scanned by the POS operator.
The POS operator commences the process by scanning a product 1520, causing barcode data to be sent to the barcode scanner input serial port (by whatever route). A product description 1522 formatted for a legacy POS display is then sent to the controller, which converts it into product and promotion graphics 1524 which is displayed on the display. The user can then see the product/promotion graphics 1526 and act on it. In this instance, the user makes a selection 1528 to accept the promotion on offer, and the selection is registered by the controller. The controller determines a barcode that will activate the promotion and transmits it 1530 to the POS terminal, in this case causing a product to be registered by the POS terminal. This in turn causes the new product description to be transmitted 1532 to the controller which, as before, turns the new product description into a graphical display 1534 which the display shows 1536 to the user. The user, now content with the selection of items, gives an instruction 1538 to the POS terminal (via the operator) that the transaction is now complete. A total amount is then rung up by the POS terminal and sent 1540 to the controller. The controller then generates appropriate graphics 1542 to pass this information on 1544 to the user via the display. The user effects payment 1546 via the card reader, which sends an acknowledgement 1548 to the POS terminal, and a final output 1550 is sent by the POS terminal to the controller to indicate that the payment has completed. Again, suitable graphics are generated 1552 and displayed 1554 to the user. In a final step, the controller communicates with the stock control computer and sends a summary 1556 of the completed transaction so that stock levels can be adjusted.
The display output to product table 1820 is a look-up table relating keywords in the display output data (that is, the alphanumeric text output by the POS terminal) to particular products (identified by a product ID field). For more sophisticated matching (for example disambiguating where necessary based on prices as well as descriptions) the product selection decision data 1822 contains rules, scripts and/or executable code that can be executed with the display output data as an input (as well as other information as required) and provides a selected product ID as an output. The promotion to product table 1824 links a particular promotion to one or more products (via a product ID field). The products data 1830 includes various characteristics for each product, including product name, and the barcodes data 1832 links allows products to be identified back to the POS terminal by way of the barcode entry system (as described above). The product to graphics table 1840 is another look-up table relating product IDs to graphics elements (any of adverts, images, animations, promotions, and so on). As with the data 1822, the graphics selection decision data 1842 provides more sophisticated matching between products and graphical elements and may comprise rules, scripts and/or executable code. In variants, separate data and tables may be provided in respect of each graphical element, so that there may be for example a separate table for matching products to promotions. The QR code to promotion table 1844 links QR codes provided by a user to particular promotions. In variants a similar table is provided for other forms of input, such as barcodes, numbers, pass phrases, and so on. The graphics data 1850 includes adverts 1852, images 1854, animations 1856, and promotions 1858, although different installations may require different combinations of elements and may omit or add to these categories. A further table is provided of promotion barcodes 1870 which can be used to activate various discounts and the like when transmitted to the POS terminal.
In different embodiments, not all of the data structures mentioned above are required, and other structures may be provided, for example including additional types of data.
In this system, when a purchase is made the user can show a QR code (or equivalent identifier as discussed above) to indicate an action. The QR code may for example be a loyalty identifier, causing ‘store points’ or the like to be attributed to the user. Alternatively the code can be used to pay for the purchase, for example via a pre-paid account that is associated with the presented identifier (in QR code format or otherwise). The user can load cash into the pre-paid account from a standard credit card or bank account, for example. In this case, the QR code presented at the correct point will signify to the POS (via the display unit 2610) that the owed amount should be decremented from the pre-paid account associated with the QR code. The display unit 2610 (or equivalent) is configured to convert the QR code into a format suitable for the POS terminal 2600 (in some cases it may present the QR code unchanged but in others a suitable magnetic swipe string format may be generated and passed to the terminal 2600). It will be appreciated that the principles described elsewhere in relation to other POS terminal inputs such as bar code reader inputs can be applied where appropriate to the magnetic swipe reader input, and vice versa. In this case, the POS is preferably configured to connect to a magnetic swipe reader via a serial port or a USB port.
Although the present invention has been described above with reference to specific embodiments, it will be apparent to a skilled person in the art that modifications lie within the spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
GB 1111460.0 | Jul 2011 | GB | national |