Method and system for placing a purchase order via a communications network

Abstract: A method and system for placing an order to purchase an item via the Internet. The order is placed by a purchaser at a client system and received by a server system. The server system receives purchaser information including identification of the purchaser, payment information, and shipment information from the client system. The server system then assigns a client identifier to the client system and associates the assigned client identifier with the received purchaser information. The server system sends to the client system the assigned client identifier and an HTML document identifying the item and including an order button. The client system receives and stores the assigned client identifier and receives and displays the HTML document. In response to the selection of the order button, the client system sends to the server system a request to purchase the identified item. The server system receives the request and combines the purchaser information associated with the client identifier of the client system to generate an order to purchase the item in accordance with the billing and shipment information whereby the purchaser effects the ordering of the product by selection of the order button.

Description: The present invention relates to a computer method and system for placing an order and, more particularly, to a method and system for ordering items over the Internet. The Internet comprises a vast number of computers and computer networks that are interconnected through communication links. The interconnected computers exchange information using various services, such as electronic mail, Gopher, and the World Wide Web ("WWW"). The WWW service allows a server computer system ( i.e ., Web server or Web site) to send graphical Web pages of information to a remote client computer system. The remote client computer system can then display the Web pages. Each resource ( e.g ., computer or Web page) of the WWW is uniquely identifiable by a Uniform Resource Locator ("URL"). To view a specific Web page, a client computer system specifies the URL for that Web page in a request ( e.g ., a HyperText Transfer Protocol ("HTTP") request). The request is forwarded to the Web server that supports that Web page. When that Web server receives the request, it sends that Web page to the client computer system. When the client computer system receives that Web page, it typically displays the Web page using a browser. A browser is a special-purpose application program that effects the requesting of Web pages and the displaying of Web pages. Currently, Web pages are typically defined using HyperText Markup Language ("HTML"). HTML provides a standard set of tags that define how a Web page is to be displayed. When a user indicates to the browser to display a Web page, the browser sends a request to the server computer system to transfer to the client computer system an HTML document that defines the Web page. When the requested HTML document is received by the client computer system, the browser displays the Web page as defined by the HTML document. The HTML document contains various tags that control the displaying of text, graphics, controls, and other features. The HTML document may contain URLs of other Web pages available on that server computer system or other server computer systems. The World Wide Web is especially conducive to conducting electronic commerce. Many Web servers have been developed through which vendors can advertise and sell product. The products can include items ( e.g. , music) that are delivered electronically to the purchaser over the Internet and items ( e.g. , books) that are delivered through conventional distribution channels ( e.g. , a common carrier). A server computer system may provide an electronic version of a catalog that lists the items that are available. A user, who is a potential purchaser, may browse through the catalog using a browser and select various items that are to be purchased. When the user has completed selecting the items to be purchased, the server computer system then prompts the user for information to complete the ordering of the items. This purchaser-specific order information may include the purchaser's name, the purchaser's credit card number, and a shipping address for the order. The server computer system then typically confirms the order by sending a confirming Web page to the client computer system and schedules shipment of the items. Since the purchaser-specific order information contains sensitive information ( e.g ., a credit card number), both vendors and purchasers want to ensure the security of such information. Security is a concern because information transmitted over the Internet may pass through various intermediate computer systems on its way to its final destination. The information could be intercepted by an unscrupulous person at an intermediate system. To help ensure the security of the sensitive information, various encryption techniques are used when transmitting such information between a client computer system and a server computer system. Even though such encrypted information can be intercepted, because the information is encrypted, it is generally useless to the interceptor. Nevertheless, there is always a possibility that such sensitive information may be successfully decrypted by the interceptor. Therefore, it would be desirable to minimize the sensitive information transmitted when placing an order. The selection of the various items from the electronic catalogs is generally based on the "shopping cart" model. When the purchaser selects an item from the electronic catalog, the server computer system metaphorically adds that item to a shopping cart. When the purchaser is done selecting items, then all the items in the shopping cart are "checked out" ( i.e ., ordered) when the purchaser provides billing and shipment information. In some models, when a purchaser selects any one item, then that item is "checked out" by automatically prompting the user for the billing and shipment information. Although the shopping cart model is very flexible and intuitive, it has a downside in that it requires many interactions by the purchaser. For example, the purchaser selects the various items from the electronic catalog, and then indicates that the selection is complete. The purchaser is then presented with an order Web page that prompts the purchaser for the purchaser-specific order information to complete the order. That Web page may be prefilled with information that was provided by the purchaser when placing another order. The information is then validated by the server computer system, and the order is completed. Such an ordering model can be problematic for a couple of reasons. If a purchaser is ordering only one item, then the overhead of confirming the various steps of the ordering process and waiting for, viewing, and updating the purchaser-specific order information can be much more than the overhead of selecting the item itself. This overhead makes the purchase of a single item cumbersome. Also, with such an ordering model, each time an order is placed sensitive information is transmitted over the Internet. Each time the sensitive information is transmitted over the Internet, it is susceptible to being intercepted and decrypted. The present invention however is not concerned with those security aspects. It is the object of the present invention to provide a method that allows a computer system to electronically initiate delivery of an item to a recipient despite the fact that at the time the order for the delivery is received, the exact address of the recipient is not known. This object is solved by the subject-matter of independent claims 1 and 7. Preferred embodiments are the subject-matter of the dependent claims. An embodiment of the present invention provides a method in a computer system for ordering a gift for delivery from a gift giver to a recipient, the method comprising receiving from the gift giver an indication that the gift is to be delivered to the recipient and an electronic mail address of the recipient; and sending to a gift delivery computer system an indication of the gift and the received electronic mail address, wherein the gift delivery computer system coordinates delivery of the gift by sending an electronic mail message addressed to the electronic mail address of the recipient, the electronic mail address requesting that the recipient provide delivery information including a postal address for the gift; and upon receiving the delivery information, electronically initiating delivery of the gift in accordance with the received delivery information. Figures 1A-1C illustrate single-action ordering Figure 2 is a block diagram illustrating the component of a single-action ordering system. Figure 3 is a flow diagram of a routine that enables single-action ordering for a customer. Figure 4 is a flow diagram of a routine to generate a Web page in which single-action ordering is enabled. Figure 5 is a flow diagram of a routine which processes a single-action order. Figure 6 is a flow diagram of a routine for generating a single-action order summary Web page. Figure 7 is a flow diagram of a routine that implements an expedited order selection algorithm. Figures 8A-8C illustrate a hierarchical data entry mechanism. Figures 9A-9B illustrate use of a single-action to give an item as a gift to one or more recipients. Figure 10 is a flow diagram of the overall flow of the gift delivery system according to the invention. Figure 11 is a block diagram illustrating the components of the gift delivery system. Figure 12 is a state diagram illustrating the various states of a gift order. Figure 13 is a flow diagram of a routine that controls the receiving of gift orders. Figure 14 is a block diagram of a routine that controls the attempt at first contact of the recipient. Figure 15 is a flow diagram of a routine that controls the processing of the initial voice telephone contact. Figure 16 is a flow diagram of a routine that controls the processing of the initial response. Figure 17 is flow diagram of a routine that controls the collecting of additional contact information. Figure 18 is a flow diagram of a routine that controls the verifying of the delivery information. The present invention provides a method and system for ordering of items in a client/server environment. The server system may assign a unique client identifier to each client system. The server system also may store purchaser-specific order information for various potential purchasers. The purchaser-specific order information may have been collected from a previous order placed by the purchaser. The server system may map each client identifier to a purchaser that may use that client system to place an order. The server system may map the client identifiers to the purchaser who last placed an order using that client system. When a purchaser wants to place an order, the purchaser uses a client system to send the request for information describing the item to be ordered. When its client identifier is also sent, the server system determines whether the client identifier for that client system is mapped to a purchaser. If so mapped, the server system may use single-action ordering for that purchaser at that client system. Figures 1A-1C illustrate single-action ordering. Figure 1A illustrates the display of a Web page describing an item that may be ordered. This example Web page was sent from the server system to the client system when the purchaser requested to review detailed information about the item. This example Web page contains a summary description section 101, a shopping cart section 102, a single-action ordering section 103, and a detailed description section 104. One skilled in the art would appreciate that these various sections can be omitted or rearranged or adapted in various ways. In general, the purchaser need only be aware of the item or items to be ordered by the single action and of the single action needed to place the order. The summary description and the detailed description sections provide information that identifies and describes the item(s) that may be ordered. The shopping cart section provides the conventional capability to add the described item to a shopping cart. The server system adds the summary description, the detailed description, and the shopping cart sections to each Web page for an item that may be ordered. The server system, however, only adds the single-action ordering section when single-action ordering is enabled for that purchaser at that client system. (One skilled in the art would appreciate that a single Web page on the server system may contain all these sections but the single-action ordering section can be selectively included or excluded before sending the Web page to the client system.) This example single-action ordering section allows the purchaser to specify with a single click of a mouse button to order the described item. Once the purchaser clicks the mouse button, the item is ordered, unless the purchaser then takes some action to modify the order. The single-action ordering section contains a single-action ordering button 103a, purchaser identification subsection 103b, and single-action ordering information subsections 103c and 103d. The purchaser information subsection displays enough information so that the purchaser can verify that the server system correctly recognizes the purchaser. To reduce the chances of sensitive information being intercepted, the server system sends only enough information so that the purchaser is confident that the server system correctly identified the purchaser but yet not enough information to be useful to an unscrupulous interceptor. The additional information subsections allow the purchaser to obtain various settings or obtain more information related to the single-action ordering. If the purchaser wants to verify the shipping address, the purchaser can select the "check shipping address" label. In response to this selection, the server system may require the purchaser to perform a "login" so that the identity of the purchaser can be verified before the shipping information is viewed or modified. The server system then sends a Web page to the client system for display and possible modification of the shipping address. When the purchaser selects the single-action ordering button, the client system sends a message to the server system requesting that the displayed item be ordered. After the server system processes the message, the server system provides to the client system a new Web page that confirms receipt of the single-action order. Figure 1B illustrates the display of a Web page confirming a single-action order. The confirming Web page contains essentially the same information as the Web page describing the item ( i.e ., Figure 1A) except that an order confirmation section 105 is displayed at the top of the Web page. The order confirmation section confirms that the order has been placed and provides an opportunity for the purchaser to review and change the single-action order. Alternatively, the confirming Web page can be identical to the Web page describing the item ( i.e ., Figure 1A), except that the single-action ordering button is replaced with a message confirming the order. If a single-action ordering is not currently enabled for the client system but could be enabled, then the server system can generate a Web page like Figure 1A, except that the single-action ordering button 103a is replaced by a single-action ordering enable button. Such a replacement button could contain text instructing the purchaser to click on the button to enable single-action ordering. When the purchaser clicks on that button, the server system would send the Web page of Figure 1A to be displayed. Single-action ordering can be enabled whenever the server system has stored sufficient purchaser-specific order information for that client system to complete a single-action order. If the server system does not have sufficient information, then when the purchaser selects the single-action ordering button, the server system can provide a Web page to collect the additional information that is needed. The server system may require the purchases to "login" so that the identify of the purchaser can be verified before the single-action ordering is enabled. To help minimize shipping costs and purchaser confusion, the server system may combine various single-action orders into a multiple-item order. For example, if a purchaser orders one item using the single-action ordering and five minutes later orders another item using the single-action ordering, then those orders may be cost effectively combined into a single order for shipping. The server system combines the single-action orders when their expected ship dates are similar. For example, if one item is immediately available and the other item will be available in one day, then the two single-action orders may be cost-effectively combined. However, if the other item will not be available for two weeks, then the two single-item orders would not be combined. Figure 1C illustrates the display of a Web page representing four single-action orders that have been combined into two separate multiple-item orders based on the availability of the items. The order information 106 indicates that item 1 and item 2, which will be available in three or fewer days, have been combined into one order. The order information 107 indicates that items 3 and 4, which will not be available within one week, are combined into a separate order. The server system may combine single-action orders that are placed within a certain time period ( e.g ., 90 minutes). Also, the server system may combine or divide orders when the orders are scheduled for shipment based on the then current availability of the items ordered. This delayed modification of the orders is referred to as "expedited order selection" and is described below in detail. Figure 2 is a block diagram illustrating the component of a single-action ordering system that supports the single-action ordering over the Internet using the World Wide Web. The server system 210 includes a server engine 211, a client identifier/customer table 212, various Web pages 213, a customer database 214, an order database 215, and an inventory database 216. The server engine received HTTP requests to access Web pages identified by URLs and provides the Web pages to the various client systems. Such an HTTP request may indicate that the purchaser has performed the single action to effect single-action ordering. The customer database contains customer information for various purchasers or potential purchasers. The customer information includes purchaser-specific order information such as the name of the customer, billing information, and shipping information. The order database 215 contains an entry for each order that has not yet been shipped to a purchaser. The inventory database 216 contains a description of the various items that may be ordered. The client identifier/customer table 212 contains a mapping from each client identifier, which is a globally unique identifier that uniquely identifies a client system, to the customer last associated with that client system. The client system 220 contains a browser and its assigned client identifier. The client identifier is stored in a file, referred to as a "cookie." The server system may assign and send the client identifier to the client system once when the client system first interacts with the server system. From then on, the client system includes its client identifier with all messages sent to the server system so that the server system can identify the source of the message. The server and client systems interact by exchanging information via communications link 230, which may include transmission over the Internet. One skilled in the art would appreciate that the single-action ordering techniques can be used in various environments other than the Internet. For example, single-action ordering can also be in an electronic mail environment in which an item is described in an electronic mail message along with an indication of the single action that is to be performed to effect the ordering of the item. Also, various communication channels may be used such as local area network, wide area network, or point-to-point dial up connection. Also, a server system may comprise any combination of hardware or software that can generate orders in response to the single action being performed. A client system may comprise any combination of hardware or software that can interact with the server system. These systems may include television-based systems or various other consumer products through which orders may be placed. Figure 3 is a flow diagram of a routine that enables single-action ordering for a customer. To enable single-action ordering, a server system needs to have information about the customer that is equivalent to the purchaser-specific order information. The server system can obtain this information in various ways. First, the server system could ask the customer if they would like to have single-action ordering enabled. If so, then the server system could prompt the customer using a Web page for the purchaser-specific order information. Second, the server system could also save the purchaser-specific order information collected when an order is placed conventionally. The server system could, either automatically or with the customer's assent, enable single-action ordering. In step 301, the server system retrieves the client identifier that was sent by the client system. In step 302, the server system updates the client identifier/customer table to indicate that the generated client identifier has been associated with that customer. In step 303, the server system sets a flag indicating that single-action ordering is enabled for that client identifier and that customer combination. That flag may be stored in the client identifier/customer table. In step 304, the server system supplies a confirming Web page to the client system. The next time a purchaser attempts to order an item, the client system will supply its client identifier to the server system. If single-action ordering is enabled for that purchaser, the server system will assume that the purchaser is the customer associated with that client identifier in the client identifier/customer table. Thus, a purchaser may not want to allow the server system to enable single-action ordering if there is a possibility that someone else may use that same client system. Figure 4 is a flow diagram of a routine to generate a Web page in which single-action ordering is enabled. When single-action ordering is enabled, the server system generates a Web page describing an item as is conventionally done and then adds a single-action ordering section. The server system may add partial purchaser-specific order information to the section. This information may include the customer's name, a shipping address moniker selected by the purchaser (e.g., "at home"), and the last five digits of a credit card number or a nickname selected by the purchaser. Such partial information should be the minimum information sufficient to indicate to the purchaser whether or not the server system is using the correct purchaser-specific order information. In step 401, the server system generates a standard shopping cart-type Web page for the item. In step 402, if the single-action ordering flag has been set for the client identifier and customer combination, then the server system continues at step 403, else the server system completes. In step 403, the server system adds the single-action section to the Web page and completes. Figure 5 is a flow diagram of a routine which processes a single-action order. When a purchaser performs the single action needed to place an order, the client system notifies the server system. The server system then combines the purchaser-specific order information for the customer associated with the client system with the item order information to complete the order. The single-action order may also be combined with other single-action orders and possibly with other conventionally placed orders to reduce shipping costs. Single-action orders can be combined if they are placed within a certain time period of each other ( e.g ., 90 minutes). This routine illustrates the combining of the single-action orders into a short-term order ( e.g ., available to be shipped in less than a week) and a long-term order ( e.g ., available to be shipped in more than a week). One skilled in the art would appreciate that the single-action orders can be combined in various ways based on other factors, such as size of shipment and intermediate-term availability. In step 501, if the item is expected to be shipped in the short term, then the server system continues at step 502, else the server system continues at step 505. In step 502, if a short-term order has already been opened for the purchaser, then the server system continues at step 504, else the server system continues at step 503. In step 503, the server system creates a short-term order for the purchaser. In step 504, the server system adds the item to the short-term order and continues at step 508. In step 505, if a long-term order has already been opened for the purchaser, then the server system continues at step 507, else the server system continues at step 506. In step 506, the server system creates a long-term order for the purchaser. In step 507, the server system adds the item to the long-term order. In step 508, the server system generates and sends the confirmation and completes. Figure 6 is a flow diagram of a routine for generating a single-action order summary Web page. This Web page ( e.g ., Figure 1C) gives the user the opportunity to view and modify the short-term and long-term single-action orders. In step 601, the server system adds the standard single-action order information to the Web page. In step 602, if a short-term order is open, then the server system adds the short-term order to the Web page in step 603. In step 604, if a long-term order is open, then the server system adds the logn-term order information to the Web page in step 605 and completes. Figure 7 is a flow diagram of a routine that implements an expedited order selection algorithm. The goal of the expedited order selection algorithm is to minimize the number of orders sent to each destination so that shipping costs are reduced. A destination may be a specific shipping address plus a specific purchaser's billing details. Orders that are sent to the same destination are known as "sibling orders." The algorithm has two stages. In the first stage, the algorithm schedules for shipment the orders for destinations for which all the sibling orders are filled. An order is filled when all its items are currently in inventory ( i.e ., available) and can be shipped. For each group of sibling orders, the algorithm combines those sibling orders into a single combined order so that only one order is currently scheduled for shipment to each destination. In the second stage, the algorithm combines and schedules groups of sibling orders for which some of the sibling orders are not filled or partially filled. The algorithm may split each partially filled sibling order into a filled sibling order and a completely unfilled sibling order. The algorithm then combines all the filled sibling orders into a single combined order and schedules the combined order for shipment. If any group has only one sibling order and that order is partially filled, then the algorithm may not split that order to avoid making an extra shipment to that destination. During the second stage, the algorithm may select and schedule groups of sibling orders in a sequence that is based on the next fulfillment time for an item in the group. The next fulfillment time for a group of sibling orders is the minimum expected fulfillment time of the items in that group of sibling orders. For example, if a group of sibling orders has seven items that are not yet fulfilled and their expected fulfillment times range from 3 days to 14 days, then the next fulfillment time for that group is 3 days. The algorithm first schedules those groups of sibling orders with the largest next fulfillment time. For example, if 6 groups have next fulfillment times of 3, 5, 7, 10, 11, and 14 days, respectively, then the algorithm first selects and schedules the sibling orders in the group with the next fulfillment time of 14 days, followed by the group with the next fulfillment time of 11 days, and so on. By delaying the scheduling of groups with short next fulfillment times, the algorithm increases the chances of additional items becoming available (because of the shortness of the next fulfillment time) and thus combined with the scheduled order. Steps 701-703 represent the first stage of the expedited order selection algorithm, and steps 704-706 represent the second stage of the expedited selection order algorithm. In steps 701-703, the algorithm loops selecting groups in which all sibling orders are filled and combining the orders. In step 701, the algorithm selects the next group with all sibling orders that are filled. In step 703, if all such groups have already been selected, then the algorithm continues with the second stage in step 704, else the algorithm continues at step 703. In step 703, the algorithm combines and schedules the orders in the selected group and loops to step 701. In step 704, the algorithm selects the next group of sibling orders that has the largest next fulfillment time. In step 705, if all such groups have already been selected, then the algorithm is done, else the algorithm continues at step 706. In step 706, the algorithm combines and schedules the orders in the selected group and loops to step 704. When the expedited order selection algorithm is being performed, new orders and new inventory may be received. Whenever such new orders and new inventory is received, then the algorithm restarts to schedule and combine the new orders as appropriate. Although the algorithm has been described as having two stages, it could be implemented in an incremental fashion where the assessment of the first and second stages are redone after each order is scheduled. One skilled in the art would recognize that there are other possible combinations of these stages which still express the same essential algorithm. Figures 8A-8C illustrate a hierarchical data entry mechanism. When collecting information from a user, a Web page typically consists of a long series of data entry fields that may not all fit onto the display at the same time. Thus, a user needs to scroll through the Web page to enter the information. When the data entry fields do not fit onto the display at the same time, it is difficult for the user to get an overall understanding of the type and organization of the data to be entered. The hierarchical data entry mechanism allows a user to understand the overall organization of the data to be entered even though the all data entry fields would not fit onto the display at the same time. Figure 8A illustrates an outline format of a sample form to be filled in. The sample form contains various sections identified by letters A, B, C, and D. When the user selects the start button, then section A expands to include the data entry fields for the customer name and address. Figure 8B illustrates the expansion of section A. Since only section A has been expanded, the user can view the data entry fields of section A and summary information of the other sections at the same time. The user then enters data in the various data entry fields that are displayed. Upon completion, the user selects either the next or previous buttons. The next button causes section A to be collapsed and section B to be expanded so that financial information may be entered. Figure 8C illustrates the expansion of section B. If the previous button is selected, then section A would collapse and be displayed as shown in Figure 8A. This collapsing and expanding is repeated for each section. At any time during the data entry, if an error is detected, then a Web page is generated with the error message in close proximity ( e.g ., on the line below) to the data entry field that contains the error. This Web page is then displayed by the client system to inform the user of the error. In addition, each of the data "entry" fields may not be editable until the user clicks on the data entry field or selects an edit button associated with the data entry field. In this way, the user is prevented from inadvertently changing the contents of an edit field. When the user clicks on a data entry field, a new Web page is presented to the user that allows for the editing of the data associated with the field. When editing is complete, the edited data is displayed in the data "entry" field. Because the fields of the form are thus not directly editable, neither "named-submit" buttons nor Java are needed. Also, the form is more compact because the various data entry options ( e.g ., radio button) are displayed only on the new Web page when the field is to be edited. The present invention provides a mechanism for giving a gift to an identified recipient(s). When information is displayed describing the item, the system displays an instruction to identify the recipient(s) and then to select a "give" button to effect the giving of the item to the identified recipient(s). If the user is giving the gift to only one recipient, then the user enters identifying information, such as the email address, of the recipient. If the user is giving the gift to more than one recipient, the user could enter the identifying information of each recipient, or alternatively, the user could enter a group name that is associated with the identifying information for each member ( i.e ., recipient) of the group. The system uses the identifying information to identify a delivery address for the gift. As described in more detail below, the system can use various databases to locate information for an identified recipient. Figures 9A-9B illustrate use of a single-action to give an item as a gift to one or more recipients. Figure 9A illustrates the giving of a gift to one recipient. The sections 101-104 are the same as described for Figure 1A. The gift giving section 901 contains an instruction subsection 901a, an identifying information subsection 901b, and a single-action giving subsection 901c. To effect the giving of the item to a recipient, the user enters the email address of the recipient in the identifying information subsection 90b and then selects the single-action giving subsection 901c. The system receives the email address and uses the email address to locate the delivery address for the recipient as described below in detail. The system bills the item to the user based on information stored for that user for single-action ordering and ships the item to the recipient at the delivery address. As described below, the system can allow many different types of identifying information to be specified by the user. Figure 9B illustrates the giving of a gift to multiple recipients. The gift giving section 902 contains an instruction subsection 902a, a group name subsection 902b, and a single-action giving subsection 902c. To effect the giving of the item to multiple recipients, the user inputs a name of the group that identifies the recipients into the group name subsection 902b and then selects the single-action giving subsection 902c. The system uses the group name to identify a list of recipients who are associated with the group name. A computer-based method and system for coordinating the delivery of gifts by receiving gift orders, collecting additional delivery information that is not specified in the gift orders, and delivering gifts based on the additional delivery information is also provided. In one embodiment, the gift delivery system of the present invention receives gift orders via Web pages provided on the WWW. The gift orders specify a gift that is to be delivered to a recipient. The recipient may be identified by information that does not include the delivery address of the recipient. For example, the recipient may be only identified by a name and contact information such as an electronic mail address or a telephone number. The gift delivery system attempts to contact the recipient to obtain sufficient delivery information. If the contact is not successful, the gift delivery system searches various databases of information to identify additional contact information. If sufficient delivery information is obtained, the gift is delivered to the recipient and the gift giver is notified accordingly. If, however, sufficient delivery information cannot be obtained, the gift giver is notified that the gift cannot be delivered. Figure 10 is a flow diagram of the overall flow of the gift delivery system. In step 1101, the gift delivery system receives the order for a gift from a gift giver. In one embodiment, the order is received via access through a Web page, but may also be received via other modes of communication, such as a voice telephone call, postal mail, facsimile, or electronic mail. In step 1102, the gift delivery system attempts to contact the recipient of the gift. The gift order specifies contact information for the recipient, as an electronic mail address of the recipient. Based on the contact information provided with the gift order, an attempt via electronic mail is made to initially contact the recipient and gather sufficient delivery information. In step 1103, if the initial contact is successful, then the system continues at step 1106, else the system continues at step 1104. In step 1104, the system attempts to collect additional contact information. The system can obtain the additional contact information through various database sources using the information provided with the gift order. For example, the system can use the recipient's name or the recipient's electronic mail address to access Internet-based database systems. In step 1105, if the system obtains additional contact information from these additional sources, then the system loops to step 1102 to attempt to contact the recipient using the additional contact information, else the system continues at step 1111. In step 1106, the system collects delivery information from the successful contact. For example, if the successful contact is a phone call, the operator making the phone call preferably enters the delivery information. If the successful contact is an electronic mail exchange, the system preferably parses the recipient's reply message to collect the delivery information. In step 1107, the system verifies that the delivery information is correct. The system may use various databases, which contain lists of all proper street addresses, to verify the address. In step 1108, if the delivery information is verified, then the system continues at step 1109 to send the gift to the recipient, else the system continues at step 1111. In step 1109, the system sends the gift to the recipient. In step 1110, the system sends an electronic mail to the gift giver providing notification that the gift has been sent successfully. In step 1111, if sufficient delivery information could not be gathered or the delivery information could not be verified, then the system sends a message ( e.g ., via electronic mail) to the gift giver providing notification that the gift could not be delivered and is being placed on hold. In an additional embodiment (not shown), if an attempt to contact the recipient is unsuccessful in step 1103, then the system attempts to obtain additional delivery information for the recipient from sources other than the recipient, such as databases and other sources similar to those discussed below in conjunction with Figure 17. If the system is able to obtain sufficient delivery information for the recipient in this manner, the system preferably sends the gift to the recipient using the obtained delivery information. Figure 11 is a block diagram illustrating the components of the gift delivery system. Computer system 1201 contains a central processing unit, memory, and peripheral devices, such as a disk drive and CD-ROM. The gift delivery system includes an order entry system 1202 and an order delivery system 1203. The order entry system provides a user interface for a gift giver to input a gift order. The order entry system in one embodiment comprises a Web page that accesses a gift database 1204. The gift giver uses the Web page provided to select which gift should be sent to the recipient. In addition, the gift giver provides information describing the recipient. The order entry system then stores the order information in the order database 1205. The gift delivery system controls the locating of additional delivery information so that the gift can be successfully delivered to the recipient. The gift delivery system retrieves information from the order database and attempts to contact the recipient based on the information provided with the gift order. If the recipient cannot be contacted based on that information, then the gift delivery system accesses other database sources, such as the customer database 1206 and Internet-based databases 1208 to gather additional contact information for the recipient. Figure 12 is a state diagram illustrating the various states of a gift order. A gift order can be in one of six states: received, response pending, verifying delivery information, collecting additional contact information, on hold, and scheduled for delivery. Initially, when an order is received, the system places the order in the received state 1301. When the system attempts to contact the recipient using the information provided by the gift giver, the gift order changes to a response pending state 1302. The response pending state indicates that the attempt to contact is in progress, but no response has yet been received from the recipient. If a sufficient response is received from the recipient in the allotted time ( e.g ., 24 hours), then the gift order changes to the verifying delivery information state 1303. In the verifying delivery information state, the system attempts to verify that the delivery information is correct. If the delivery address is correct, then the gift order enters the scheduled for delivery state 1304. If the initial response was insufficient or not received in the allotted time, then the system places the gift order in the collecting additional contact information state 1305. In the collecting additional contact information state, the system searches additional sources of information to determine additional contact information about the recipient. If additional contact information can be found, then the system attempts an additional contact, and places the gift order in the response pending state 1302. If, however, additional contact information cannot be found, then the system places the gift order in the on hold state 1306. In a further preferred embodiment, if the initial response is insufficient, then the system places the gift order in a collecting additional delivery information state (not shown). In the collecting additional delivery information state, the system searches additional sources of information to obtain additional delivery information for the recipient. If the system is able to obtain sufficient delivery information in this manner, then the system places the gift order in the verify delivery information state 1303. Otherwise, the system places the gift order in the on hold state 1306. Figure 13 is a flow diagram of a routine that controls the receiving of gift orders. The receive gift order routine controls the interaction with the gift giver to select a gift from the gift database, to receive information on the recipient, to receive the payment, and to store the gift order in a database. This routine processes gift orders received electronically. One skilled in the art would appreciate that similar routines could be developed to handle other forms of receiving gift orders. In step 1401, the routine receives a request to send a gift from a gift giver to a recipient electronically via a Web page. In step 1402, the routine creates a session with the gift giver. The session is used to track the interaction with the gift giver and the gift delivery system. In step 1403, the routine receives the gift selection information. The gift selection information may be selected in response to a display of available gifts from the gift database. In step 1404, the routine receives recipient contact information from the gift giver. The recipient contact information may typically include the recipient's name and electronic mail address. In step 1405, the routine receives payment information. The payment information may be in an electronic form, such as a credit card, debit card, or digital cash, or in a conventional form, such as check or money order. If in conventional form, the gift order may be placed in an additional state waiting for receipt of the payment. In step 1406, if the payment is approved, then the routine continues at step 1408, else the routine notifies the gift giver that the payment has been denied. In step 1408, the routine assigns a gift order tracking number to the gift order. The gift order tracking number is used by the system to identify the gift order throughout its processing. In step 1409, the routine stores the gift order information in the gift order database. In step 1410, the routine notifies the gift giver that the gift order has been accepted. In step 1411, the routine ends the session with the gift giver. Figure 14 is a block diagram of a routine that controls the attempt at first contact of the recipient. The first contact is made with contact information provided by the gift giver, such as electronic mail address and telephone number. If sufficient information is not provided to even attempt to contact the recipient initially, the gift delivery system searches various databases to obtain such information based on the recipient's name. In step 1501a, if the recipient's electronic mail address has been provided in the gift order, then the routine continues at step 1501b, else the routine continues at step 1502a. In step 1501b, the routine sends an electronic mail to the electronic mail address provided. The electronic mail contains information indicating that a gift is to be sent to the recipient and requests delivery information for the gift. The electronic mail includes the tracking number assigned by the system so that when a reply mail is received, the gift delivery system can determined to which gift order it corresponds. In step 1502a, if the recipient's phone number has been provided, then the routine continues at 1502b, else the routine continues various other attempts to contact the recipient. For example, if a facsimile number was provided, a facsimile message is sent to the number. In step 1502b, the routine schedules an telephone contact with the recipient. The telephone contact could be via an automated voice telephone system in which a message is left with the person answering the phone or with an answering machine. Alternatively, a human operator may make the voice contact. After the contact is made, the gift order is placed in response pending state. Figure 15 is a flow diagram of a routine that controls the processing of the voice telephone contact. This routine can either display information for a human operator or provide information to an automated operator. In step 1601, if the telephone has been answered, then the routine continues at step 1602, else the routine leaves the gift order still scheduled for contact. In step 1602, if a message is left either with a person or a voicemail system, then the routine continues at step 1603, else the routine leaves the gift order still scheduled for contact. In step 1603, if a sufficient response has been received, then the routine continues at step 1605, else the routine continues at step 1604. In step 1604, the routine schedules the gift order for searching for additional contact information relating to the recipient. In step 1605, the routine updates the order database with the additional information about the recipient. In step 1606, the routine schedules the gift order to have its delivery information verified and changes its state to verifying delivery information. Figure 16 is a flow diagram of a routine that controls the processing of the response. The response can be via electronic mail, voice telephone, or facsimile message. In step 1701, if the tracking number is included in the response, then the routine continues at step 1702, else the routine continues at step 1704. In step 1702, the routine verifies the tracking number using the gift order database. In step 1703, if the tracking number has been verified, then the routine continues at step 1706, else the routine continues at step 1704. In step 1704, the routine attempts to find the tracking number based on the information provided in the response. In step 1705, if the tracking number can be found, then the routine continues at step 1706, else the routine continues at step 1707. In step 1706, if the response contains sufficient delivery information so that the gift order can be delivered, then the routine continues at step 1708, else the routine continues at step 1707. In step 1707, the routine schedules the order for searching for additional delivery information. In step 1708, the routine schedules the order to have its delivery information verified and changes its state to verify delivery information. Figure 17 is a flow diagram of a routine that controls the collecting of additional contact information. This routine searches various database sources based on the information provided in the gift order. For example, in step 1801, the routine searches Internet-based telephone and electronic mail directories, such as Switchboard, Four11, and Accumail. In step 1802, the routine searches various CD-ROM databases of telephone and electronic mail information, such as SelectPhone. In step 1803, the routine searches the local database of customer information. The local database of customer information contains information of previous recipients and gift givers. In step 1804, the routine searches various Internet-based search engines, such as Digital Equipment's Alta Vista or Infoseek's Ultraseek. In step 1805, the routine uses the electronic mail address or telephone number to identify the geographic location of the recipient. In particular, the routine accesses the InterNIC Registration Services of Network Services for the domain name registration of the recipient's electronic mail address. Alternatively, the routine accesses the standard table of area codes and telephone number prefixes to determine the geographic locale of the recipient. The gift delivery system can use each of these information sources, a subset of these information source, or additional information source to locate the additional information. In step 1806, the routine analyzes the retrieved information to determine the information that most likely corresponds to the recipients based on geographic or contextual matches. This analysis may be done electronically or interactively with a human operator. In step 807, the routine stores the retrieved and analyzed information and the gift order database. In step 808, the routine displays the information to a human operator and requests instructions on further processing. The instructions can either be to place the order on hold because sufficient delivery information has not been collected, send a contact to the recipient, or proceed with delivery of the gift. Figure 18 is a flow diagram of a routine that controls the verifying of the delivery information. The gift delivery system verifies the delivery information to ensure that the gift is being sent to a deliverable address. In step 1901, the routine checks the validity of the delivery information automatically. The routine uses a database of U.S. Postal Service addresses to determine whether the delivery address is a valid U.S. Postal Service address. In step 1902, if the address is valid, then the routine continues at step 1906, else the routine continues at step 1903. In step 1903, the routine prompts a human operator for manual verification of the address. In step 1904, if the operator has manually verified the address, then the routine continues at step 1906, else the routine continues at step 1905. In step 1905, the routine notifies the gift giver that the order cannot be fulfilled and places the order on hold. In step 1906, the routine schedules the gift for delivery and notifies the gift giver accordingly. Although the present invention has been described in terms of various embodiments, it is not intended that the invention be limited to these embodiments. Modifications will be apparent to those skilled in the art. The scope of the present invention is defined by the claims that follow.

