METHODS AND APPARATUS FOR DELIVERING COMPARATIVE
SHOPPING INFORMATION WITHIN AN INTERACTIVE
COMMUNICATIONS NETWORK
Cross-Reference to Related Application This application claims the benefit of prior copending U.S. Provisional
Patent Application Serial No. 60/154,626, filed September 17, 1999.
Technical Field
The present invention relates broadly to communications systems and, in particular, to methods and apparatus for automatically comparing offers from competing vendors on an interactive communications network.
Background of The Invention
Interactive communications network services are provided by different companies called network access providers, to which users are connected via network access devices. Popular networks include, but are not limited to, the Internet, public and private intranets, and proprietary online services such as America OnLine ("AOL") or CompuServe (for all of which the preferred network access device is an electronic programmable digital computer), as well as ground-based wireless (e.g., "cellular") telephone networks, satellite- based wireless communications networks (usually utilizing one or more satellites, either in geosynchronous or in low Earth orbit) and interactive ground-based wired (e.g., "cable") television networks (for all of which, at least at the present time, other types of network access devices may be
appropriate). While the most preferred embodiment of the invention relates to an implementation thereof on the global hard-wired network of computers known today as the- Internet, the invention can alternatively be implemented on other interactive communications networks.
Nowadays, the Internet has become the most popular public interactive communications network, with major backbones and smaller networks branching from and connected to these backbones. These branches, in turn, have other, smaller networks branching away from them, leading to a distributed, hierarchical structure. The information passing between these networks and the computer systems attached to them is routed to the destination computer machines by hardware devices called routers. A detailed description of the structure of the Internet can be found in Hahn, Harley, The Internet Complete Reference, 2nd Edition, Osborne McGraw-Hill, 1996 (ISBN 007882138X).
Currently, the most popular portion of the Internet is the World Wide
Web. It allows the connected computer machines to send multimedia data across the Internet to other computer machines based on a protocol called HTTP. The most common format for that data is HTML. A service offering HTML data for download is called a website, and software for downloading such HTML data is called a browser. The best known browsers today are Microsoft Internet Explorer, available from Microsoft Corporation of Redmond,
Washington, U.S.A., and Netscape Navigator, available from Netscape Communications Corporation of Mountain View, California, U.S.A. Websites are operated by so-called content providers. Well known content providers are, for example, Yahoo! at the URL http://www.yahoo.com or Lycos at http://www.lycos.com or The Weather Channel at http://www.weather.com or ZDNet at http://www.zdnet.com.
Recently, online shopping over the World Wide Web has become more and more popular, and a small, but rapidly growing, percentage of all retail business is being conducted over the Internet. In particular, more and more retail businesses are making complete product catalogs available on the Web; for some of these vendors, each of the catalog pages is itself deemed to constitute an actual sales offer, while for others, separate order forms are made available and only the latter are deemed to constitute an actual sales offers; as used herein, the terms "online offer" and "online sales offer" will collectively refer to either or both of these online product purchasing modalities.
Structurally, these "online shops" usually consist of a computer machine connected to the Internet on which online shopping server software is continuously being executed. This shopping server software waits for customer requests, and answers those requests with demanded HTML pages from the online shop's electronic catalog. In addition, the shops' server
software usually includes search functionalities which can generate an HTML page that displays a given product. Another functionality of a typical online shopping server systems is to make available an online virtual "shopping cart" into which the user can "put" one or more products chosen for purchase during one shopping session. And to accept online sales offers, these shopping server systems provide the user with HTML forms to enter contact and shipping information. A typical example of an online shop is Amazon.com at the URL http://www.amazon.com. Although nowadays the great majority of such online shops typically offer for sale only tangible products (e.g., books, apparel, pre-recorded multimedia materials such as audio and video recordings, etc.), in principle the provision of services could also be the subject of such online sales offers; therefore, as used herein, the term "product" should be understood as referring to both tangible goods and intangible services.
From the purchaser's perspective, the user usually points a browser to such a shop, searches for a product in the shop, and then, if it is found and a purchase decision is made, the user puts it into the shop's online shopping cart. After performing these steps for all products that the user desires to order from the given shop, the user enters contact and payment details and submits the order via an online form. Thus, online shopping is analogous to conventional mail order shopping, with the exception that the user browses an online catalog (instead a paper one) and communicates with the vendor
electronically.
Similar infrastructures and shopping services also exist at websites that are not typically considered online shops. For example, on its proprietary system AOL offers to its subscribers a virtual "shopping mall." Similar infrastructures and shopping services also exist for other interactive communications networks. While these networks may look different from the Internet, the shopping services that they host are, from a technical point of view, closely related to the principles behind online shopping on the Internet.
Since there is usually more than one online shop that offers the product for which a user is looking, it would be worthwhile to have a system that automatically collects offers for a given product from several shops, so that the user ςan evaluate the different offers, e.g., by price or delivery time, etc., and then point the user's browser to the shop of choice. Such services have existed on the Internet for a few years. DealPilot.com (formerly known as Acses) at the U RL http://www. dealpilot. com (formerly at http://www.acses.com) is a good example of such a comparison shopping engine.
However, comparison shopping services like DealPilot.com have some limitations. If the user has found a product that the user wants to order over the Web, but wants to see competing offers before making a purchase decision, the user must leave the currently-browsed online shop, where the
product of choice was found, and must point the browser to the comparison shopping service's website, where the user must identify and search for this product again, thus taking some time, effort and knowledge about how to use the comparison shopping service in detail. Then the user must leave the comparison shopping service's website and jump to a selected online shop (either to a new online shop or back to the one originally browsed. Therefore, a typical comparison shopping session can take up to several minutes for a single product.
For many users, this kind of online comparison shopping, although it may help them to find better offers, is just too tedious and complex and too difficult to operate, and thus many online shoppers do not use the current website-based comparison shopping services. Therefore, there is a need for a much more easy-to-handle and more intuitive system for comparison shopping on the Internet. A more efficient system would allow the user to continue to browse a favorite online shop, while at the same time allowing the user to compare offers from competing shops. Such a system also would not require the user to search for and identify the desired product again on another website. In addition, such a system would allow the user to perform an offer comparison with only a few mouseclicks, and would allow the complete comparison shopping process to take place in only a few seconds.
Summary of the Invention
The system of the present invention overcomes the difficulties
discussed above by providing an advanced online comparison shopping system. In particular, the present invention is a system that monitors the user's activity on an interactive communications network, and if the user receives a sales offer for a -product from an online vendor on the associated network access device, the system (in a preferred embodiment) automatically collects competing offers from online vendors. These competing offers are then presented to the user on the user's network access device, and the user can thereafter decide whether to direct that network access device to one of the competing offers in one of the other online shops, or to "stay" in the current shop.
Preferably, the present invention consists of at least one comparison shopping server system, that is interconnected with and interacts with one or more comparison shopping client systems, and that is also interconnected with and interacts with one or more online shops, all through an interactive communications network; in its currently most preferred embodiment, the invention is implemented for use on the interactive communications network known as the Internet.
More preferably, the at least one comparison shopping server system comprises a comparison shopping server module which is executable on at least one comparison shopping server network access device (most preferably a computer machine at a server station, sometimes also referred to herein as
a "comparison shopping server machine" or simply as a "server machine"), and each of the comparison shopping client systems comprises a comparison shopping client module which is executable on a comparison shopping client network access device (most preferably a computer .machine at a client station) operable by a consumer user (each such client station computer machine will also sometimes be referred to hereinafter as a "comparison shopping client machine" or simply as a "client machine"). Even more preferably, there is only one comparison shopping server machine, and most preferably, the comparison shopping server module and each of the comparison shopping client modules are implemented as software.
The client module can be an extension of the user's network access device (i.e., a "standalone" computer program) or, less preferably, an extension of the user's browser system (i.e., a browser "plug-in" computer program), or both, but in any case the client software has to be installed on the user's network access device (the client machine) before the first use. The server machine is a network access device that is continuously running the server module software and is permanently connected to the Internet, enabling it to await and receive requests from one or more installed client systems, and to process and respond to such requests; on a continuous basis.
In this embodiment, the comparison shopping client system is directed to monitor the user's browser activities, by ascertaining sequentially, in real
time, the URLs requested by the browser and the informational content of those URLs. Thus, the client steadily monitors the user's Internet "surfing" actions and checks whether a product offer is-currently displayed in the user's browser, in which case the client system contacts the comparison shopping server system and sends the current URL or its informational content to the comparison shopping server system. The latter then identifies the currently- browsed shop and the product of interest, by extracting, from the information sent by the client, certain shop- and product-specific information, such as the server name, the product code, the name of the product or information about the product, e.g. the International Standard Book Number ("ISBN") for a book, or the author of a book.
After the shop and the product are identified, the comparison shopping server system collects offers for the identified product from competitors of the identified shop, either in real time (via HTTP) from the websites of those competing shops, or from "offer files" periodically sent to the server system by those shops. The collected offers are then parsed by the server to extract key information about them, e.g., the prices and other customer service attributes such as availability information. This information is then sent back as an answer to the comparison shopping client system which, in turn, displays this information to the user. The user can then select one of the alternative offers displayed by the comparison shopping client, and this will cause the client to point the user's browser to the corresponding product offer in the selected
altemative shop.
Another feature of the present invention is that .the comparison shopping client can optionally be directed to query the user for information about the user's geographic location, specifically, a delivery address. This shipping information can then be sent to the comparison shopping server, so that the server can calculate, for each competing product offer, the associated shipping costs, the estimated sales taxes, and other costs (if any) that each particular user would have to pay (if a purchase decision were to be made), thereby "customizing" the offer information delivered to each user.
Thus, the invention informs the user about offers for the same product from competitors of the currently-browsed online shop, and allows the user to compare prices as well as other customer service attributes (such as the shipping options and the corresponding delivery times) and optionally, to ascertain the additional charges (e.g., shipping costs and estimated sales taxes, if any), associated with an offer for the given product. The user need not "leave" the currently-browsed online shop, and there is no need to search for and identify the product all over again at a comparison shopping website. In addition, the invention allows the user to perform the comparison shopping process with only a few mouseclicks and within several seconds.
Brief Description of The Drawings
These and other objects, features and advantages of the present invention will become more apparent from the detailed description of the most preferred embodiment thereof, when read in conjunction with the accompanying drawings, wherein;
FIG. 1 is a" block diagram of the preferred system of the present invention and shows the communications between the user's browser, the comparison shopping client, the comparison shopping server, an online shop and some competitors of this online shop;
FIG. 2 is a block diagram of the preferred system of the present invention showing the communications between many browsers, comparison shopping clients, the comparison shopping server and many online shops;
FIG. 3 is a high level flow chart showing the comparison shopping process carried out with the present invention;
FIG. 4 is an operational flow diagram of the comparison shopping client;
FIG. 5 is an operational flow diagram of the comparison shopping
server;
FIG. 6 is an illustrative diagram showing an example of a computer screen display generated at a client computer station by the system of the present invention (such- a diagram will hereinafter be referred to as a
"screenshot"), as a user "visits" a sample online shop via a browser and looks up a product;
FIG. 7 is a screenshot in which the comparison shopping client is notifying the user that it has recognized a product offer in the user's browser;
FIG. 8 is a screenshot in which the comparison shopping client is retrieving information about the offered product;
FIG. 9 is a screenshot in which the comparison shopping client is displaying a competing offer;
FIG. 10 is a screenshot in which the comparison shopping client is displaying several competing offers;
FIG. 11 is a screenshot in which the user has selected one of the alternative competing offers presented by the comparison shopping client in FIG. 10;
FIG. 12 is a screenshot in which the user's browser is being pointed by
the comparison shopping client to the URL of the selected alternative offer; and
FIG. 13 is a screenshot in which the comparison shopping client is allowing the user to change certain personal settings.
Detailed Description of The Preferred Embodiment
Glossary of Terms and Acronyms
Interactive communications network: A distributed communications network in which a user has a realtime connection to other entities connected to the network (e.g., in the context of this invention, to one or more content providers). For example, classic radio is not interactive while radio-over-the-
Internet has some interactive elements. The most popular interactive communications network today is the Internet.
Network access device: A device providing a user with access to an interactive communications network. Well known network access devices include, but are not limited to, home personal computers, Internet terminals, interactive kiosks, cell phones and interactive digital televisions.
Online: A state in which a direct or packet oriented connection exists between a content provider and a network access device, such that information may be transmitted or received over an interactive communications network.
Online shop: A content provider on an interactive communications
network that offers products or services for sale.
Hypertext Transport Protocol (HTTPV. The standard World Wide Web client-server protocol used for the exchange of information (such as HTML documents, and client requests for such documents) between a Web browser and a Web server. HTTP includes a number of different types of messages which can be sent from the client to the server to request different types of server actions. For example, a "GET" message, which has the format GET, causes the server to return the document or file located at the specified Universal Resource Locator (URL).
Client-Server: A model of interaction in a distributed system in which a program at one site sends a request to a program at another site and waits for a response. The requesting program is called the "client," and the program which responds to the request is called the "server." In the context of this invention, a data source that is offering informational content on an interactive communications network (e.g., an online shop) is called a "server," while a network access device communicating with and receiving informational content from such a server is called a "client." For the World Wide Web, the client software is typically a "Web browser" (or just a "browser") which runs on a user's computer machine; the program which responds to Web browser requests at a website is commonly referred to as a "Web server."
Internet: A global collection of interconnected (public and/or private) computer networks that are linked together by a set of standard protocols to form a distributed network. While this term is intended to refer to what is now commonly known as the Internet, it is also intended to encompass variations which may be made in the future, including changes and additions to existing standard protocols.
Intranet: A private or otherwise isolated part of the Internet, often with restricted access.
HvperText Markup Language (HTML): A standard coding convention and set of codes for attaching presentation and linking attributes to informational content within documents. (HTML 2.0 is currently the primary standard used for generating Web documents.) During a document authoring stage, the HTML codes (referred to as "tags") are embedded within the informational content of the document. When the Web document (or "HTML document") is subsequently transferred from a Web server to a Web browser, the codes are interpreted by the Web browser and used to parse and display the document. In addition to specifying how the Web browser is to display the document, HTML tags can be used to create links (commonly referred to as
"hyperlinks") to other websites and other Web documents. For more information on HTML, see Graham, Ian S., The HTML Source Book, John
Wiley and Sons, Inc., 1995 (ISBN 0471-1 1894-4).
Universal Resource Locator (URL): A string of alphanumeric characters and other symbols which together comprise a unique address that "points to," i.e., fully specifies the location of, a file or other resource on the Internet; such an address is also sometimes called a Uniform Resource Locator. The general format of a URL is protocol.7/machine address.port/path/filename. The machine address is usually set forth either in a standard numeric format or, more commonly, in an alphanumeric "domain name" format; the path and filename are usually set forth in alphanumeric characters as well. The port specification is optional, and if none is entered by the user, the Web browser defaults to the standard port for whatever service is specified as the protocol. For example, if HTTP is specified as the protocol, the Web browser will use the HTTP default port.
. Browser: Hardware and/or software that can download HTML or other informational multimedia content delivered from a URL, via HTTP or otherwise, and that can display it on a user's network access device.
World Wide Web ("Web") : Used herein to refer generally to both (1) a distributed collection of interlinked, user-viewable hypertext documents (commonly referred to as "Web documents" or "electronic pages" or "home pages") that are accessible via the Internet, and (2) the client and server software components which provide user access to such documents using standardized Internet protocols. Currently, the primary standard protocol for allowing applications to locate and acquire Web documents is the Hypertext
Transfer Protocol (HTTP), and the electronic pages are encoded using the Hypertext Markup Language (HTML). However, the terms "Web" and "World Wide Web" are intended to encompass all markup languages and transport protocols which have been developed previously and/or will be developed in the future, and which may be used in place of or in addition to the Hypertext Markup Language and the Hypertext Transfer Protocol, respectively.
Shop URL: A URL containing or including the machine address (either in numeric form or in domain name form) of a computer machine running server software through which an online shop operates. The term is also used herein to refer only to the alphanumeric machine address (domain name) portions of such URLs.
Relevant URL: A shop URL which identifies the specific location, on the server machine of the associated online shop, of a file or other resource that may contain an online offer.
Offer URL: A shop URL which identifies the specific location, on the server machine of the associated online shop, of a file or other resource that contains an online offer.
Implementation of the Offer Comparison System
As stated hereinabove, the most preferred embodiment is an
implementation of the present invention on the Internet. Therefore, the accompanying drawing figures and the explanations given hereinbelow describe an offer comparison system on this public computer network. In this most preferred embodiment, each network access device is a computer machine which can be a "desktop," and/or a "laptop," and/or even a hand-held or "palmtop" computer machine.
In this embodiment, the invention most preferably comprises a central comparison shopping server system, comprising only one server module that is executable and is being executed (i.e., is "running") on a separate (most preferably dedicated) comparison shopping server computer machine, and that is interacting with a plurality of comparison shopping client systems, each of which comprises a client module that is executable and is running on a separate comparison shopping client computer machine. However, it is still within the scope of the most preferred embodiment of the present invention to have a plurality of comparison shopping server systems instead of just one, with each server module being "distributed," i.e., either fully integrated or merged with, or running alongside and "paired" with, a respective client module, on each user's on network access device. It is also within the scope of the most preferred embodiment of the present invention to have each comparison shopping client module fully integrated or merged with each user's respective browser module, or even with some other application that is executable on the client computer machine, rather than each client module
being a "standalone" computer program or a browser "plug-in," and the same is possible for the plurality of distributed comparison shopping server modules if the invention is implemented such that more than one such server module exists, as described above.
Referring now to the drawings, and particularly to FIGS. 1-2 thereof,
FIG. 1 is a block diagram of the preferred embodiment of the present invention and presents an overview of the ways in which the different elements in the system interact. In general, this diagram illustrates the communications among a single user's browser, the comparison shopping client, the comparison shopping server, an online shop and several competitors of that online shop, as described in more detail hereinbelow.
Block 100 denotes the user's Internet access device, usually a personal computer, with block 101 denoting the browser running on this device and block 102 denoting the comparison shopping client also running on this device, the client communicating with the browser via a conventional interprocess communications system, such as the DDE system or the OLE system, both of which are available from Microsoft Corporation of Redmond, Washington. Block 103 represents a conventional Internet server, through which the browser communicates with an online shop, represented by block 104; block 105 represents yet another conventional Internet server, through which the comparison shopping client communicates with the comparison shopping server, represented by block 106. In brief, as the user's browser
accesses the Online Shop 1 though Internet Server 1 , the comparison shopping client monitors the offers (if any) displayed in the browser, contacts the comparison shopping server through Internet Server 2, and sends information about the current offer to the comparison shopping server.
The comparison shopping server also communicates with Online Shop
1 , and with a plurality of competing online shops as well, represented by blocks 107, 109 and 1 1 1 , through still other Internet servers, represented by blocks 108, 110 and 112, respectively. In brief, the comparison shopping server contacts Online Shop 1 (a competitor of the online shop currently being browsed by the user) through Internet Server 1 , and requests an offer. The comparison shopping server also contacts other competing online shops (Competitor 1 , Competitor 2...Competitor X) through their respective Internet servers to collect additional competing offers, until a pre-set maximum amount of time has been consumed. Then the comparison shopping server sorts the collected offers and transmits them to the comparison shopping client, which thereafter displays these competing offers to the user, either immediately or upon request, through the user's browser.
FIG. 2 is a block diagram of the preferred embodiment of the present invention showing the communications among multiple users' browsers, their respective comparison shopping clients, the comparison shopping server and multiple online shops, as described in more detail below.
Block 200 denotes the Internet access device of one user, running a browser represented by block 201 , and a comparison shopping client represented by block 202. These components cooperate as shown in FIG. 1 and as described hereinabove. However,_ as an extension of FIG. 1 , FIG. 2 also illustrates a plurality of additional users, each with an Internet access device, on which a browser and a comparison shopping client are running, represented by blocks 203, 204 and 205, respectively. All of the comparison shopping clients 1. . .X communicate with one comparison shopping server represented by block 207, through one conventional Internet server Y, denoted by block 206. Blocks 208 and 210 represent conventional Internet servers 1. . .Z, through which each of the browsers 1. . .X communicates with a single one of the respective online shops 1. . .Z, represented by blocks 209 and 211 , and through which the comparison shopping server also communicates with any or all of the online shops 1. . .Z.
In brief, as the different users access different online shops running on different Internet servers, their respective comparison shopping clients contact the comparison shopping server, which in turn contacts the group of online shops to collect competing offers, and then sends the collected offers back to each of the respective comparison shopping clients. The comparison shopping server machine and software are preferably equipped to process and keep track of requests from, and to send responses to, a plurality of comparison shopping clients, in real time and, from the user's point of view,
virtually simultaneously; they are also preferably equipped to send requests to, and obtain responses from, a plurality of online shops, simultaneously and in parallel.
Referring now, in addition to the aforementioned FIGS. 1-2 of the drawings, to FIGS. 3-5 (wherein the comparison shopping client system is denoted as "the "CS Client" and the comparison shopping serve? system is denoted as the "CS Server"), FIG. 3 is a high level functionality flow chart showing the comparison shopping process within the present invention. It displays the typical steps for a single comparison shopping session. At start state 300, the process initializes and moves to state 301 , where the user has received a product offer screen in his browser. Proceeding to state 302, the comparison shopping client software now becomes active; it contacts the comparison shopping server machine and sends the offer information. At state 303, the comparison shopping server identifies the product that is the subject of the offer, and thereafter searches for and collects offers for that product from competitors of the online shop currently being browsed by the user. Moving to state 304, the competing offers are then sent from the comparison shopping server to the comparison shopping client, which displays these offers to the user, either immediately (which is preferred) or upon request, at state 305. Proceeding to state 306, the user can now select one of these competing offers, and at state 307 the comparison shopping client then points the users' browser to the URL of the selected offer, whereupon the
process ends at end state 308.
FIG. 4 is a more detailed, operational flow diagram that focuses on the operational states of the comparison shopping client software. In general, it illustrates the functions that such software and the comparison shopping client machine must perform, as well as the sequence in which those functions are to be performed, during a comparison shopping session.
Specifically, beginning at start state 400, the comparison shopping client software module is launched by the user in a conventional well-known manner, either manually, such as by invoking it from the operating system of the user's network access device (either from a command processor, using a system command, or from a graphical user interface), or automatically, i.e., the client software can be installed such that it will be launched automatically each time the user's network access device is started, a feature that is also well known in the art.
In either case, after launch the client software will initially run "in the background" (i.e., without any visible indication of its operation on the display screen of the user's network access device), while it determines whether the user's network access device is connected to the Internet. If so, as its first action the client software obtains (at state 401) a list of shop URLs by sending a request to, and receiving a response from, the comparison shopping server, which maintains for this purpose a list of the shop URLs of all online shops
known to the administrators of the server. The comparison shopping client uses this list in a subsequent state to determine whether the URL to which the user's browser is currently pointing is a shop URL. This list of shop URLs is preferably maintained in a simple ASCII text file, most preferably containing one shop URL per line, but the text can be arranged in other ways, and the list of shop URLs can also be maintained in other, more complex data storage arrangements, such as in a formal database structure.
As stated previously, upon launch the client software preferably first determines whether an Internet connection is available, and if so, the list of shop URLs is retrieved from the server machine at that time. Otherwise, if no Internet connection is immediately available, the client software goes into a wait state (not shown) until such a connection is established, after which the list of'shop URLs is retrieved from the server machine by the client. As will be apparent to those skilled in the art, the comparison shopping client software receives a "fresh" up-to-date list of shop URLs from the server machine virtually every time that the client software is launched on the user's network access device (except in the rare instances in which an Internet connection is not subsequently established before the client software is terminated or the user's network access device is powered down).
However, for those users whose network access devices are powered on continuously and are continuously connected to the Internet, and on which the comparison shopping client software is also continuously running, it is
contemplated that the client software will update its list of shop URLs periodically, preferably once a day. In the preferred embodiment, this is accomplished automatically by causing the client software to monitor the system clock on the client machine, and to refresh its list of shop URLs by retrieving a replacement list from the server machine once every twenty-four hours. Most preferably this update occurs twenty-four hours after the client software is initially launched on the user's network access device, and in twenty-four hour intervals thereafter; in this manner, the requests for a list of shop URLs from a plurality of comparison shopping client installations are distributed more-or-less evenly over each twenty-four hour period, and the performance of the comparison shopping server is not adversely affected, as would be the case if, for example, all of such requests were received at once, at a fixed time of day. It is to be understood, however, that even a user who is continuously connected to the Internet can, if desired, force the client software to update its list of shop URLs at will (i.e., more frequently than every twenty- four hours), simply by terminating and thereafter re-launching the client software.
Although it is within the scope of the invention to cause the client software to automatically retrieve a current list of shop URLs from the server even more frequently, e.g., each time the user's browser is pointed to a new
URL (which, in some cases, might occur dozens or perhaps even hundreds of times in one day), this implementation is not preferred because it would put a
greater load on the comparison shopping server software without a concomitant improvement in the overall performance of the comparison shopping system.
After the list of shop URLs is initially retrieved, the client software then determines whether any browser software is running on the user's network access device, and if so, the client software sends, via an interprocess communication system, a request to the browser to notify the client software in the future (through that same interprocess communication system) each time a new URL is loaded into the browser. Finally, the client software "registers" with the operating system to insure that it receives future notification if and when the user opens one or more separate browser windows, so that the activities in those windows can be monitored as well. The detailed initiation steps described above in this paragraph are not shown in the drawings in order to facilitate an understanding of the overall comparison shopping process.
Proceeding to state 402, if the user's browser (in its active window) is already pointing to a particular URL, then the client software begins to process that URL, as set forth in more detail below; otherwise, if the user's browser is not already pointing to a URL, the comparison shopping client goes into a wait state until a request is received from the user, or until the user's browser is pointed to a URL. As soon as this happens, the comparison shopping client software first determines, at decision state 402A, whether the user has sent a
request, and if so, whether the user is requesting that the client software program be terminated; if so, the process moves to end state 409. Otherwise, the process continues and moves to an optional decision state 402B (which will not be described now, but will be described hereinbelow in connection with an optional "personal profile" feature of this invention), after which it is assumed that all possible user requests have been processed, and that the user's browser has therefore been pointed to a URL.
The client software, at decision state 403, thereafter compares the URL to which the user's browser is currently pointed to the list of shop URLs retrieved previously from the comparison shopping server, in order to determine whether the current URL is among those on the list (i.e., whether it is a shop URL and therefore must be sent to the comparison shopping server for further processing). If not, the process moves back to state 402, and the comparison shopping client waits until a new request is received from the user, or the user's browser is pointed to a new URL.
Otherwise, at state 404, the comparison shopping client sends the current URL to the comparison shopping server, and waits for the comparison shopping server to respond. Preferably, the transmission of the current URL to the server, which initiates a comparison shopping session, takes place automatically; however, it is within the scope of the present invention to require the user to provide manual confirmation that a comparison shopping session should proceed (such a confirmation requirement would be
particularly advantageous when used in conjunction with a "batch" mode for the present invention, as described in further detail hereinbelow).
Also preferably, the comparison shopping client machine initially sends only the current URL itself to the comparison shopping server. However, as will be described in further detail hereinbelow, there are certain circumstances under which the client may later be required also to send to the server the informational content of the current URL, that is, the actual text and HTML tags of the file or other resource on the Internet to which the current URL points.
Also at state 404, the client software preferably begins to display automatically an indication to the user (not shown in FIG. 4) that a comparison shopping session has begun. In the preferred embodiment of the invention, the operating system of the user's network access device provides a conventional graphical user interface using .well known "windowing" technology, and the client software utilizes that technology to interface with the user. More preferably, the interface that the client software displays includes an "application bar" (a special window which is known in the graphical user interface programming art, characterized in that it appears "attached" to a screen border, and cannot be "overlaid" by any other windows, thus maintaining its visibility to the user); most preferably, the application bar is subdivided into several components, each of which either displays information to, or provides facilities for acceptance of input from, the user.
The application bar preferably remains visible to the user throughout the current comparison shopping session, and also preferably becomes invisible (i.e., is "hidden") automatically when the current comparison shopping session ends (i.e., when the user's browser is subsequently pointed. to a URL that is not a shop URL, or is pointed to a shop URL that is not an offer URL); however, optionally the user can be provided with a facility with which to cause the application bar to be displayed and/or hidden manually, at any time, provided that the client software is still running on the user's network access device. The layout and features of the application bar that are preferred for use with the present invention will be described in further detail hereinbelow, along with the other components of the client software's preferred graphical user interface.
• Moving now to decision state 405, if the comparison shopping server sends back a "null" response (i.e., a response containing no competing offers), which happens either because the current URL is not an offer URL, or because no competing offers were located by the server, then an "empty list" of competing offers, or some other appropriate notification, may optionally be displayed to the user (preferably within the application bar), after which the client software's preferred graphical user interface preferably becomes hidden automatically, and the process moves back to state 402, where the comparison shopping client waits until a new request is received from the user, or the user's browser is pointed to a new URL. Otherwise, the
comparison shopping client displays, at state 406, a plurality, or perhaps even all of the competing offers transmitted by the comparison shopping server, either upon request from the user, or preferably automatically (i.e., without such a request). The automatic display mode is preferred only -because the manual display mode would require the user to take some affirmative action, such as pointing to and selecting, or "clicking on," a portion of the client software's graphical user interface, in order to see the transmitted competing offers.
Most preferably, the competing offers are displayed automatically in a window which "pops up" from the client software's preferred graphical user interface, and the competing offers are arranged within that window in a particular sequence, i.e., in the same sequence in which they were transmitted to the client machine by the comparison shopping server machine; the preferred transmission sequence corresponds to the sequence in which the server software sorts the competing offers, which will be described in further detail hereinbelow. However, it should be understood that other automatic display modes are possible, e.g., just the "best" competing offer (that is, the
"first" one transmitted) can be displayed initially in the client software's preferred graphical user interface, thus requiring the user to take some action (such as "clicking on" that portion of the user interface in which the "best" offer is displayed) in order to see many more, or perhaps even all, of the competing offers, which would preferably be displayed in a "pop up" window such as that
described above.
Optionally, each user may be afforded an opportunity to choose among the available display modes (e.g., to choose among the manual display mode and either one of the two different automatic display modes described above), but in these cases, if no such choice is made by a particular user, the system will be programmed" to utilize, by default, the display mode that is described above as being most preferred.
After the competing offers are displayed to the user, the comparison shopping client proceeds to decision state 407, where it first waits to determine whether or not the user actually selects one of the displayed competing offers. If a competing offer is selected, then the comparison shopping client, at state 408, points the user's browser (through an interprocess communications system) to the URL of that offer (either by replacing the current URL in the user's browser with the URL of the selected competing offer, or, less preferably, by opening a new browser window and pointing it to the URL of the selected competing offer). It will be apparent to those skilled in the art that the selection by the user of one of the competing offers, which causes the associated "new" offer URL to be inserted into the user's browser at this time, even if at the behest of the client software, could immediately trigger another comparison shopping session, thus possibly causing user confusion. However, the client software may optionally be programmed to recognize whether any new URL in the user's browser was
actually inserted therein by the client software itself, and if so, to avoid immediate initiation of another comparison shopping session for the very same product.
At the same time that a competing offer is selected by the user, the "pop up" window (listing all of the competing offers found) will preferably close; most prefer-ably, the "pop up" window should close either upon the user "clicking" on the screen anywhere outside of that "pop up" window, or upon selection by the user of one of the competing offers displayed within that window, but in either case, after the "pop up" window closes, the client software's preferred graphical user interface will preferably remain open and visible, and most preferably will continue to display just the "best" competing offer that was transmitted by the server. (Optionally, the user may also be provided with the ability to close the "pop up" window manually, by "clicking" on a standard "close button" which can be displayed thereon for this purpose, preferably in the upper right corner thereof.) Also, after the "pop up" window closes, preferably the user is provided with the option to re-open it again thereafter, at any time within the same comparison shopping session, (e.g., by "clicking" on that portion of the client software's preferred graphical user interface in which the "best" offer is displayed), so that the user may then select, repeatedly if desired, and in any sequence, either just one, or several, or all of the competing offers that were found and transmitted by the server.
After the user has finished reviewing the competing offers presented at
state 408, the process thereafter moves back to state 402; if the user does not select any of the competing offers for review, then the process returns to state 402 without passing through state 408. In either case, the client then waits until a new request is received from the user, or the user's browser is pointed to a new URL. Preferably, unless the comparison shopping client software is affirmatively terminated by the user, or the user's network access device is powered down (intentionally or otherwise), the client software, after it is launched, continues to run on the user's network access device, even if the user's browser software is terminated or the user's Internet connection is severed.
FIG. 5 is a detailed, operational flow diagram that focuses on the operational states of the comparison shopping server software, and in general it visualizes the functions that such software and the comparison shopping server machine must perform, as well as the sequence in which those functions are to be performed, during a comparison shopping session.
Specifically, at start state 500, the server initializes and determines, at decision state 500A, whether the operator has sent a request, and is requesting that the server software program be terminated; if so, the process moves to end state 506. Otherwise, the process continues and moves to wait state 501 , until the server receives requests from one or more comparison shopping clients. For each such request, the server software first determines, at decision state 501A, whether the particular client is simply requesting the
list of shop URLs discussed hereinabove; if so, the process moves to state 501AA, where the server transmits the current list of shop URLs to the client, and the process then returns to decision state 500A. Otherwise, the process moves to an optional decision state 501 B (which will not be described now, but will be described hereinbelow in connection with an optional "personal profile" feature of this invention), after which it is assumed that the request from the server contains a shop URL to which a user's browser has been pointed.
When such a request is received from a comparison shopping client, specifying a shop URL, the comparison shopping server software assumes that the URL transmitted by the comparison shopping client in that request is a relevant URL, and it then checks, at decision state 502, whether that URL contains information from which it may be possible to conclude that that URL actually points to an offer (for which competing offers could possibly be collected later by the system). This determination is made by parsing the relevant URL and thereby identifying the online shop to which the relevant
URL points, and by then comparing the remaining portions of the relevant URL with an internal database containing the corresponding portions of offer URLs from that online shop (this database is also maintained for this purpose on the comparison shopping server machine by the server software). Thus, the database contains information specifying, for each known online shop, the manner in which to recognize, from the relevant URL itself, whether or not it
actually points to an offer from that shop (i.e., whether that relevant URL is also an offer URL). For example, the format of a standard industry number, such as an ISBN for a book, if detected within the path and/or filename portion(s) of the relevant URL, would indicate the presence of an offer.
If the comparison shopping server software cannot determine conclusively that the relevant URL is not an offer URL, then it causes the comparison shopping server machine to contact the online shop in question and to retrieve the informational content of the relevant URL, provided, of course, that the online shop's server software has not been pre-programmed to ignore requests from comparison shopping services, in which case the comparison shopping server software, taking a "back door" approach, causes the comparison shopping server machine to send a request to the comparison shopping client machine for the latter to transmit the informational content of the current shop URL to the server machine, as mentioned hereinabove.
In either case, the server software then parses this informational content, searching for a product identifier or other textual "clues" from which the presence of an online offer may be inferred. For example, the informational content can be scanned for a standard industry number, such as a number in ISBN format for a book, or if no such number is present, the informational content can be scanned for a product name, such as the title for an audio compact disk from which the matching standard industry number can then be derived by the server software by comparing the product name to an
internal product list that preferably is also maintained by the server software for this purpose on the server machine.
If none of these approaches succeeds, then it is assumed that at the relevant URL does not point to an offer (i.e., that the relevant URL is not an offer URL even though the relevant URL does point to an online shop), and the server thereafter sends, at state 502A, a "null" response to the same comparison shopping client that initially transmitted the relevant URL to the server, after which the process moves back to decision state 500A, and usually to state 501 thereafter, where the comparison shopping server waits until a new request is received. But if the relevant URL is also an offer URL, then the comparison shopping server, at state 503, identifies the product in the offer (if this identification has not already been accomplished previously by the server software, at decision state 502), and then proceeds to state 504, where it searches for and collects offers for the same product from competing online shops, including even the user's currently-browsed online shop. Preferably, all of the competing online shops are contacted by the server simultaneously; most preferably, however, the comparison shopping server is programmed to seek competing offers only from online shops that offer the type of product that is currently of interest to the user, e.g., if the product of interest is a book, only the online shops that sell books would be contacted by the server for competing offers.
There are at least two different ways in which the server software can
retrieve offer information from an online shop, and thereby collect competing offers. The first method involves an emulation approach, in which the server software imitates a human "shopper" who searches for, and then receives an offer for, a given product from a particular online shop. Specifically, the server software causes the server machine to contact one or more online shops and, using the product identifier obtained previously, causes the contacted online shop to search for (i.e., obtain one or more offer URLs for) the same product. If any of the online shops contacted is also offering the same product, it is assumed that the resulting offer(s) received by the server from each such contacted online shop compete(s) with the current offer being displayed in the user's browser. (It should be understood that for any or all of the online shops contacted, if the online shop's server software has been pre-programmed to ignore requests from comparison shopping services, the system can use a "back door" approach, similar to that described previously, for obtaining access to that shop's offer(s) for the identified product).
The method for obtaining competing offers that is described above is preferred, since it allows the server software to provide the user with real time offer information for the competing offers found. However, the second, alternative method (which may not always provide up-to-date, real time offer information) is to obtain the offer information from one or more "offer files" containing such information, which each online shop would periodically send to, and which would then be added to the internal database maintained by, the
comparison shopping server software, allowing the latter to obtain offer information perhaps more quickly, and without creating additional "traffic" on the Internet. Although such "offer files" are conventional and have been known in the art for several years, it has been found that, at least currently, some online merchants are still reluctant to provide such files to comparison shopping services; therefore, this method for gathering competing offers is not preferred.
Regardless of the method used to collect the competing offers, a "timeout" feature preferably limits the time in which efforts to collect competing offers continue to be made, thereby increasing the responsiveness of the system in real time. The maximum time is preferably set by the administrators of the server, although it is also within the scope of the invention to allow each user to specify this value; in any event, this value is preferably in the range of 20 - 30 seconds.
If one or more competing offers are received, then the server software thereafter parses the informational content of each such offer URL, and extracts the necessary offer information (e.g., the domain name of the online shop, the base price for the product, the available shipping services and for each such shipping service, the associated estimated shipping time) and optionally certain other offer information (e.g., the "list" price for the product, from which the amount of the online shop's "discount" (if any) can be computed) for eventual display to the user. The server also preferably
determines, for each competing offer, whether the online merchant currently has the product of interest in stock, and if so, it extracts the online merchant's estimated internal order processing time (i.e., the time the merchant needs before giving the product to a shipping service for eventual delivery).
Preferably, before the necessary information for each offer is displayed to the user, it is initially stored by the server software in an internal tab.le, where this information is sorted. Preferably, the information about the competing offers is sorted by the server software in ascending order by price (so that the "cheapest" offer is in the highest position, or "first"), but it is also possible to sort it by other customer service attributes (such as by the shipping time, or by total delivery time, for the product, or perhaps by the shipping service to be used; it is also within the scope of this invention to extract from each competing offer, and to display and even to sort the competing offers by, some other customer service attribute, such as the time period after which a full refund will no longer be provided for a returned product).
Optionally, the user may be afforded an opportunity to choose a default sort key from among the available sort keys (and perhaps even, as a further option, to be able to override this user-specified default occasionally, or for a period of time, e.g. for all individual comparison shopping sessions on a particular day), although in these situations, for all users who do not specify a default sort key, the system will preferably be programmed to utilize the price of the product as the predetermined default sort key for those users.
In any event, moving to state 505, the collected competing offer information (if any) is extracted from the table and is then sent in sorted sequence to the same comparison shopping client that transmitted the relevant URL to the server in the first place, and thereafter the process moves back to decision state 500A, and usually to state 501 thereafter, where the comparison shopping server system again waits until a new request is received.
It is contemplated that the internal database of offer URLs maintained by the server software will be updated periodically, preferably once a day. In the preferred embodiment, this is accomplished automatically by causing the server software to monitor the system clock on the server machine, and to perform certain tests once every twenty-four hours. In general, for each online shop -the server software preferably maintains an internal database on the server machine, containing product identifiers for one or more products typically sold by that online shop, which the server uses to test whether it can still retrieve usable offer information from that online shop.
During each test, the comparison shopping server system sends one of these known product identifiers to the server machine that is running the online shop software, for insertion into the online shop's search facility, and the comparison shopping server software then parses the informational content of the URL received in response, while comparing it to the "acceptable" informational content for that URL that is also stored internally in
the same database. If the response received is an offer URL with the expected informational content, then the test for that particular online shop ends. However, if not, it is first assumed that the online shop in question is no longer offering that "typical" product, and the same attempt is then made with one or more of the other products "typically" offered by that online shop. If these efforts fail for all "typical" products stored in the database for that shop, then the server software assumes either that the online shop in question has opted to alter the appearance (i.e., the arrangement or the format) of its typical offer form/screen (i.e., it has altered the informational content of its typical online offer URL), or that some other error has occurred. In either case, a flag is raised by the server software, which preferably causes the server machine to provide a corresponding indication to the administrators of the server that an update of the internal database or some other corrective action is required. Such updates are preferably then performed manually by an administrator, but automation of this function may also be possible and is therefore still within the contemplated scope of the present invention. It will be apparent to those skilled in the art that the foregoing test procedures also provide a facility with which to maintain quality assurance relative to the operation of the comparison shopping server software itself.
It is also contemplated that the list of shop URLs maintained by the comparison shopping server software will be updated periodically, preferably no more often than about once a week, in order to add the shop URL(s) of any
new online shop(s) that may have come into existence, and/or to delete the shop URL(s) of any online shop(s) that may have ceased to operate. Such updates are also preferably performed manually by an administrator, although again, automation of this function may be possible and is therefore still within the scope of the present invention.
It is further contemplated that the comparison shopping system of the present invention can optionally be configured so as to allow it to operate with respect to offers for multiple products simultaneously, in a "batch" mode, rather than on one product offer at a time. For example, if a user has found several products of interest in the same online shop and has "placed" all of them into a virtual shopping cart provided by that shop, the invention can be used to collect competing offers for all products in the cart. As mentioned herein, in this mode the user would have to "trigger" the comparison shopping session(s) manually, by confirming that it/they should proceed, rather than relying upon automatic initiation thereof, as mentioned hereinabove.
Referring now to the remaining drawing figures (in addition to the aforementioned FIGS. 1-5), FIG. 6 is a screenshot as a user "visits" a sample online shop with his/her browser and looks up a product. In this example, the user has looked up the crime novel The Devil's Teardrop in the popular online bookstore Amazon.com, and is now studying the product description. At this moment, the comparison shopping client software has received a notification from the user's browser that a new URL has been loaded into the browser,
and although there is no visible indication in this drawing figure, the client software begins a comparison shopping session for this product. This figure corresponds to state 403 of FIG. 4.
FIG. 7 is a screenshot in which the comparison shopping client notifies the user that it has recognized a shop URL in the user's browser. Near the bottom of the screen the client software's preferred graphical user interface (i.e., its application bar 700) has now appeared, in which the comparison shopping client displays status and other information. This figure corresponds' to state 404 of FIG. 4.
An illustrative, but nevertheless preferred, arrangement for some of the features of the application bar described hereinabove is shown in FIG. 7. The application bar as shown in this drawing figure (as well as in FIGS. 8-13) consists of a status portion 701 on the left, a product title portion 702 in the center, and an offer portion 703 on the right, in each of which the corresponding information may be displayed to the user at various times throughout each comparison shopping session. On the extreme right, the application bar also carries several "buttons" 704, 705, 706 and 707, which allow the user to provide input to, or to invoke special functions of, the client software, including, for example, a facility to allow the user to hide the application bar manually (if it is currently visible), as described hereinabove, or an optional "personal profile" feature, as described in further detail hereinbelow, or an optional "help" system, which is conventionally
implemented either online and/or offline. It is also within the scope of the invention to provide an optional "stop" button (not shown), with which the user can abort a comparison shopping session that is already in progress, and/or an optional "confirm" button (not shown), with which the user can manually initiate a comparison shopping session in cases in which the client software has been configured such that such sessions are not initiated automatically.
It should be noted that the client software's preferred graphical user interface also preferably includes (apart from the application bar) a visual icon 708, which is displayed continuously on the user's network access device whenever the client software is running (even if the application bar itself remains hidden); as shown in FIGS. 7-13 (as well as in FIG. 6), the icon 708 (resembling a flag) is illustratively displayed on the bottom line of the screen, in an .area near the right edge (that is known in certain widely used graphical user interfaces as the "system tray") in which other icons, perhaps representing other programs and/or facilities that are running in the background on the user's network access device, are also displayed. Preferably, the icon 708 at least provides the user with facilities to display the application bar (if it is currently hidden), as described hereinabove, or to terminate the client software entirely, if desired. The implementation of the features of the client software's preferred graphical user interface that are described above is well within the skill of the art.
FIG. 8 is a screenshot in which the comparison shopping client is
retrieving information about the product that is the subject of the offer. In this situation, the client has extracted the specification of the product from the current offer, and is displaying this information (in this case the title of the book) in the product title portion of its application bar while, in the "background," it is requesting and then receiving information about competing offers from the comparison shopping server. This figure corresponds to state 406 of FIG. 4.
FIG. 9 is a screenshot in which the comparison shopping client displays a competing offer. Specifically, in this screenshot the comparison shopping client has retrieved competing offers from the comparison shopping server and is displaying one of them (the "best" one) in the offer portion of its application bar. This figure also corresponds to state 406 of FIG. 4.
FIG. 10 is a screenshot similar to FIG. 9, but in which the comparison shopping client is displaying several different competing offers at once to the user, in a pop-up window containing a conventional, scrollable, menu-style tabular list. As shown illustratively in FIG. 10, for each collected competing offer the comparison shopping client system preferably displays at least the name (and preferably also the geographic location) of the competing online shop, as well as the base price (or "item price") for the product of interest (if it were to be purchased from that shop), the available shipping methods or services, and the associated estimated shipping times. Also, the estimated shipping time can be added internally, either by the server software module or
by the client software module, to the online shop's estimated internal order processing time (not displayed separately in FIG. 10), so as to calculate and display an estimated total delivery time for the product. Additional information for each of the collected competing offers may also be displayed, as described in further detail hereinbelow in connection with the optional "personal profile" feature of this invention.
FIG. 1 1 is a screenshot in which the user is pointing to, and is about to select, one of the competing offers presented by the comparison shopping client. The background of the selected offer is highlighted and/or displayed in a contrasting color. This figure corresponds to state 407 of FIG. 4.
FIG. 12 is a screenshot in which the user's browser has now been pointed by the comparison shopping client to the URL of the competing offer that was selected by the user in FIG. 11. This figure corresponds to state 408 of FIG. 4.
An optional but desirable enhancement of the comparison shopping system of the present invention includes a mechanism whereby the user can provide shipping information (e.g., the user's own postal address) to the comparison shopping client, and preferably can later also change or update that information. If this information is provided, it will then be used by the comparison shopping server to calculate certain additional costs which are usually associated with an offer and which often depend on this geographic
information (e.g., shipping and handling costs, estimated sales taxes, etc.), thereby enhancing, and also "customizing" for each user of the system, the offer information delivered.
Specifically, either during the installation of the comparison shopping client software (on the user's computer machine), or more preferably, during the first use (after installation) of the client software by the user, the client software allows the user an option to provide the system with certain personal information. If the user decides to do so, then the client software prompts the user (using a standard "dialog box") to enter his/her shipping information, i.e., the address or location to which any products that might be of interest to the user would have to be delivered in the event that any such products were to be purchased by the user from an online shop. At the same time, the user could optionally be prompted to enter his/her e-mail address, as well as certain demographic information (for possible subsequent provision to potential advertisers), such as the user's age, sex, interests, occupation, etc., although preferably the provision of the user's demographic information will be voluntary, i.e., optional.
For each user, this personal information (collectively called a "personal profile") is then held in the random access memory of the user's network access device, and may optionally (but preferably) also be stored permanently by the system, either on the comparison shopping server, or with the comparison shopping client on the user's network access device. Most
preferably, the personal profile is initially stored on the comparison shopping client machine (i.e., on the user's network access device) in a conventional text file, and is thereafter sent by the client to the comparison shopping server machine, either as soon as an Internet connection becomes available, or if an Internet connection is already available, immediately. The server software stores the data contained in each user's personal profile in an internal database maintained on the server machine by the server software for this purpose. Furthermore, the server software may optionally generate a user identification number or registration number for each user, and thereafter will cause the server machine to send this user identification number back to the client machine associated with that particular user, where it is maintained in the random access memory and is also stored on the client machine.
. Preferably, each time the client software is launched, the user's personal profile is re-loaded into, and is retained within, the random access memory of the user's network access device until the client software is terminated. If a user wishes to update his/her established personal profile, or if a user, who declined to establish a personal profile initially, later wishes to establish one, the user will have the option to do so, as shown schematically in the flowchart of FIG. 4 at decision state 402B, by sending a request to the client software, most preferably by "clicking" on a portion of the client software's preferred graphical user interface (e.g., on "button" 705 of the application bar 700, as shown in FIGS. 6-13), thereby recalling or initiating,
respectively, the personal profile dialog box described hereinabove. FIG. 13 is a screenshot of an exemplary dialog box displayed by the comparison shopping client software, in which the user can provide or change his/her personal profile data; in this drawing figure, the "button" 705 is highlighted and/or displayed in a contrasting color. The new and/or changed personal profile data is thereafter sent to the server machine at state 402BB, either immediately or when an Internet connection next becomes available, after which the process shown in FIG. 4 moves back to state 402, where the client software waits for further input as described hereinabove.
As shown in the flowchart of FIG. 5, the server software inspects, at decision state 501 B, all requests received from each installed comparison shopping client system for such new or changed personal profile data; if such a request is received, the data is used at state 501 BB to initialize or to update the associated user's personal profile data in the personal profile database (for all users) that is maintained by the server system, as described hereinabove. Then, the process shown in FIG. 5 moves back to decision state 500A, and usually to state 501 thereafter, where the server system waits for further input as described hereinabove. The creation and maintenance of a personal profile data registration system, whereby personal profiles are established and may be updated from time to time by each of a plurality of users, is well known in the art and the manner in which to implement such a system will be apparent to a programmer of ordinary skill.
If a personal profile is established for a particular user, then when the comparison shopping client system detects that the user's browser is pointing to a shop URL (at decision state 403 in FIG. 4), it will send the user's identification number to the comparison shopping server system along with the other information denoted in state 404 and described hereinabove. The comparison shopping server system then uses the identification number to locate that user's personal profile data in its database, and subsequently uses that personal profile data for the calculation of the shipping costs and estimated sales taxes associated with each of the collected competing offers.
The server software can be programmed to calculate these additional charges by including the user's shipping information among the data that are transferred to each online shop when the competing offers are collected (at state 504 in FIG. 5), i.e., by actually entering the user's shipping information into the search or purchase forms of each of the competing online shops, thereby causing these shops, in turn, to report these additional offer costs back to the comparison shopping server system. More preferably, however, the server software can be programmed to calculate these additional offer costs by using its own methods (which emulate the methods with which these costs are calculated by the online shops themselves), e.g., by consulting an internal database containing a list of geographic locations and the shipping costs and estimated sales taxes associated with each such location (such a database can be maintained on the server machine by the server software for
this purpose). In either case, at state 505 these additional offer costs are thereafter sent to, and are then displayed to the user at state 406 by, the comparison shopping client system, along with the other more basic offer information that the server ordinarily retrieves for each of the collected competing offers, as described hereinabove.
As shown illustratively in FIG. 10, these additional offer costs may be displayed to the user in the pop-up window in several useful ways. For example, for each collected competing offer the shipping costs and the estimated sales taxes (which are not displayed separately in FIG. 10) can be added to the item price internally, either by the server software or by the client software, so as to calculate and display the total price for the product for that user. In addition, for each competing offer the shipping costs and the estimated sales taxes (and perhaps other offer information as well, such as the "discount") may optionally be displayed separately, but preferably for only one competing offer at a time, and most preferably in a small box that appears adjacent to the tabular information for that same competing offer, but which appears only when the user places the cursor on, or otherwise highlights, that competing offer; such a box is shown illustratively at 1100 in FIG. 11 and is akin to a conventional "tooltips" box, the implementation of which is known in the graphical user interface programming art. The use (or not) of the various display modes and options described above are matters of design choice, and their implementation is well within the skill of the art.
Although the invention has thus far been described only with respect to the preferred implementation thereof on the Internet (the latter being an interactive communications network which, until very recently, classically consisted almost exclusively of computer machines as the network access devices, interconnected by conventional ground-based wired telephone links), it should be understood that it is within the scope of the present inventjon to implement it on different interactive communications networks, especially those networks which utilize electronic network access devices that are interconnected in other ways but are microprocessor-based nevertheless, and are therefore quite similar to computer machines; examples of such networks that exist today include wireless ground-based telephone networks, wireless satellite-based communications networks and ground-based cable television networks.
The expected convergence of the Internet with these types of networks is nowadays often the subject of reports in the popular and scientific press, as well as in the technical literature, and is exemplified by the advent of "cable modems" and wireless modems for computer machines, as well as by the introduction of "Web TV services with which users can access websites using network access devices that are connected to a cable television network (i.e., on their home television sets), and by the already-announced capability of some wireless cellular telephone networks to allow users to receive electronic mail and fax transmissions on their network access devices (i.e., on their "cell
phones"), and to access websites of content providers such as Yahoo! on those devices as well (i.e., to access computer machines linked to the Internet using those devices, albeit perhaps only in a limited fashion at this stage of development). Thus, it is clear that these other interactive communications- networks are already (or soon will be) structurally quite similar to the Internet (in its classic form), and that the present invention can therefore be implemented on such other networks with only minimal technical modifications thereof, which modifications are considered to be well within the skill of the art. Such other implementations of the present invention should also be considered as preferred embodiments thereof.
While there has been described what are at present considered to be the preferred embodiments of the present invention, it will be apparent to those" skilled in the art that the embodiments described herein are by way of illustration and not of limitation, and that various changes and modifications may be made therein without departing from the true spirit and scope of the present invention, as set forth in the appended claims.