Abstract:
A system and method for providing an online ordering machine that manages the distribution of products over a distributed computer system is herein disclosed.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 09/282,645, filed Mar. 31, 1999 and now pending, which is a continuation of U.S. patent application Ser. No. 08/976,793, filed Nov. 24, 1997 and now U.S. Pat. No. 5,991,739, both of which are incorporated herein by reference in their entirety. 
    
    
     The present invention relates to systems and methods for electronic commerce and particularly to an Internet self-ordering mechanism. 
     BACKGROUND OF THE INVENTION 
     The Internet has provided consumers with a new medium for electronic commerce. Currently, there exist several Internet services that provide consumers with access to menus for food products that can be ordered online. 
     World Wide Waiters is one such service in which each consumer and participating restaurants are linked via the Internet to the World Wide Waiter server. The World Wide Waiter server provides a web site that includes web pages having menus of several participating restaurants with home delivery and/or take-out service. The consumer can search for a menu either using a restaurant&#39;s name or a city. 
     The consumer can then place an order from the menu of a selected restaurant which is transferred to the World Wide Waiter server. The World Wide Waiter server then emails the order over the Internet to the restaurant. The restaurant confirms the order to the World Wide Waiter server. Upon receiving the restaurant&#39;s confirmation, the World Wide Waiter server transmits to the consumer a confirming email that the restaurant has received the order and will deliver the order. 
     In addition, World Wide Waiters allows a customer to fax the order directly to The World Wide Waiters office. Personnel at the World Wide Waiters office contacts the restaurant in order to process the order. 
     There are several shortcomings to this system. First, each participating restaurant needs to have Internet access to the World Wide Waiter server. This additional expense can deter restaurant proprietors from utilizing this type of home delivery service. 
     Second, the World Wide Waiter server downloads to the customer statically created HTML pages representing the menus of each participating restaurant. These menu web pages are preconfigured and stored in the server. The use of these statically configured menu web pages becomes a burden since it hampers the maintainability and scalability of the server to take on additional restaurants. 
     Waiters on Wheels is another Internet online ordering service that provides Internet consumers with a web site to advertise menus of participating restaurants and that accepts consumer orders. It faxes an order to a participating restaurant. It provides its own waiters which pick up the take-out order from a participating restaurant and deliver it to the consumer&#39;s location. 
     The menus are stored by the geographic location of a Waiters on Wheels office. A consumer searches those menus associated with the Waiters on Wheels office within their delivery location. A consumer can order online from the menu. The Waiters on Wheels server confirms receipt of the consumer&#39;s order by telephone. If the restaurant cannot deliver the order to the Internet consumer, the restaurant telephones the Waiters on Wheels office. The office in turn calls the consumer to inform them of the problem. 
     PizzaNet is another prior art online ordering system that provides Internet consumers with a web site including menus of participating pizza restaurants. To place an order, consumers enter their zip code, telephone area code, and the first three digits of their phone number. A list of participating pizza restaurants within the consumer&#39;s location is provided along with their menus. The consumer can then select the restaurant of his or her choice and order from its menu. PizzaNet receives the order from the Internet and faxes to the restaurant a copy of the order. In some instances, PizzaNet verifies the order by a return phone call and in other cases the pizza restaurant verifies the order by return phone call. 
     A shortcoming of the Waiter on Wheels and PizzaNet systems is in its method of communicating with the restaurant through a facsimile machine. The additional expense incurred in installing a facsimile machine can deter prospective restaurants from participating in this system. Further, once an order is received, all subsequent communications between the customer and the delivery system are performed via telephone calls which requires manual intervention. 
     SUMMARY OF THE INVENTION 
     The present invention pertains to an online ordering machine that manages the distribution of home delivered products over a distributed computer system. The distributed computer system includes a group of customers connected to client computers and at least one server computer system that executes the online ordering machine. The online ordering machine provides the customers with product information from various vendors whose delivery range is within the customers location or with product information from vendors having take out service within a specified range from the customers location. The online ordering machine accepts orders from the customer for a particular product from a selected vendor. The order is converted into voice instructions which are transmitted to the vendor through a telephone call. Alternatively, the order can be transmitted via facsimile transmission with follow up voice instructions transmitted via a telephone call seeking a response. The vendor responds to the voice-prompted instructions which are then used to confirm the order. 
     In an embodiment of the present invention, the online ordering machine enables Internet customers to order food products from various participating restaurants. The online ordering machine is a Web server including a web creation procedure that dynamically generates menu web pages in response to a customers request. The menu web pages list the various products for delivery or takeout service. An Internet customer is provided with a menu web page listing those vendors or restaurants that service the customer&#39;s location. In addition, the online ordering machine indicates which restaurants are open at the time the customer makes the request. 
     The online ordering machine categorizes the location of each participating restaurant by a set of longitude and latitude coordinates. Each customer&#39;s delivery location is also categorized by a set of longitude and latitude coordinates. The online ordering machine searches for those restaurants whose delivery area lies within the customer&#39;s location based on the restaurant&#39;s and customer&#39;s longitude and latitude coordinates. Likewise, the online ordering machine searches for those restaurants having takeout service within the customer&#39;s location based on the restaurant&#39;s and customer&#39;s longitude and latitude coordinates. 
     Once an Internet customer places an order, the order is converted into voice data. An interactive voice recognition (IVR) procedure receives the order as an order text file and converts the order into a voice file of recorded speech segments. The IVR procedure automatically places a call to the restaurant and transmits the voice file which is played when the call is received. In addition, the IVR procedure can transmit the order as a facsimile transmission and follow up with an automated telephone call. In either case, voice prompts are used to obtain a response from the restaurant in the form of one or more DTMF tones. The online ordering machine then relays a status response to the customer. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Additional objects and features of the invention will be more readily apparent from the following detailed description and appended claims when taken in conjunction with the drawings, in which: 
         FIG. 1  is a block diagram of an embodiment of a distributed computer system incorporating the present invention. 
         FIG. 2  is a block diagram of the client computer and online ordering machine as shown in  FIG. 1 . 
         FIG. 3  illustrates the order database schema in a preferred embodiment of the present invention. 
         FIG. 4  illustrates the geocodes in a preferred embodiment of the present invention. 
         FIG. 5  is a block diagram illustrating the partitioning of a grid area into smaller areas in a preferred embodiment of the present invention. 
         FIG. 6  is an exemplary format of the order text file in a preferred embodiment of the present invention. 
         FIG. 7  is a block diagram illustrating the menu web page creation in a preferred embodiment of the present invention. 
         FIGS. 8-10  are schematic representations of exemplary menu web pages that are dynamically created in response to a customers response. 
         FIG. 11  is a flow chart illustrating the steps used to process an order in a preferred embodiment of the present invention. 
         FIGS. 12A-12C  are schematic representations of exemplary menu web pages used to receive an order in a preferred embodiment of the present invention. 
         FIG. 13  is a flow chart illustrating the steps used to process an order in a preferred embodiment of the present invention. 
     
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Computer Architecture 
       FIG. 1  illustrates a system  100  representing an embodiment of the present invention including a number of client computers  102 A- 102 N and one or more online ordering machines  106  in communication via a communications link  104 . In a preferred embodiment, an online ordering machine  106  is a server computer. An online ordering machine  106  is in communication with one or more vendors  108 A- 108 M through one or more telephone links  110 . 
     The communication link  104  generically refers to any type of wire or wireless link between computers, such as but not limited to a local area network, a wide area network, or a combination of networks. In a preferred embodiment of the present invention, the communications link  104  can be a network such as the Internet. 
     A client computer  102  can be any type of computing device, such as but not limited to, desktop computers, workstations, laptops, and/or mainframe computers. One or more users (not shown) can be associated with each client computer  102 . 
       FIG. 2  illustrates the client computer  102  which includes a CPU  112 , a user interface  114 , a memory  119 , and a communication interface  116 . The communications interface  116  is used to communicate with the server computer  106  as well as other system resources not shown. The memory  119  of the client computer  102  may be implemented as RAM (random access memory) or a combination of RAM and non-volatile memory such as magnetic disk storage. The memory  119  can contain the following:
         an operating system  120 ;   Internet access procedures  122 ;   as well as other procedures and files.       

       FIG. 2  also illustrates the online ordering machine  106  which includes a central processing unit (CPU)  112 , Interactive Voice Recognition (IVR) hardware  113 , a user interface  114 , a memory  118 , a communications interface  116 . The online ordering machine  106  can be any type of computing device, such as but not limited to, desktop computers, workstations, laptops, and/or mainframe computers. The communications interface  116  is used to communicate with the client computers  102  as well as other system resources not shown. 
     The IVR hardware  113  connects the online ordering machine  106  to a telephonic link  110  coupled to one or more telephonic devices, such as but not limited to a facsimile machine  107 A and/or a telephone  107 M. Each telephonic device  107  can be associated with a particular vendor  108 . The IVR hardware  113  provides interactive voice recognition capabilities including voice processing, speech recognition, and text-to-speech processing. 
     In a preferred embodiment of the present invention, the IVR hardware  113  consists of three types of devices: (1) one or more Dialogic™ CP/12SC™ facsimile boards that provide the online ordering machine  106  with 60 or more facsimile channels, the facsimile board enables communication between the online ordering machine  106  and a facsimile machine  107  associated with a vendor  108 ; (2) one or more Dialogic™ D/240SC-T1™ boards that provide 24 digital signal processor (DSP)-based ports to an on-board T-1 telephone interface; and (3) one or more Dialogic™ D/41 ESC™ boards that provide four DSP-based voice ports to an on-board analog telephone interface. The facsimile board enables communication between the online ordering machine  106  and a facsimile machine  107 A associated with a vendor  108 . The D/240SC-T1™ board enables interactive voice recognition capabilities between the online ordering machine  106  and a vendor  108  having an analog telephonic interface, and the D/41 ESC™ board enables interactive speech recognition capabilities between the online ordering machine  106  and a vendor  108  or customer having an analog telephone interface. A more detailed description of these devices can be found in the product literature for each of these products located at http://ww.dialogic.com which is hereby incorporated by reference as background information. 
     It should be noted that the present invention is not constrained to the preferred IVR hardware and that other such hardware devices can be used that provide a similar capability. 
     The memory  118  of the online ordering machine  106  may be implemented as RAM (random access memory) or a combination of RAM and non-volatile memory such as magnetic disk storage. The memory  118  can contain the following:
         an operating system  120 ;   Internet access procedures  122 ;   web server procedures  124 ;   web page creation procedures  126  that dynamically generate menu web pages in response to a customers request;   an order database  128  that includes information on each of the customers, vendors, and received orders;   a geocode database  130  that is used to convert a geographic location such as a street address into longitude and latitude coordinates;   an online ordering procedure  132 ;   an interactive voice recognition (IVR) procedure  134  that is used to deliver a voice message and obtain a response to the voice message;   a recorded speech database  136  including one or more recorded speech segments;   an order text file  138  that is an ASCII representation of the order in a preferred format;   a voice data file  140 ;   a geocode procedure  142  that is used to convert a geographic location into its corresponding longitude and latitude coordinates;   one or more menu web pages  144  that are dynamically created by the web creation procedure  126 ;   a menu file system  146  including one or more menu files representing menu data associated with a particular vendor, preferably, the menu files are binary files stored in a NS encoded format; and   other procedures and data structures.       

       FIG. 3  illustrates the schema of the order database  128 . The order database  128  can include the following tables:
         a customer table  150  having an entry for each customer that tenders an order to the online ordering machine  106 , the customer entry including information that characterizes a particular customer,   an address table  152  having an entry for each customer and including the latitude  154  and longitude  156  coordinates associated with a customers address;   an order master table  158  having an entry for each order;   a restaurant table  160  having an entry for each restaurant containing information that describes the restaurant, its services and products, each entry including the latitude  162  and longitude  164  coordinates associated with a restaurant;   a restaurant category table  162  associated with the restaurant table  160  that is used to identify a category associated with a restaurant;   a price range table  168  associated with the restaurant table  160  identifying the price ranges for products offered by a restaurant;   a time zone table  170  associated with the restaurant table  160  indicating the time zone corresponding to a restaurant;   a restaurant delivery table  172 ;   a payment type table  174 ;   a restaurant payment table  176 ;   a restaurant delivery service (RDS) gratuity table  178 ;   a RDS table  180 ;   a holiday table  182  associated with the restaurant table and indicating the restaurants holidays;   an IVR fax code table  184 ;   an EoSequence table  186 ;   a RDS Category Fee table  188 ;   a RDS Cross Zone Fee table  190 ;   a company table  192 ;   a RDS grid table  194 ;   a company fee structure table  196 ;   a food group table  198 ;   a RDS zone table  200 ;   an IVR fax disposition table  202 ;   a theme table  204 ;   a disposition table  206 ;   an hour table  208 ;   a day of week table  210 ;   a category table  212 ;   a fee structure table  214 ;   an order fee table  216 ;   a RDS delivery table  218 ;   a first category theme table  220  and a second category theme table  222 ;   a credit card table  224 ; and   a RDS zone delivery table  226 .       

     It should be noted that the present invention is not limited to the database schema shown in  FIG. 3 . Other schemas can be utilized and other types of databases, other than the relational database shown in  FIG. 3  can be utilized as well. 
     Geocodes 
     The present invention uses geocodes to determine whether a customer is within a specified geographic area of a restaurant&#39;s delivery area or whether a restaurant is within a specified geographic area of the customers takeout range. The use of geocodes has the advantage of producing more accurate search results. The prior art use of zip codes, cities, or telephone prefixes generally produces unsatisfactory results listing restaurants that do not deliver to the customers location. In addition, the geocodes can be used to specify a geographic location anywhere within the globe, thereby enabling the online ordering machine to accommodate international locations as well as the United States. 
     A geocode represents a particular geographic area or grid defined by longitude and latitude coordinates. Longitude and latitude coordinates are used to define a geographic location relative to the surface of the earth. The earth&#39;s reference system is composed of surface divisions denoted by geographic lines of latitude and longitude. A specific geographic location can be defined in this system by its respective longitude and latitude coordinates. 
       FIG. 4  illustrates the earth with latitude and longitude lines. The area  240  is represented by a geocode associated with a latitude and a longitude coordinate. Typically, a latitude coordinate is specified in latitude degrees and a longitude coordinate is specified in latitude degrees. 
     The technology of the present invention uses the geocodes to identify each customer and vendor in order to determine whether a customer is within a specified geographic area or grid of a restaurant&#39;s delivery area or whether a restaurant is within a specified geographic area or grid of the customer&#39;s takeout range. A geocode procedure  142  is used that converts the address of each customer and vendor into its respective latitude and longitude coordinates. The latitude and longitude coordinates then become the geocode which represents a particular grid. Next, the online order procedure  132  uses the geocode to search the order database  142  to make the appropriate selections. 
     In a preferred embodiment, the grid size for the United States was selected between 0.25 and 0.3 miles. For example, a 0.3 mile grid equates to 0.0054 longitude degrees and 0.0043 latitude degrees. Thus, in order to convert the latitude and longitude coordinates of a customer or restaurant location into a geocode, the following mathematical equations can be used:
 