Claims: A method in a computer system for ordering a gift for delivery from a gift giver to a recipient, the method comprising: receiving (1401, 1404) from the gift giver an indication that the gift is to be delivered to the recipient and an electronic mail address of the recipient; and sending (1409) to a gift delivery computer system an indication of the gift and the received electronic mail address, wherein the gift delivery computer system coordinates delivery of the gift by: sending (1501b) an electronic mail message addressed to the electronic mail address of the recipient, the electronic mail address requesting that the recipient provide delivery information including a postal address for the gift; and upon receiving the delivery information, electronically initiating (1701-1708) delivery of the gift in accordance with the received delivery information. The method of claim 1, wherein when the recipient does respond to the electronic mail message, the delivery information is automatically extracted from the electronic mail message. The method of claim 1 or 2, wherein the indication that the gift is to be delivered to the recipient and the electronic mail address of the recipient are received via access through a Web page. The method of one of the claims 1 to 3, wherein the electronically initiating includes: checking a database of valid addresses to determine whether the postal address can be determined to be a valid address; and when the postal address can be determined to be a valid address, indicating that the collected delivery information has been verified as including a valid delivery location; and when the address cannot be determined to be a valid address, prompting a person to indicate whether the address is valid; and when the person indicates that the address is valid, indicating that the delivery information has been verified as including a valid delivery location. The method of one of the claims 1 to 4 comprising, if the recipient does not provide delivery information including a postal address for the gift, collecting the delivery information from sources other than the recipient including: collecting information from one or more information sources that include an Internet-based telephone database, an Internet-based electronic mail database, a local telephone database, a local electronic mail database, a database of previous recipients and gift givers, an Internet-based search engine, and a database of information relating to the domain name registration of an electronic mail address of the recipient. The method of one of the claims 1 to 5 including, when the gift cannot be delivered to the recipient, notifying the gift giver that the gift cannot be delivered. A computer-readable medium containing instructions for controlling a computer system to coordinate the delivery of a gift given by a gift giver to a recipient, by a method comprising: receiving (1401, 1404) from the gift giver an indication that the gift is to be delivered to the recipient and an electronic mail address of the recipient; and sending (1409) to a gift delivery computer system an indication of the gift and the received electronic mail address, wherein the gift delivery computer system coordinates delivery of the gift by: sending (1501b) an electronic mail message addressed to the electronic mail address of the recipient, the electronic mail address requesting that the recipient provide delivery information including a postal address for the gift; and upon receiving the delivery information, electronically initiating (1701-1708) delivery of the gift in accordance with the received delivery information. The computer-readable medium of claim 7, wherein the indication that the gift is to be delivered to the recipient and the electronic mail address of the recipient are received via access through a Web page. The computer-readable medium of claim 7 or 8, wherein the electronically initiating includes: checking a database of valid addresses to determine whether the postal address can be determined to be a valid address; and when the postal address can be determined to be a valid address, indicating that the collected delivery information has been verified as including a valid delivery location; and when the address cannot be determined to be a valid address, prompting a person to indicate whether the address is valid; and when the person indicates that the address is valid, indicating that the delivery information has been verified as including a valid delivery location. The computer-readable medium of one of the claims 7 to 9, comprising, if the recipient does not provide delivery information including a postal address for the gift, collecting the delivery information from sources other than the recipient including: collecting information from one or more information sources that include an Internet-based telephone database, an Internet-based electronic mail database, a local telephone database, a local electronic mail database, a database of previous recipients and gift givers, an Internet-based search engine, and a database of information relating to the domain name registration of an electronic mail address of the recipient. The computer-readable medium of one of the claims 7 to 10 including when the gift cannot be delivered to the recipient, notifying the gift giver that the gift cannot be delivered. The computer-readable medium of one of the claims 7 to 9 comprising, if the recipient does not provide delivery information including a postal address for the gift, collecting the delivery information from sources other than the recipient including: collecting information from a database of information relating to the domain name registration of an electronic mail address of the recipient. The computer-readable medium of one of the claims 7 to 9 comprising, if the recipient does not provide delivery information including a postal address for the gift, collecting the delivery information from sources other than the recipient including: collecting information from an Internet-based electronic mail database. The computer-readable medium of one of the claims 7 to 9 comprising, if the recipient does not provide delivery information including a postal address for the gift, collecting the delivery information from sources other than the recipient including: collecting information from a local electronic mail database. The computer-readable medium of one of the claims 7 to 9 comprising, if the recipient does not provide delivery information including a postal address for the gift, collecting the delivery information from sources other than the recipient including: collecting information from a database of previous recipients or gift givers.

Inventors: BEZOS JEFFREY P, KAPHAN SHEL, BEZOS, JEFFREY, P., KAPHAN, SHEL
Applicants: AMAZON COM INC, AMAZON.COM, INC.
Application year: 1998
Main classification: G06F17
IPC codes: G06Q20, G06Q30