1. Technical Field
The present invention relates in general to a system and method for providing electronic restaurant menus. In particular, the present invention relates to a system and method for providing a wireless electronic menu that interacts with a restaurant server.
2. Description of the Related Art
Shopping at any large store, such as a supermarket, often starts with a customer preparing a list of needed items before going to the store. A hand-made list is often not categorized or grouped and, even if the customer categorizes the list, the order of the categories used by the customer typically varies from the way the items are distributed throughout the store. Exacerbating this problem is the fact that a customer may use different stores to purchase the same type of items.
For example, when grocery shopping during the week, the customer may shop at a supermarket closer to the customer's work location. However, on the weekend, the customer may shop at a supermarket closer to the customer's home. Stores, even those that are commonly owned, are usually laid out in dramatically different fashions. The different layouts of stores may confuse the customer, causing the customer to use a poorly optimized path through the store. The poorly optimized path often causes the customer to pass by items on the customer's list and then backtrack through the store to find the items. The use of a poorly optimized plan results in the customer being inefficient and spending more time than desired to shop for items on the customer's list.
Further complicating this problem is the use of coupons when buying products on the customer's shopping list. Coupons are often separate pieces of paper that are difficult to manage and difficult to match against items on the customer's shopping list. Without knowing the path through a store, it is difficult or impossible to sort the coupons in the same order that the items will be encountered in the store.
What is needed, therefore, is a system and method that uses a customer's list to compute an optimal path through a store. In addition, what is needed is the ability to receive a path that is customized to a store's particular layout. Finally, what is needed is an efficient way of handling coupons and organizing coupons so that the order of the coupons matches the order that the items are encountered in the store.
It has been discovered that the aforementioned challenges are resolved with a system and method that matches a customer's shopping list with the order that items are found in a store to optimize the customer's shopping experience. The customer prepares an electronic list by browsing through a list of items and selecting which items the customer is interested in purchasing. In one embodiment, the customer accesses the Internet and uses a web browser to load one or more web pages that detail the items available at a store. The items that the customer chooses are saved in a nonvolatile storage area. The customer is provided with an identifier to use to retrieve the list at a later time or to print out a path through a store. In one embodiment, the identifier that is used is a number, such as the customer's telephone number, that is familiar and readily remembered by the customer.
When the list has been completed, the customer chooses a store (if more than one store is available) and requests a path through the store for the selected items. If the customer is printing the list at a non-store location, such as the customer's home or office, the customer chooses the store from a list of available stores. If the customer arrives at the store, the customer can use a kiosk to enter in the customer's identifier and the processor within the kiosk will retrieve the customer's list and compute a path through the store at which the kiosk is located.
The customer's list is used to find the locations of the items in the store and print a path through the store in an optimal fashion for the particular store. Coupons associated with items on the list are printed so that the coupons can be scanned from the printout rather than requiring the customer to provide coupons clipped from newspapers and other sources. In addition, “dynamic coupons” are provided and printed out. Items on the customer's list are compared to competitive or alternative products. Manufacturers of the competitive or alternative products can request that dynamic coupons advertising the manufacturers' competitive product and printing a coupon in an attempt to entice the customer to switch and decide to purchase the competing or alternative product.
The foregoing is a summary and thus contains, by necessity, simplifications, generalizations, and omissions of detail; consequently, those skilled in the art will appreciate that the summary is illustrative only and is not intended to be in any way limiting. Other aspects, inventive features, and advantages of the present invention, as defined solely by the claims, will become apparent in the non-limiting detailed description set forth below.
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
The following is intended to provide a detailed description of an example of the invention and should not be taken to be limiting of the invention itself. Rather, any number of variations may fall within the scope of the invention which is defined in the claims following the description.
The items that are available are organized by category. Menu tabs 110 are used by the user to switch from one category of items to another. In the example shown, various grocery-type categories are provided in menu tabs 110. In the example shown, the user has selected the “condiments” category. Items in a category may further be divided into various subcategories. Command buttons 120 are used to move between the various subcategories. In the example shown, six subcategories are shown within the “condiments” category and the user has selected the “ketchups” subcategory.
Products names 125 available within the category or subcategory are displayed. Checkboxes 130 are provided with one checkbox corresponding to each item displayed. Along with each product name, additional information, such as size 140, price 150, and unit price 160 are provided to provide the customer with additional purchase-making information.
Coupons that are available through the system are printed alongside items to which they apply. In the example shown, there are three “static” coupons that apply to three of the items. If the user selects any of these items, then the corresponding coupons will be printed for the selected items on the customer's printout.
When the customer is finished making selections, he or she selects save command button 175 to save the list. If the customer wants to print the path, list, and coupons on a printer connected to the customer's computer system, the customer presses command button 180 (see
Returning to
Except for perishable items, the path through the store is generally listed in the most convenient and efficient order to retrieve the items. In printout 300, the path begins at the front of the store (Aisle 1, Shelf A, 310) and traverses the store in an efficient manner. Items condiment items that appear on the shopping list are detailed as being at Aisle 4, Shelf C (315). The condiments section is detailed by specific item to point out various aspects of printout 300.
Within the condiments section, selected products section 320 lists those condiment items that the customer selected in his or her shopping list. The selections that appear in section 320 match those selections that the customer made in
In
When checking out, in one embodiment the static and dynamic coupons that appear on printout 300 are read by a barcode reader. Coupon amounts corresponding to the items that the customer purchased are subtracted from the customer's bill. In another embodiment, the customer's identifier, such as that entered into the windows in
At predefined process 430, the customer prints the customer's list and the computed path through the store along with any coupons that may apply to the items on the customer's list (see
At step 540 either the customer's current list or the customer's new identifier is sent back to the computer being used by the customer. In one embodiment, the customer's computer and the server communicate using a computer network, such as the Internet. The new identifier or the existing list is received by the customer at step 545.
At step 550, the store's server sends a categorized list of the store's items and their prices. This list is received by the customer's computer at step 555. In one embodiment, the categorized list is a web page that is hosted by the server. At step 560, the server sends static coupons and promotions corresponding to items listed in the categorized list and this information is received by the customer's computer system at step 565. In one embodiment, the coupons and promotional information is integrated on a single web page that is served by the server to the customer computer system.
At step 570, the selections within the categorized list are displayed on a display screen connected to the customer's computer system (see
This looping continues until the customer is finished shopping (at least finished with this session), at which point decision 580 branches to “yes” branch 584 whereupon, at step 585, the customer's computer sends the identifier and the customer's current list of selected products back to the server. Customer processing thereafter returns at 590. Returning to server processing, at step 595, the server receives and stores the customer's list of selected products, along with the identifier, and stores the information in customer list data store 596. Server processing of preparing a customer's shopping list thereafter ends at 599.
At step 620, the customer's list is retrieved based upon the customer's identifier (the customer's list was previously saved when the customer created the shopping list, see element 595 in
The store location at which the customer wishes to shop is retrieved at step 680. If the customer is using a kiosk within a store, the store location at which the kiosk is located is used. If the customer is using a non-store location, such as the customer's computer at his or her home or office, then the customer selects the store location from a list of possible locations (see
At step 715, the items located in the selected aisle and section are retrieved from data store 720. At step 725, the items that were retrieved for the selected aisle and section are matched against items that the customer included in his or her list (customer's list 596). Any matching items are written, at step 735, to sorted list 740.
At step 745, any static coupons that correspond to items that were written in step 735 are retrieved from static coupon data store 750. Likewise, any dynamic coupons for alternative or competing products are retrieved, at step 755, from dynamic coupon data store 760, along with item description information for such alternative or competing products. At step 765, the static and dynamic coupon data is written to sorted list 740.
A determination is made as to whether there are more sections in the aisle (decision 770). If there are more sections, such as shelves, in the aisle, decision 770 branches to “yes” branch 772 and the next section within the selected aisle is selected at step 775. Processing then loops back to match the next section against items the customer included in his or her shopping list, and write such matching items along with any pertinent coupon information to sorted list 740. This looping continues until there are no more sections within the selected aisle, at which point decision 770 branches to “no” branch 778.
When all sections in an aisle have been processed, another determination is made as to whether there are more aisles in the store (decision 780). If there are more aisles in the store, decision 780 branches to “yes” branch 782 whereupon, at step 785, the next aisle is selected and processing loops back to match the sections within the next aisle with the selections that were made by the customer. As previously discussed, certain items, such as perishables, may be flagged for inclusion towards the end of the list. This consideration is included in the selection of the next aisle. For example, if the next aisle contains ice cream and the flag was set to include perishables toward the end of the list, then the aisle is bypassed until all the nonperishable items have been processed. After the nonperishable items have been processed, the aisles that were initially bypassed are processed so that perishable items are included towards the end of the customer's path and list through the store. This looping continues until all aisles in the store have been processed, at which time decision 780 branches to “no” branch 790 and processing returns at 795.
A determination is made as to whether a static coupon corresponds to the item (decision 825). If there is a static coupon for the item, decision 825 branches to “yes” branch 830 whereupon, at step 835, the static coupon and barcode for the coupon are printed to printout 820. On the other hand, if there is no coupon for the item, decision 825 branches to “no” branch 840 bypassing step 835.
Another determination is made as to whether there are any dynamic coupons for any alternative or competing items (decision 845). If there are any dynamic coupons, decision 845 branches to “yes” branch 850 whereupon, at step 855, the description and location of the competing item is printed to printout 820 and, at step 860, the dynamic coupon information (i.e. the amount of the coupon) is printed to printout 820 along with the barcode for the dynamic coupon. On the other hand, if there are no dynamic coupons that correspond to the item, decision 845 branches to “no” branch 865 bypassing step 855 and 860.
A determination is made as to whether the end of the customer's sorted shopping list has been reached (decision 870). If the end of the list has not been reached, decision 870 branches to “no” branch 875 whereupon, at step 880, the next item from the sorted list is retrieved along with any coupon information for the item and processing loops back to print the item information and any static and/or dynamic coupon information. This looping continues until all items in the customer's list have been processed, at which time decision 870 branches to “yes” branch 890 and processing returns at 895.
At step 960, the barcode data (i.e., UPC data) corresponding to the first coupon listed in the customer's shopping list is retrieved from either sorted list 740 or printout 820. If sorted list 740 is being used, the customer identifier corresponding to the list is received from the customer by either manual entry or use of a customer loyalty card. At step 965, the retrieved barcode information is matched against the UPC information, stored in data store 935, of those items that the customer actually selected for purchase. A determination is made as to whether the customer selected the item corresponding to the coupon for purchase based upon whether the UPC information was found in data store 935. If the item was selected for purchase by the customer, then decision 970 branches to “yes” branch 972 whereupon, at step 975, the total bill amount is decremented by the amount of the coupon. On the other hand, if the customer did not select the item for purchase, then decision 970 branches to “no” branch 978 bypassing step 975.
A determination is made as to whether there are more coupons to process from either sorted list 740 or printout 820. If there is more coupon data to process, decision 980 branches to “yes” branch 982 whereupon, at step 985, the barcode information for the next barcode in either sorted list 740 or printout 830 is selected and processing loops back to determine whether the customer selected the corresponding item for purchase. This looping continues until there are no more coupons to process, at which point decision 980 branches to “no” branch 988. When all items and coupons have been processed, the store collects payment for the resulting total bill amount at decision 990. Processing thereafter ends at 995.
PCI bus 1014 provides an interface for a variety of devices that are shared by host processor(s) 1000 and Service Processor 1016 including, for example, flash memory 1018. PCI-to-ISA bridge 1035 provides bus control to handle transfers between PCI bus 1014 and ISA bus 1040, universal serial bus (USB) functionality 1045, power management functionality 1055, and can include other functional elements not shown, such as a real-time clock (RTC), DMA control, interrupt support, and system management bus support. Nonvolatile RAM 1020 is attached to ISA Bus 1040. Service Processor 1016 includes JTAG and I2C busses 1022 for communication with processor(s) 1000 during initialization steps. JTAG/I2C busses 1022 are also coupled to L2 cache 1004, Host-to-PCI bridge 1006, and main memory 1008 providing a communications path between the processor, the Service Processor, the L2 cache, the Host-to-PCI bridge, and the main memory. Service Processor 1016 also has access to system power resources for powering down information handling device 1001.
Peripheral devices and input/output (I/O) devices can be attached to various interfaces (e.g., parallel interface 1062, serial interface 1064, keyboard interface 1068, and mouse interface 1070 coupled to ISA bus 1040. Alternatively, many I/O devices can be accommodated by a super I/O controller (not shown) attached to ISA bus 1040.
In order to attach computer system 1001 to another computer system to copy files over a network, LAN card 1030 is coupled to PCI bus 1010. Similarly, to connect computer system 1001 to an ISP to connect to the Internet using a telephone line connection, modem 1075 is connected to serial port 1064 and PCI-to-ISA Bridge 1035.
While the computer system described in
One of the preferred implementations of the invention is an application, namely, a set of instructions (program code) in a code module which may, for example, be resident in the random access memory of the computer. Until required by the computer, the set of instructions may be stored in another computer memory, for example, on a hard disk drive, or in removable storage such as an optical disk (for eventual use in a CD ROM) or floppy disk (for eventual use in a floppy disk drive), or downloaded via the Internet or other computer network. Thus, the present invention may be implemented as a computer program product for use in a computer. In addition, although the various methods described are conveniently implemented in a general purpose computer selectively activated or reconfigured by software, one of ordinary skill in the art would also recognize that such methods may be carried out in hardware, in firmware, or in more specialized apparatus constructed to perform the required method steps.
While particular embodiments of the present invention have been shown and described, it will be obvious to those skilled in the art that, based upon the teachings herein, changes and modifications may be made without departing from this invention and its broader aspects and, therefore, the appended claims are to encompass within their scope all such changes and modifications as are within the true spirit and scope of this invention. Furthermore, it is to be understood that the invention is solely defined by the appended claims. It will be understood by those with skill in the art that if a specific number of an introduced claim element is intended, such intent will be explicitly recited in the claim, and in the absence of such recitation no such limitation is present. For a non-limiting example, as an aid to understanding, the following appended claims contain usage of the introductory phrases “at least one” and “one or more” to introduce claim elements. However, the use of such phrases should not be construed to imply that the introduction of a claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an”; the same holds true for the use in the claims of definite articles.