Latitude  Id=trunc [(latitude in degrees*10 6 )/4300]+1,
 
Longitude  Id=abs ( trunc [−(longitude in degrees*10 6 )/5400]+1),
 
Geocode=Latitude  Id ,Longitude  Id  
 
     The geocodes can then be used to determine whether a customer is within a specified geographic area of a restaurant&#39;s delivery area or whether a restaurant is within a specified geographic area of the customer&#39;s take-out range. To determine whether a customer is within a specified geographic area of a restaurant&#39;s delivery area, the customer&#39;s geocode is used to search the order database  128  for those restaurants having the same geocode. 
     The following mathematical relation is used to select restaurants that are within a customer&#39;s takeout range:
 
IF the Latitude  Id  of the restaurant&gt;Latitude  Id  of customer&#39;s location−Takeout Range and
 
the Latitude  Id  of the restaurant&lt;Latitude  Id  of the customer&#39;s location+Takeout Range and
 
Longitude  Id  of the restaurant&gt;Longitude  Id  of the customer&#39;s location−Takeout Range and
 
Longitude  Id  of the restaurant&lt;Longitude  Id  of the customer&#39;s location+Takeout Range,
         THEN
           Restaurant is within the Takeout Range.   
               

     In certain geographic areas, a grid size between 0.25 and 0.3 miles may be too large for a delivery or takeout range. In such cases, the grid can be partitioned into smaller grid sizes. The larger grid is referred to as the parent grid and the smaller grids are referred to as the child grids. 
       FIG. 5  illustrates one such example of this partitioning. A parent grid  250  having a grid size between 0.25-0.3 miles is associated with a geocode 09456, 12943. The parent grid  250  is partitioned into four child grids  252 - 258  having a grid size between 0.06-0.075 miles. Each child grid  252  is associated with a subgrid identifier such as A, B, C, or D that represents an associated geographic region. 
     A vendor can service one or more of the child grids. For example, vendor X can service child grid A, vendor Y can service child grids A and B, and vendor Z can service child grids A and D. As such, a coding scheme was developed to identify all the possible combinations that can occur. A numeric value is associated with each child grid. For example, child grid A is associated with the value 1, child grid B with the value 2, child grid C with the value 4, and child grid D with the value 8. The sum of these values represent a particular combination of delivery areas. For example, the combination of child grid A and B is identified by a value of 3. Table 1 below shows the encoding scheme for all possible combinations in the child grid scheme shown in  FIG. 5 . 
     
       
         
               
               
               
             
               
               
               
             
           
               
                   
                 TABLE I 
               
               
                   
                   
               
               
                   
                 VALUE 
                 COMBINATION 
               
               
                   
                   
               
             
             
               
                   
               
             
          
           
               
                   
                 1 
                 A 
               
               
                   
                 2 
                 B 
               
               
                   
                 3 
                 A, B 
               
               
                   
                 4 
                 C 
               
               
                   
                 5 
                 A, C 
               
               
                   
                 6 
                 B, C 
               
               
                   
                 7 
                 A, B, C 
               
               
                   
                 8 
                 D 
               
               
                   
                 9 
                 A, D 
               
               
                   
                 10 
                 B, D 
               
               
                   
                 11 
                 A, B, D 
               
               
                   
                 12 
                 C, D 
               
               
                   
                 13 
                 A, C, D 
               
               
                   
                 14 
                 B, C, D 
               
               
                   
                 15 
                 A, B, C, D 
               
               
                   
                   
               
             
          
         
       
     
     When searching for a matching vendor, the geocode procedure  142  determines the appropriate subgrid identifier associated with the customer&#39;s location. For example, customer X can be associated with the geocode 09456, 12943A. The online order procedure  132  then searches for those vendors servicing child grid A associated with parent grid 09456, 12943. In the above example, that would encompass searching for all the odd values: 1, 3, 5, 7, 9, 11, 13, and 15. 
     It should be noted that the technology of the present invention can be practiced with other partitioning or encoding schemes. One skilled in the art can asily modify the present invention to accommodate other subgrid sizes and to even partition the subgrids further. Other encoding schemes can be used to identify the various possible delivery combinations associated with a particular parent grid. In addition, one can combine one or more adjacent grids to formulate a larger delivery or takeout range for a particular geographic area. 
     Interactive Voice Recognition (IVR) System 
     The Interactive Voice Recognition (IVR) procedure  134  is used to convert a customer&#39;s text order into voice data that is transmitted to the vendor  108 . Alternatively, the IVR procedure  134  can convert a customers order into a format suitable for facsimile transmission. 
     When a customer&#39;s order is received by the online order machine  106 , it is converted into an order text file  138  having a prescribed format as shown in  FIG. 6 . The order text file  138  is then transmitted to the IVR procedure  134 . If the order is to be transmitted to the vendor by facsimile transmission, then the IVR procedure  134  formats the order text file  138  into a format that is suitable for facsimile transmission (e.g., postscript format) and transmits the order to the IVR hardware  113 . The IVR hardware  113  is used to transmit the order to the vendor  108 . 
     When the order is to be transmitted to the vendor  108  by telephone transmission, the IVR procedure  134  then translates the order text file  138  into a voice data file  140  using the recorded speech database  136 . The voice data file  140  is then transmitted to the IVR hardware  113  which transmits the voice data to the vendor  108 . 
     Dynamically Created Menu Web Pages 
     The online ordering machine  106  generates menu web pages  144  that are specific to a particular customer&#39;s request. The creation of the menu web pages  144  is done dynamically at runtime in order to provide data that accommodates a customer&#39;s request. The creation of the menu web pages  144  in this manner differs from the prior art online order systems. In the prior art online order systems, the menu web pages are preconfigured and displayed upon request. This becomes a burden to maintain and limits scalability. In the present technology, each menu web page  144  is configured at runtime and customized for a particular customer&#39;s request. Thus, each menu web page  144  differs since each customer&#39;s request is different as is the customer&#39;s location. 
       FIG. 7  illustrates the components used to dynamically generate a menu web page  144 . A web page creation procedure  126  is provided that receives as input one or more customer requests and is linked to the order database  128  and the menu file system  146 . The web page creation procedure  126  generates a menu web page  144  based on the input received from the user. The data included in the menu web page  144  is retrieved from the order database  128  and the menu file system  146 . The order database  128  contains information such as the operational time of a vendor, the restaurant&#39;s logo, the categories of the food products served, and the like. The menu file system  146  includes menu data associated with each vendor. The menu file system  146  includes a number of menu files stored in an encoded binary format for faster retrieval purposes. The web page creation procedure  126  uses the data in the order database  128  and the menu file system  146  to dynamically generate one or more menu web pages  144  that are customized to a customer&#39;s request. 
     In a preferred embodiment, the web page creation procedure  126  utilizes the WebObjects technology provided by Apple Software. WebObjects is a server technology that links the order database  128  directly to the web server procedures  124  and generates HTML web menu pages  144  based on a customer&#39;s request. More detailed information on WebObjects can be found at http://software.apple.com/webobjects which is hereby incorporated by reference as background information. 
       FIGS. 8-10  are exemplary menu web pages  144 .  FIG. 8  is a menu web page  144  showing the first five pizza restaurants that deliver within a particular customer&#39;s location. The restaurants shown are selected based on the customer&#39;s location and the restaurant&#39;s delivery area. As such, this menu web page  144  is dynamically created for this particular customer. 
     Likewise,  FIG. 9  is a menu web page  144  showing the various types of food items that a particular restaurant offers for delivery service within a particular customer&#39;s location. This menu web page  144  was created in response to the customer&#39;s request for pizza selections.  FIG. 10  is a menu web page  144  showing the various types of “pesce fresco” items that a particular restaurant offers for delivery service within a particular customer&#39;s location. This menu web page  144  was created in response to the customer&#39;s request for “pesce fresco” selections. 
     Ordering Process 
       FIG. 11  illustrates the steps used by the online ordering machine  106  to process an online order. A customer accesses the online ordering machine  106  through a client computer  102  that is connected to the Internet  104 . The customer enters the appropriate web address or universal resource locator (URL) for the online ordering machine  106  (step  300 ). The online order procedure  132  interacts with the client computer  102  by providing access to a series of web pages that can be downloaded to the client computer  102  for the customer&#39;s use (step  300 ). Initially, a home web page is provided to the client computer  102  which is shown in  FIG. 12A . 
     The customer can register with the online ordering machine  106  which is accomplished by filling out information requested through one or more web pages. The customer is then provided with a web page that prompts the customer for his location as shown in the exemplary web page illustrated in  FIG. 12B  (step  302 ). This web page can also obtain the current time at the customer&#39;s location which is returned to the online order procedure  132  (step  302 ). The current time is used to determine which restaurants meeting the customer&#39;s criteria are currently open. In addition, the web page obtains the type of service that the customer seeks, such as but not limited to take-out service  252  or delivery service  254 . If takeout service is requested, the web page requests the range of miles that the customer is willing to drive. If none is indicated, a default value is provided. 
     Once the customer&#39;s location is provided, the online order procedure  132  converts the customer&#39;s location into the appropriate geocode as described above (step  304 ). 
     The online order procedure  132  then searches the order database  128  for those restaurants that deliver to the customer&#39;s location or are within the customer&#39;s desired takeout range (step  306 ). This search is performed as described above with respect to the geocode procedure  142 . A menu web page  144  including a list of these restaurants is dynamically created by the web creation procedure  126  and provided to the customer as shown in  FIG. 12C . 
     The customer can then select a particular vendor or restaurant and one or more menu web pages  144  including the selected information that is dynamically created by the web creation procedure  126  and provided to the customer&#39;s client computer  102 . The customer can then browse through the menu web pages  144  and select items of interest. The user&#39;s selection or requests are used by the web creation procedure  126  to generate one or more menu web pages  144  that are displayed to the customer (step  306 ).  FIGS. 8-10  illustrate such exemplary menu web pages  144 . 
     The customer places an order by selecting the appropriate items from the menu web pages  144  (step  308 ) which are then transmitted to the online ordering machine  106  (step  310 ). The online ordering machine  106  receives the order and processes it as shown in  FIG. 13  (step  310 ). 
     Referring to  FIG. 13 , an entry is generated for the order in the order database  128  (step  312 ). An order text file  138  is generated representing the order in accordance with a prescribed format as shown in  FIG. 6  (step  314 ). 
     In the case where the order is transmitted by facsimile transmission to the vendor (step  316 -Y), the order text file  138  is then formatted for facsimile transmission and transmitted to the vendor as described above (step  318 ). A voice data file  140  is then generated that informs the vendor  108  of the transmitted fax order (step  320 ). 
     In the case where the order is transmitted by a telephone call, the IVR procedure  134  is used to convert the order text file  138  into voice data (step  322 ). The IVR procedure  134  performs the conversion by finding prerecorded speech segments stored in the recorded speech database  136  that match the words contained in the order text file  138 . The speech segments are then concatenated into a voice data file  140  that is then transmitted to the IVR hardware  113  (step  324 ). The IVR hardware  113  then establishes telephonic communication with the vendor  108  and transmits the voice data to the vendor  108  (step  324 ). 
     In some instances, one or more calls may be made to the vendor  108  before communication is established (step  326 -N). After a predetermined number of unsuccessful attempts have been made that have failed to establish communication to the vendor  108  (step  328 -Y), the online ordering procedure  132  may initiate failure actions. These failure actions can include calling the vendor directly to place the order or to determine the nature of the problem (step  329 ). Based on the nature of the problem, in some cases, the customer can be notified of the failed communication and asked to select another vendor  108  (step  329 ). In addition, the online order procedure  132  updates the order database  128  to reflect the status of the order (step  329 ). 
     In the case where the online ordering procedure  132  is successful in communicating with the vendor  108  (step  326 -Y), the vendor  108  hears a recorded message including voice prompts for responses from the vendor  108 . An exemplary transcript of such a recorded message can be as follows:
         This is cybermeals with (an/a repeat) order for (delivery/carry out). Press 1 when you are ready to take this order.   When the employee presses 1, the voice continues with the following: The customer&#39;s phone number is  —————— . The customer&#39;s name is  —————— . The address is  ——————  (only if the order is for delivery). The order is  —————— . Total prices excluding tax and coupons is  —————— .   The employee is then given the option of pressing further keys: 5 to accept the order, 6 to decline the order, 2 to pause the order, 3 to repeat the order, 4 to hear only the address repeated, 7 to repeat the food items, total price, and payment method, 8 to repeat the phone number, and * to just repeat the last segment you were listening to.   Finally, the voice requests that the vendor press keys to indicate how long the order will take to deliver.       

     If the IVR procedure  134  encounters any failures in retrieving the vendor&#39;s response (step  332 -N), the online order procedure  132  initiates one or more failure recovery actions to rectify the failure. For example, if the vendor  108  does not respond to a telephonic order, a manual telephone call can be made to the vendor  108  in order to ascertain the nature of the problem or to obtain the response. 
     If the IVR procedure  134  receives a response from the vendor  108  (step  332 -Y), the online order procedure  132  transmits a notification to the customer indicating the status of an order and updates the order database  128  with the status thereby completing the order (step  336 ). Notification to the customer can be by an mail message, or other communication medium, and can include an expected delivery time. 
     In addition to the aforementioned steps, the online order procedure  132  can also transmit to the vendor  108  directions to the customer&#39;s location either as a facsimile transmission, as a telephone call, mail message, and the like. Likewise, the online order procedure  132  can transmit through any medium directions to a vendor&#39;s location to a customer requesting takeout service. 
     Alternate Embodiments 
     The foregoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that the specific details are not required in order to practice the invention. In other instances, well known circuits and devices are shown in block diagram form in order to avoid unnecessary distraction from the underlying invention. Thus, the foregoing descriptions of specific embodiments of the present invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, obviously many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following Claims and their equivalents. 
     Further, the method and system described hereinabove is amenable for execution on various types of executable mediums other than a memory device such as a random access memory. Other types of executable mediums can be used, such as but not limited to, a computer readable storage medium which can be any memory device, compact disc, or floppy disk. 
     Although the present invention has been described with reference to ordering food products from restaurants, it is not limited to this particular product or vendor. The present invention can be used for other electronic commerce purposes, other commodities, other types of vendors, and other types of services other than delivery or takeout. 
     In addition, the present invention is not constrained to transmitting a customers order to the vendor through the interactive voice recognition system as described above. A modem connection can be established which will enable communication between the online ordering machine and the vendor through the Internet thereby allowing email communication, web communication, and the like.