CROSS-REFERENCE TO RELATED APPLICATIONSThis application is a continuation-in-part of, and claims priority to U.S. patent application Ser. No. 11/125,593, filed on May 9, 2005, which itself claims priority to U.S. Provisional Patent Application Ser. No. 60/521,507, filed on May 7, 2004. The '593 application is a continuation-in-part of, and also claims priority to, U.S. application Ser. No. 09/882,368 filed on Jun. 15, 2001, and claims priority to U.S. Provisional Patent Application No. 60/212,103, filed Jun. 15, 2000, all of which are hereby incorporated by reference.
FIELD OF THE INVENTIONThe invention generally relates to on-line purchases made by a consolidated shopping website, and more particularly, to advanced product searching and filtering of categorized product data from a plurality of merchants through the consolidated shopping website.
BACKGROUND OF THE INVENTIONWith the proliferation of the Internet, more and more consumers are purchasing items on-line. Historically, if a consumer wanted to purchase, for example, clothing and auto parts on-line, the consumer either went to one website for the clothing and a different website for the auto parts, or to a single website selling both clothing and auto parts (e.g., www.sears.com). In the latter instance, if the consumer needs a type of clothing (e.g., a tuxedo) which is not available, and auto parts (e.g., tires) that are available, the consumer must still purchase the clothing and the auto parts from different websites.
Websites currently exist (e.g., www.froogle.com and www.mysimon.com) that consolidate catalogs from one or more merchants. However, these websites do not provide an integrated shopping experience since they refer the consumer to another website to purchase a specific item. In other words, these websites transfer the consumer to a different website that sells the particular item(s) the consumer wishes to purchase, so that the consumer may then purchase the item on the transferee website. Returning to the example above, if the consumer wishes to purchase the tuxedo and the tires, the consumer must complete two separate purchases. Thus, for items not sold on a single website, current methods and systems still require the consumer to purchase the items on two separate websites in two separate transactions.
Therefore, systems and methods are needed to enable a host computer providing a consolidated shopping website to order at least one item from at least one different merchant website on behalf of a consumer. Additionally, there is a need for systems and methods to provide compensation to an entity providing a service that allows a consumer to order multiple items sold on multiple websites in a “single transaction” as perceived by the consumer. Further, there is a need to provide advanced searching of products from a plurality of merchants through classification of products and analysis of consumer transactional history and a consumer profile.
SUMMARY OF THE INVENTIONThe invention relates to an interactive website that may include item information from one or more merchants in order to present consumers with an integrated online shopping experience. In one embodiment, item information is provided directly from the merchant via any network, webpage, communication device, protocol or method discussed herein, and stored in any of the databases also discussed herein.
An integrated online shopping interface provides consumers with a variety of methods for searching for items from a plurality of merchants in accordance with item categories. Moreover, the invention provides for the analysis of a consumer's transaction history and profile information in order to provide search results that are more narrowly targeted to specific consumers and/or groups of consumers than what is provided by present day commerce systems.
Further embodiments of the invention relate to systems and methods to facilitate an on-line purchase of at least one item on behalf of a consumer. A host computer may provide a consolidated shopping (CS) website displaying one or more items available for purchase on at least one merchant website which is separate from the CS website. The host computer may receive a request from a consumer to purchase at least one item displayed on the CS website, and order the item on behalf of the consumer from one or more merchant websites selling the item and the host computer may receive compensation for providing such service.
BRIEF DESCRIPTION OF THE DRAWINGSThe foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
FIG. 1 is an illustration of a representative portion of an internetwork such as the Internet;
FIG. 2 is a pictorial diagram of a number of devices connected to an internetwork for processing item data from merchants or suppliers in accordance with the present invention;
FIG. 3 is a block diagram illustrating several of the components of a consumer device;
FIG. 4 is a block diagram illustrating several of the components of an import server;
FIG. 5 is a block diagram illustrating several of the components of a data scrub device;
FIG. 6 is a diagram illustrating the actions taken by a merchant server, an import server, a staging database, a merchant database, an item table and a buffer table to gather item information to allow a consumer to purchase items and/or services using a UPPS in accordance with the present invention;
FIG. 7 is a diagram illustrating the actions taken by a supplier server, an import server, a staging database, a merchant database, an item table and a buffer table to gather item information to allow a consumer to purchase items and/or services using a UPPS in accordance with the present invention;
FIG. 8 is an overview flow diagram illustrating a process for importing item data from an item feed into an import server;
FIG. 9 is an overview flow diagram illustrating a process for importing item data through multiple stage databases from an item feed;
FIG. 10 is a pictorial diagram of a number of devices connected to an internetwork which allow a consumer device also connected to the internetwork to purchase items and/or services in accordance with the present invention;
FIGS. 11A-11C and12A-12B are exemplary webpages illustrating searching and shopping on an e-commerce site;
FIG. 13 is a flow chart illustrating an automated data scrub of a buffer table in accordance with the present invention; and
FIG. 14 is a flow chart illustrating a manual data scrub of a buffer table in accordance with the present invention.
FIG. 15 is a block diagram illustrating an exemplary embodiment of a system to facilitate an on-line purchase of at least one item by a consolidated shopping website; and
FIG. 16 is a block diagram illustrating one exemplary embodiment of a method to facilitate an on-line purchase of at least one item by a consolidated shopping website.
DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTSExemplary embodiments of the present invention will now be described with reference to the accompanying drawings and figures. These exemplary embodiments are described in sufficient detail to reveal the best mode of implementing the invention, and to enable those skilled in the art to practice the invention. It should be understood, however, that other embodiments may be realized and that logical and mechanical changes may be made without departing from the spirit and scope of the invention. Thus, the detailed description herein is presented for purposes of illustration only and not of limitation. For example, the steps recited in any of the method or process descriptions may be executed in any order and are not limited to the order presented.
For the sake of brevity, conventional data networking, application development and other functional aspects of the systems (and components of the individual operating components of the systems) need not be described in detail herein. Furthermore, the connecting lines shown in the various figures contained herein are intended to represent exemplary functional relationships and/or physical couplings between the various elements. It should be noted that many alternative or additional functional relationships or physical connections may be present in a practical system.
As will be better understood from the following description, the present invention is embodied at least in part in a Web site accessible via the Internet. As is well known by those skilled in the art, the term “Internet” refers to the collection of networks and routers that use the transmission control protocol/Internet protocol (“TCP/IP”) or next generation protocols to communicate with one another. A representative section of the Internet100 is shown inFIG. 1. A plurality of local area networks (“LANs”)120 in a wide area network (“WAN”)130 are interconnected byrouters110. Therouters110 are special purpose computers used to interface one LAN or WAN to another. Communication links within the LANs may be twisted wire, coaxial cable, fiber-optic, wireless links or other communication links known to those skilled in the art. While communication links between networks may utilize analog telephone lines, digital lines, fiber-optic, wireless or other communication links known to those skilled in the art. Furthermore, computers, such asremote computers140, and other related electronic devices such as telephones, personal digital assistants (“PDAs”), etc., can be remotely connected to either theLANs120 or WANs130 via a modem (not shown) and a temporary communication link, such as a telephone line or wireless connection (shown as a dotted line). As will be appreciated by those of ordinary skill in the art, the Internet100 comprises a vast number of such interconnected networks, computers, and routers and that only a small, representative portion is shown inFIG. 1.
The Internet100 has recently seen explosive growth by virtue of its ability to link computers located throughout the world. As theInternet100 has grown, so has the Web. As will be readily appreciated by those skilled in the art, the Web is a vast collection of interconnected or “hypertext” documents formatted in the HyperText Markup Language (“HTML”) or other markup languages that are electronically stored at Web sites throughout theInternet100. A Web site resides on a server computer such as theimport server400 illustrated inFIG. 4 connected to theInternet100 that has storage facilities for storing hypertext documents and that runsWeb server software460 for handling requests for those stored hypertext documents. A hypertext document normally includes a number of hyperlinks, usually displayed on a monitor as highlighted portions of text, which link the document to another hypertext document stored at the same Web site or some other Web site located elsewhere on theInternet100. Each hyperlink is associated with a Uniform Resource Locator (“URL”) that provides the location of the linked document on the Web server connected to the Internet. Thus, whenever a hypertext document is retrieved from any Web server, the document is considered to be retrieved from the Web. As is known to those skilled in the art, a Web server may also include facilities for storing and transmitting application programs, such as application programs written in the JAVA® programming language from Sun Microsystems for execution on a remote computer. Likewise, a Web server may also include facilities for executing scripts and other programs on the Web server itself.
A consumer or other remote user may retrieve hypertext documents from the Web via a Web browser application program. A Web browser, such as the NETSCAPE NAVIGATOR® browser or the MICROSOFT® Internet Explorer browser, is a software application program for providing a user interface with the Web. Upon request from the consumer via the Web browser, the Web browser accesses and retrieves the desired hypertext document from the appropriate Web server using the URL for the document and a protocol known as hypertext transfer protocol (“HTTP”). HTTP is a higher level protocol than TCP/IP and is designed specifically for the requirements of the Web. It is used on top of TCP/IP to transfer hypertext documents between servers and clients. The Web browser may also retrieve application programs from the Web server, such as JAVA applets, for execution on theconsumer device300. It will be appreciated by those skilled in the art that protocols other than HTTP may be used. For example, a URL might designate the file transfer protocol (“FTP”) or Secure HyperText Transfer Protocol (“HTTPS”).
The present invention is directed to providing a UPPS allowing the ordering and purchasing of items from many different merchants on the Internet. One embodiment of the invention provides a UPPS having a common user interface. The common user interface allows the consumer to purchase items from different merchants using the same user interface. For example, if a consumer is searching for books, videos and appliances, the consumer will likely be presented with books, videos and appliances from several different merchants. The consumer, however, will be able to order Book A from Merchant A, and Book B from Merchant B using the same ordering form.
Asystem200 of computers and devices to which theimport server400 anddata scrub device500 are also connected is shown in detail inFIG. 2. In addition to thedata scrub device500 and theimport server400, thesystem200 includes at least onesupplier server210 and at least onemerchant server205. Moreover, those of ordinary skill in the art will recognize that while only onedata scrub device500, oneimport server400, onemerchant server205 and onesupplier server210 are depicted inFIG. 2,numerous merchant servers205,supplier servers210, importservers400 and data scrubdevices500 may be interconnected to operate in accordance with the present invention.
In one embodiment of the invention, theimport server400 generates webpages containing item information that can be viewed by the consumer using standard Web browsers. In another embodiment, theimport server400 creates a network presence, in which theimport server400 sends a customized data stream containing item and merchant information over the network to theconsumer devices300. Theconsumer device300 uses a Web browser to provide a user interface configured to accept the data stream and to allow the consumer to search for and view item information, select items, and order items all using the same interface.
FIG. 3 depicts several of the key components of aconsumer device300 used by a consumer to order items via the Internet in accordance with the present invention. Those of ordinary skill in the art will appreciate that theconsumer device300 includes many more components than those shown inFIG. 3. However, it is not necessary that all of these generally conventional components be shown in order to disclose an illustrative embodiment for practicing the present invention. As shown inFIG. 3, theconsumer device300 includes anetwork interface unit330 for connecting to aLAN120 orWAN130. As will be appreciated by those of ordinary skill in the art, thenetwork interface unit330 includes the necessary circuitry for such a connection, and is also constructed for use with the TCP/IP protocol, the particular network configuration of theLAN120 orWAN130 it is connecting to, and a particular type of coupling medium. Alternatively, theconsumer device300 may also be equipped with a modem for connecting to the Internet through a point to point protocol (“PPP”) connection or a serial line Internet protocol (“SLIP”) connection as known to those skilled in the art.
Theconsumer device300 also includes acentral processing unit310, adisplay340 and amemory350 connected via abus320. Thememory350 generally comprises random access memory (“RAM”), and read-only memory (“ROM”) and a persistent mass storage device such as a hard disk drive. Thememory350 stores anoperating system355 for controlling the operation of theconsumer device300. Thememory350 also includes aWeb browser360, such as the NETSCAPE NAVIGATOR® browser or the MICROSOFT® Internet Explorer browser, for accessing the Web.Web browser360 may also store a JAVA virtual machine used to execute JAVA “applets” as known to those skilled in the art. It will be appreciated that these components may be stored on a computer-readable medium and loaded intomemory350 of theconsumer device300 using a drive mechanism associated with the computer-readable medium, such as a floppy or a CD-ROM/DVD-ROM drive or thenetwork adapter330.
Although in one embodiment theconsumer device300 is a personal computer, those of ordinary skill in the art will appreciate that theconsumer device300 could be a wireless device such as a pager, a cellular telephone, Web-enabled landline telephone, PDA or any other type ofconsumer device300 capable of communicating with theimport server400.
FIG. 4 depicts several of the components of animport server400 used to implement the present invention. Those of ordinary skill in the art will appreciate that theimport server400 includes many more components than those shown inFIG. 4. However, it is not necessary that all of these generally conventional components be shown in order to disclose an illustrative embodiment for practicing the present invention. As shown inFIG. 4, theimport server400 is connected to theInternet100, or other communications network, via anetwork interface unit430. Those of ordinary skill in the art will appreciate that thenetwork interface unit430 includes the necessary circuitry for connecting theimport server400 to theInternet100, and is constructed for use with the TCP/IP protocol.
Theimport server400 also includes a central processing unit (“CPU”)410, adisplay440, andmass memory450, connected via abus420.Mass memory450 generally comprises RAM, ROM, and some form of persistent mass storage device, such as a hard disk drive, tape drive, optical drive (such as CD-ROM or DVD-ROM), floppy disk drive, or combination thereof.Mass memory450 stores anoperating system455 for controlling the operation of theimport server400. It will be appreciated that the operating system may be formed by any one of several server operating systems well known to those of ordinary skill in the art, such as UNIX®, MAC OS® or MICROSOFT® WINDOWS NT®. In addition,mass memory450 stores importscripts460, as well asimage processor software465 for extracting and/or retrieving item images.
FIG. 5 depicts several of the key components of an exemplarydata scrub device500 used to implement the present invention. Those of ordinary skill in the art will appreciate that thedata scrub device500 includes many more components than those shown inFIG. 5. However, it is not necessary that all of these generally conventional components be shown in order to disclose an illustrative embodiment for practicing the present invention. As shown inFIG. 5, thedata scrub device500 includes anetwork interface unit530 for connecting to aLAN120 or WAN130 (FIG. 1). As will be appreciated by those of ordinary skill in the art, thenetwork interface unit530 includes the necessary circuitry for such a connection, and is also constructed for use with the TCP/IP protocol, the particular network configuration of theLAN120 orWAN130 it is connecting to, and a particular type of coupling medium. Alternatively, thedata scrub device500 may also be equipped with a modem for connecting to the Internet through a PPP connection or a SLIP connection as known to those skilled in the art.
Thedata scrub device500 also includes acentral processing unit510, adisplay540 and amemory550 connected via abus520. Thememory550 generally comprises RAM, and ROM and a persistent mass storage device such as a hard disk drive. Thememory550 stores anoperating system555 for controlling the operation of thedata scrub device500. Thememory550 also includes ascrub database560,staging database570 andmerchant databases580.Scrub database560 in turn comprises an item table566 and a buffer table564. It will be appreciated that these components may be stored on a computer-readable medium and loaded intomemory550 of thedata scrub device500 using a drive mechanism associated with the computer-readable medium, such as a floppy or a CD-ROM/DVD-ROM drive or thenetwork adapter530. In one embodiment of the invention, some of the components of thedata scrub device500 may be part of the import server400 (FIGS. 2,4).
FIG. 6 illustrates the actions taken by themerchant server205,import server400, stagingdatabases570,merchant databases580, item table566 and buffer table564 to gather item information to enable searching, viewing and purchasing through the UPPS hereinafter referred as UPPS in accordance with the present invention. (Both thestaging databases570 andmerchant databases580 have a separate database for each merchant or supplier of item data. Accordingly, when referring to a single merchant or supplier, thestaging databases570 andmerchant database580 will be referred to in the singular.) The interactions of the various components are illustrated and described in greater detail later with reference to diagrams shown inFIGS. 8 and 9. Returning toFIG. 6, the item data import process is initiated when amerchant server205 provides anitem feed605 to animport server400. Theimport server400 is then able to retrieve610 image data from the merchant server that relates to the items described in the item feed. The importserver requests images615 from the merchant server and receivesitem images620 back from the merchant server. The item feed in the form of normalized data andimages625 is then forwarded to thestaging databases570. The staging database is where duplicate items are removed630, new items are inserted635, existing items are updated640, and old items are deleted645. Next, the information from theparticular staging database570 associated with the originatingmerchant server205 forwards the staged normalized data which is just the normalized data feed that has been updated with the information and processing performed on thatparticular staging database570. This stageddata650 is passed to the merchant databases and in particular to themerchant database580 associated with the originatingmerchant server205. Themerchant database580 then forwards655 matching item data to the item table566 and forwardsunmatched item data660 to the buffer table564. Matching and unmatched item data will be discussed in greater detail below with regard toFIG. 9.
FIG. 7 illustrates the actions taken by thesupplier server210,import server400, stagingdatabases570,merchant databases580, item table566 and buffer table564 to gather item information to enable searching, viewing and purchasing through the UPPS hereinafter referred as UPPS in accordance with the present invention. The interactions of the various components are illustrated and described in greater detail later with reference to diagrams shown inFIGS. 8 and 9. Returning toFIG. 7, the item data import process is initiated when asupplier server210 provides anitem feed705 to animport server400. Theimport server400 is then able to extract andprocess710 image data from the item feed that relates to the items described in the item feed. The item feed in the form of supplier (normalized) data andimages715 are then forwarded to thestaging databases570. Thestaging database570 is where duplicate items are removed720, new items are inserted725, existing items are updated730, and old items are deleted735. Next, the information from theparticular staging database570 associated with the originatingsupplier server210 forwards the staged normalized data which is just the normalized data feed that has been updated with the information and processing performed on thatparticular staging database570. This stageddata740 is passed to the merchant (in this case also supplier)databases580 and in particular to themerchant database580 associated with the originatingsupplier server210. Themerchant database580 then forwards745 categorized item data to the item table566 and forwardsuncategorized item data750 to the buffer table564.
It will be appreciated by those of ordinary skill in the art that the order of the operations inFIG. 6 or7 may be altered without substantially affecting the operation of the present invention. For example, themerchant database580 may be incorporated into thestaging database570; or some or all of steps630-645 may be performed in other orders or even on themerchant database580.
The present invention is directed to providing a shopping service that obtains items for a consumer across many different merchant sites while maintaining a consistent user interface for the consumer no matter from which merchant the items are retrieved or obtained. Instead of redirecting the consumer to an external site when the consumer selects an item located on an external merchant site, theimport server400 maintains control of the consumer throughout the entire shopping process. Accordingly,FIG. 8 illustrates anexemplary logic routine800 illustrating importing item data from an item feed into animport server400 in accordance with the present invention. Routine800 starts atblock801 and proceeds to block805 where the item feed is received. Next, inblock810, the identity of the source of the item feed (e.g., merchant or supplier) is found from the item feed itself or from the address from which it was received (e.g. a URL for the supplier website). If the source of the item feed indecision block815 is determined to be a supplier, then inblock820, image data is extracted and processed from embedded images within the item feed. Inblock825, the supplier item feed which was received in a normalized form is forwarded to the data scrub device. If, however, indecision block815, it was determined that the source of the item feed was not a supplier, then the flow goes to block830 where item images have to be retrieved from the merchant server associated with the merchant item feed. In one embodiment of the invention, item information and/or item images are obtained by scraping a merchant server's 205 Website. For a description of scraping please refer toFIG. 14 described below and to commonly owned U.S. patent application Ser. No. 09/237,169 filed Jan. 25, 1999 and entitled WEB SCRAPING ENGINE, which is incorporated herein by reference. Inblock835, the merchant item feed is normalized so that it can be incorporated more easily into the databases of the current invention. Included in this normalization are the images retrieved from the merchant server. Processing then continues back to block825, and the normalized data from the merchant feed now is of the same normalized format as if it had been supplier provided data. Processing then ends atblock899.
The item feed and any accompanying images have now been normalized for incorporation through the various databases (staging database570,merchant database580, andscrub database560, including buffer table564 and item table566 (FIG. 5)) in accordance with the present invention.FIG. 9 illustrates anexemplary logic routine900 illustrating importing the item data from the item feed through these databases. Routine900 starts atblock901 and proceeds to block905 where the normalized item feed is received.
In one exemplary embodiment, the first database receiving the normalized item feed is thestaging database570. However, other databases, such as themerchant database580, could be the first to receive the normalized item feed. At the database level, duplicate items are removed from the item feed inblock910. Inblock915, new items from the item feed are inserted into the database. Inblock920, existing items are updated based on the normalized item feed. Next, inblock925, any expired or old items that are no longer in the item feed may be deleted. (It is important to reiterate here that thestaging databases570 andmerchant databases580 are referred to both in the plural and the singular, as the collection of stagingdatabases570 and the collection ofmerchant databases580 contain a separate database each for every supplier and merchant which provide item feeds in accordance with the present invention.)
It will be appreciated by those of ordinary skill in the art that steps910-925 for updating the databases may be performed in a different order from that depicted inFIG. 9, depending upon specific implementation of the present invention, without departing from the spirit of the invention as specified herein.
Onceroutine900 gets to block930, it then needs to identify the source of the item feed as that will determine how entries in the item feed will be incorporated into the item table and/or buffer table. So, inblock930, the source is identified and indecision block935, if it is determined that the source of the item data is a supplier, then inblock940, the item entries in the item feed are only checked to see if they have been categorized or that the category already exists in the item table. If, indecision block945 it is determined that the category exists for an item entry, then that item entry is sent to the item table. If, inblock945 it is determined that the item is uncategorized or that no category exists in the item table that matches the category of the particular item entry, then the item is sent to the buffer table for further processing at a later point, inblock955.
Returning back to decision block935, if the source is not a supplier, then inblock960, each item entry is checked to see if there is a match in the item database. It will be appreciated by those of ordinary skill in the art that matching item entries in the item feed and item entries in the item table may be done in a myriad of fashions. In one exemplary embodiment, the shopkeeper unit (“SKU”) is used to match items in the item feed and the item table. Alternately, in another embodiment, manufacturer name and manufacturer model number may be used to match entries in the item feed and item table566 (FIG. 5). However, other uniquely identifying information may also be used to match item entries in the item feed to item entries in the item table566.
Next, indecision block965, if it is determined that there is a match between an item entry in the item feed and an item entry in the item table, then the item table is updated with the item entry from the item feed, thereby resulting in a more up-to-date entry with regard to that item in the item table566. If, however, indecision block965 it is determined that there is no matching item in the item table, then the item entry is forwarded to the buffer table inblock955 for processing at a later point. In any case, processing and of routine900 ends atblock999.
Once the item feed has been imported into the system of the current invention, including the item table in the scrub database, it will then be used in a commercial side system open to the public; however, this is usually not done directly, rather, the information is sent to devices, servers, and databases accessible by the public, using the item table as a master source of sorts.
Accordingly,FIG. 10 illustrates one exemplary commercial side system with a number of components. Thesystem1000 is set up as a load balanced, redundant system with both active and inactive databases in each component. The information from the item table566 is forwarded to anitem price database1005. Theitem price database1005 is updated periodically such as once an hour, once a day, once a week, and so forth; again, preserving the item table as the master source from which the data is received.
Anindex server1010 then takes the information in theitem price database1005 and indexes it using conventional keyword and database indexing routines known to those of ordinary skill in the art. The index server supplies index meta-data or data about the index and other index data for the items in the item price database to search servers, such assearch servers #1 and #2,1041 and1042, shown inFIG. 10. Theitem price database1005 also supplies item details, such as descriptions and images that correspond to the information sent by theindex server1010. Note that whilesearch database #11041 andsearch database #21042 are being updated,search database #31043 and search database #41044 are actually online and are in communication with asearch server #11051 and asearch server #21052, respectively. This allowssearch databases #3 and #4,1043 and1044 respectively, to remain fully active whilesearch server #11041 andsearch database #21042 are being updated. Search databases #1-41041-1044 are mirrored databases, which means that when one is finished updating, the updated information is then mirrored to the next. For example, inFIG. 10, oncesearch database #11041 is finished receiving index information and item information,search server #31043 will be taken offline, and the same information will be added tosearch server #3.
The load balancing of the illustrated embodiment is handled by the “big IP”server1060 which is a conventional load balancing server known to those of ordinary skill in the art to allow the communications load to be distributed across components of the present invention. The “big IP”server1060 is connected via theInternet100 to the consumer device ordevices300 andmerchant servers205.
Returning back to the databases, the pricing databases #1-41031-1034 are in communication with mirroredSQL servers #1 and #21021-1022, such that when a consumer has finished searching for items usingsearch server #11051 orsearch server #21052, they are then able to retrieve detailed information from pricing databases #1-41031-1034. Note again that withSQL #1 andSQL#2, whileSQL#11021 is being updated from theitem price database1005,SQL #21022 is in communication with the pricing databases, and that whilepricing database #11031 andpricing database #21032 are accessible by consumers via theInternet100,pricing database #31033 and pricing database #41034 are in communication withSQL database #2 to update their information.
While one possible embodiment is shown here, it need hardly be mentioned that this commercial side of the present invention could have a myriad of other possible configurations, not the least would be a much simpler system where only the item table was used instead of the item price database index server, sequel databases, pricing databases, search databases, and search servers and with no load balancing at all. However, each one of these components does increase the speed, flexibility, or reliability of the overall system and have been included to illustrate one exemplary embodiment of how the present invention may be implemented.
As will be appreciated by those of ordinary skill in the art, identifying and searching for items can be done in many different ways. For example, in one embodiment of the invention, the consumer enters information about the items into a search engine. Based on the information input into the search engine, a list of items is returned to the consumer on a webpage. In another embodiment of the invention, the search engine may search a database stored on theimport server400 containing a list of currently available items from many different merchants. In another embodiment, the search engine searches external databases that are not contained on theimport server400 but are located on remote computers. As will be appreciated by those of ordinary skill in the art, many different search engines can be used. In yet another embodiment, a classification system is established that divides goods or services into categories of specific types. For example, categories can include, among many others, clothes, books, music, video, jewelry and the like.
Search results may further be partially or fully sorted and displayed in accordance with the preferences of the consumer. In one embodiment, sorting preferences are selected by the consumer prior to performing a database search. Accordingly, the sorting criteria are added to a query string to produce a sorted list of items prior to displaying the list to the consumer. In another embodiment, the consumer may sort a list of items after the list has been retrieved and displayed. For example, a list of laptop computers may be presented to a consumer in the form of a table having columns to display information such as make, model, description, specifications, price, and the like. The consumer may prefer to sort the table according to price. Therefore, the listing of laptop computers may be programmatically sorted in response to the consumer selecting the “price” column header. There are a number of ways to sort data programmatically without requiring execution of a new query against a database. For example, a JavaScript “for”, “while”, or “do . . . while” loop may process each item in a list against the consumer selected sorting criteria to determine how to position each item with respect to other items in a list. A working list may be stored in memory as an array that is written to the interface when list sorting routine is complete. Practitioners will appreciate that a listing of items may be sorted according to any number of criteria and through any number of methods.
To control how searches are performed and how results should be configured, the consumer may access a search preferences interface. The search preferences interface enables the consumer to define what information is returned with search results. For example, a consumer who utilizes the disclosed integrated shopping site may wish to limit search results to display product descriptions and price only. Another consumer may be more concerned with the identity of the merchant, thus the consumer configures the search preferences to display results that include a product description and merchant identifier. In one embodiment, the consumer may interact with the search preferences interface to filter out specific merchants and/or manufactures from search results. Practitioners will appreciate that there may be any number of known options for filtering search results.
In another embodiment, a consumer may configure item specific search rules. For example, a consumer may be charged with purchasing cleaning supplies for a janitorial service. The janitorial service may be sensitive to the environmental effects of a chemical compound that is commonly used in industrial strength solvents. As such, the consumer may define a rule that states that, if a solvent includes such a chemical compound, then that solvent should be filtered out of the search results.
Accordingly, there are instances when price is not the predominate factor in a purchase decision. For example, a consumer living in Phoenix, Ariz. may be contentious about supporting the local economy. As such, the consumer may want to configure search preferences such that items manufactured, fabricated and/or sold locally will appear higher on a search results list. In one embodiment, search preferences stored along with a personal profile of the consumer are used to pre-select items to display as advertisements and/or offers within an interface when the consumer logs-in to the system. Compensation for providing such ads and/or offers may be provided in accordance with known compensation models that include, for example, charge per display, charge by click, charge by purchase, and the like.
In one embodiment of the present invention, the consumer browses through item search results on a webpage (seeFIGS. 11A-11C and description below) provided by a search server1041,1042,1043 or1044. In another embodiment, the search results are sent electronically to a wireless device, such as a telephone, or PDA. As will be appreciated by those of ordinary skill in the art, wireless devices are more restricted by the amount of information they may display as compared to a personal computer. Therefore, the information sent to the wireless device is formatted for viewing on a wireless device. Well known presentation formats for wireless devices are Handheld Device Markup Language (“HDML”) documents and Wireless Markup Language (“WML”) documents. As will be appreciated by those skilled in the arts, HDML and WML documents may be viewed on conventional microbrowsers such as Phone.com's™ UP.link microbrowsers. If the consumer is interested in a particular item, the item may be added to the consumer's shopping cart (seeFIGS. 12A and 12B and description below). In one embodiment of the invention, the consumer selects the item by clicking on a hyperlink to add the item to the service. As will be appreciated by those of ordinary skill in the art, there are many methods of selecting an item. For example, a consumer may drag an icon or hyperlink representing the item to an icon or hyperlink representing the shopping cart.
For clarity of illustration, the phrase “item type” will be used to describe a type of merchandise that may be sold by several merchants. For example, an “NEC 17 inch LCD monitor” is an “item type”. An “item” may be any good and/or service capable of being exchanged between two or more entities, and the term “item” may be used to describe an item that is carried by a particular merchant. For example, an “NEC 17 inch LCD monitor from Circuit City” is an “item”. When a consumer selects an item, both the item type and the merchant may be determined. In addition, an “item identifier” may include, for example, a universal item code (UPC), a stockkeeping unit (SKU), a serial number, a reference number, a category number, a service type indicator, a description and/or other any other information capable of identifying an item. Any reference to an item type, item or item identifier, as used herein, may include one or more item types, items or item identifiers, respectively.
FIGS. 11A-12B illustrate exemplary web pages for searching, viewing and selecting an item in accordance with the present invention.Webpage1100 illustrates an exemplary webpage form having a field for searching for specific items. The results of an exemplary search are shown inwebpage1130. After selecting a type of item fromwebpage1130, a consumer might see a webpage such asexemplary viewing webpage1160 where the consumer is presented with the detailed description of the selected item along with a link to compare prices and handling details from different merchants.Webpage1200 shows a number of different merchants with different prices and/or handling details. Finally,webpage1260 illustrates a selected item from a particular merchant that is ready to be checked out.
Another aspect of the current invention allows for a more full, accurate and detailed item coverage in the item table. Specifically, the data scrubbing ability of the current invention which is the process of analyzing the item entries which have been placed in the buffer table564 due to being either uncategorized or unmatched with existing items in the item table566. Data scrubbing can either be an automatic process or a manual process each of which is reflected inFIG. 13 or14, respectively.
FIG. 13 is a flow chart illustrating a routine1300 for automatic data scrubbing.Routine1300 starts inblock1301 and proceeds to block1305 where an item entry is retrieved from the buffer table. Inblock1310, the item entry is examined. Then indecision block1315, if it is found that the item matches the item entry in the item table, it is automatically forwarded to the item table and requires no further scrubbing. However, if indecision block1315 it was found that the item did not match an entry in the item table, processing continues todecision block1320 where it is determined if the item is identifiable. Specifically, is this a valid item for which an item entry can be made within the item table? If it is not identifiable, then inblock1345, the item is returned to the buffer table for analysis at a later date or eventual expiration. However, if indecision block1320 the item is identifiable, then indecision block1325 it is determined whether the item is categorizable, specifically, if the item will fall into a type of category. One example might be that two separate items might have the same title; however further information would show that they were in different categories. An item title such the name “fountain pen” might be the title of a book or a description of a writing instrument. Therefore, the data scrub routine1300 looks to additional information to see if there is any indication that the item would fall in one category versus another, e.g., books or office supplies. If the item is categorizable, then processing continues to1330 where a category is assigned to the item; then, inblock1335 the item is forwarded to theitem database566. If however indecision block1325 the item is not categorizable, it placed back in the buffer table inblock1345. Finally, indecision block1340, a determination is made if there are any more unretrieved item entries in the buffer table. If all entries have been retrieved, then processing ends in1399, otherwise it returns back to block1305 to continue scrubbing the buffer table.
Similar toFIG. 13,FIG. 14 is a flowchart illustrating a manual data scrubbing routine1400.Routine1400 may start inblock1401 and proceed to block1405 where an item entry is retrieved from the buffer table. Inblock1410, the item entry may examined. Then indecision block1415, it is determined whether the item is identifiable. Specifically, does the item entry describe a valid item for which an item entry can be made within the item table? If it is not identifiable, then inblock1440, the item is returned to the buffer table for analysis at a later date or eventual expiration. However, if indecision block1415 the item is determined to be identifiable, then indecision block1420 it is determined whether the item is categorizable, specifically, if the item will fall into a type of category. If the item is categorizable, then processing continues to1425 where a category is assigned to the item; then, inblock1430 the item is forwarded to theitem database566. If however indecision block1420 the item is not categorizable, it placed back in the buffer table564 (FIG. 5) inblock1440. Finally, indecision block1435, a determination is made whether to continue scrubbing, if not, then processing ends in1499, otherwise processing returns back to block1405 to continue manual scrubbing the buffer table.
FIG. 15 is a block diagram illustrating an exemplary embodiment of asystem1500 to facilitate an on-line purchase of at least one item by a consolidated shopping website which purchases the item from a merchant website on behalf of a consumer. In one embodiment,system1500 may facilitate secure ordering, payment and funding services while substantially protecting the privacy of the transaction participants.System1500 may also include processes for authenticating participants, facilitating on-line purchases made on behalf of a consumer, and settling payments. As such, embodiments of the invention may enable merchants providing websites to effectively accept an order without changing their current ordering infrastructure.
System1500 may also includeconsumer computing device1510.Consumer computing device1510 may be any software and/or hardware suitably configured to communicate transaction data to a consolidated merchant (CM) host computer (e.g., CM host computer1520). In one embodiment,consumer computing device1510 may be configured to receive transaction data input by a consumer, and transmit a purchase request, which may include transaction data, to at least oneCM host computer1520. As used herein, “transmit” may include sending electronic data from one component to another component ofsystem1500 over a network connection (e.g.,network1550, discussed below). “Transaction data” may include, for example, at least one item identifier for each item being purchased (e.g., SKU or UPC code), a payment instrument account number, and/or any other data helpful in a purchase request. Additionally, as used herein, “data” may include encompassing information such as commands, queries, files, data for storage, and the like in digital or any other form. A “payment instrument” may include, for example, one or more of a charge card, credit card, debit card, awards card, prepaid card, smart card, magnetic stripe card, bar code card, transponder, RFID, radio frequency card and/or the like having an account number, which cardholders typically present to merchants, as part of a transaction, such as a purchase. However, a consumer may present an account number without the use of a physical payment instrument.
An “account” or “account number”, as used herein, may include, for example, any device, code, number, letter, symbol, digital certificate, smart chip, digital signal, analog signal, biometric or other identifier/indicia suitably configured to allow the consumer to access, interact with or communicate with the system (e.g., one or more of an authorization/access code, personal identification number (PIN), Internet code, other identification code, and/or the like). The account number may optionally be located on or associated with a rewards card, charge card, credit card, debit card, prepaid card, embossed card, smart card, magnetic stripe card, bar code card, transponder, radio frequency card or an associated account. System may include or interface with any of the foregoing cards or devices, or a fob having a transponder and RFID reader in RF communication with the fob. Although the present invention may include a fob embodiment, the invention is not to be so limited. Indeed,system1500 may include any device having a transponder configured to communicate with RFID reader via RF communication. Typical devices may include, for example, a key ring, tag, card, cell phone, wristwatch or any such form capable of being presented for interrogation. Moreover,system1500,consumer computing device110 and/or consolidated merchant (CM) host computer120 (detailed below) may include a “pervasive computing device,” which may include a traditionally non-computerized device that is embedded with a computing unit. Examples may include, but are not limited to, watches, Internet enabled kitchen appliances, restaurant tables embedded with RF readers, wallets or purses with imbedded transponders, etc.
The account number may be distributed and stored in any form of plastic, electronic, magnetic, radio frequency, wireless, audio and/or optical device capable of transmitting or downloading data from itself to a second device. A payment instrument account number may be, for example, a sixteen-digit credit card number, although each credit provider has its own numbering system, such as the fifteen-digit numbering system used by American Express. Each company's credit card numbers comply with that company's standardized format such that the company using a sixteen-digit format will generally use four spaced sets of numbers, as represented by the number “0000 0000 0000 0000”. The first five to seven digits are reserved for processing purposes and identify the issuing bank, card type, etc. In this example, the last (sixteenth) digit is used as a sum check for the sixteen-digit number. The intermediary eight-to-ten digits are used to uniquely identify the consumer. A merchant account number may be, for example, any number or alpha-numeric characters that identify a particular merchant for purposes of card acceptance, account reconciliation, reporting, or the like.
In one exemplary embodiment,consumer computing device1510 may be a personal computer, although other types of computing units may be used including laptops, notebooks, hand held computers, set-top boxes, cellular telephones, touch-tone telephones and the like. Moreover,consumer computing device1510 may also be a merchant computing unit implemented in the form of a computer-server, although other implementations are contemplated. Thus,consumer computing device1510 may be in a home or business environment with access to a network (e.g., the Internet). Applicants note that any reference to a single consumer computing device may include one or more consumer computing devices.
Consumer computing device1510 may also be configured to communicate withCM host computer1520. An electronic commerce system may be implemented atconsumer computing device1510 andCM host computer1520. The electronic commerce system may be implemented as computer software modules loaded ontoCM host computer1520 andconsumer computing device1510, andCM host computer1520 may not require any additional software to participate in online commerce transactions supported by the electronic commerce system. Thus,CM host computer1520 may be any software and/or hardware suitably configured to facilitate a transaction. In one embodiment,CM host computer1520 may be configured to process a request to purchase an item received fromconsumer computing device1510. Furthermore,CM host computer1520 may include a processor for processing digital data; a memory coupled to the processor for storing digital data; an input digitizer coupled to the processor for inputting digital data; an application program stored in the memory and accessible by the processor for directing processing of digital data by the processor; a display device coupled to the processor and memory for displaying information derived from digital data processed by the processor; and a plurality of databases. In addition, though shown as a main frame computer,CM host computer1520 may be implemented in other forms, such as a mini-computer, a PC server, a network of computers located in the same of different geographic locations, or the like.
CM host computer1520 may also be configured to store at least one uniform resource locator (URL) for one or more merchant websites (e.g.,merchant websites1535 and/or1545), and access a merchant website utilizing a stored URL. Furthermore,CM host computer1520 may be configured to access a webpage for placing an order for an item sold on an accessed webpage.CM host computer1520 may also be configured to place an order for an item sold on an accessed website and/or webpage. The order may be configured to include a token and/or other type of identifier ofCM host computer1520 to enable the recipient of the order to identifyCM host computer1520 as the source the order. In an exemplary embodiment,CM host computer1520 may be configured to place an order on behalf of a consumer on the order webpage similar to embodiments described in U.S. Pat. No. 6,490,601 issued to Markus et al., herein incorporated by reference. In addition,CM host computer1520 may be configured to receive order and/or shipping confirmation from at least one merchant website, and transmit such to a consumer. Moreover,CM host computer1520 may be configured to transmit and/or receive funds from external devices.
In one exemplary embodiment,CM host computer1520 may be configured to charge the consumer (and/or a third party, merchant, etc) a transaction fee for requesting an item from a different website for the benefit of a consumer. Furthermore,CM host computer1520 may be configured to calculate the transaction fee, generally analogous to a sales commission, based on a set amount, a variable amount, random amount, percentage of the purchase amount and/or the like. In one embodiment, the predetermined amount may be an amount per transaction, an amount per ordered item, an amount based on a threshold purchase amount, number of websites where ordering occurs, type of item ordered, payment method, type of payment instrument used, and/or the like. The variable fee may be based on similar criteria as the set amount, but may include incrementally increasing amounts based on pre-determined factors stored withinCM host computer1520. Random fees may be charged for similar criteria as the set fee and variable fee, however, the “randomness” may be determined according to pre-determined factors also stored withinCM host computer1520.CM host computer1520 may be configured to charge a transaction fee to a consumer transmitting a purchase request viaconsumer computing device1510, an affiliated and/or non-affiliated merchant selling the item on amerchant website1535, a wholesaler of the ordered item, a manufacturer of the ordered item, an issuer of a payment instrument and/or any other entity appropriate to charge a transaction fee for the transaction. In one embodiment, the transaction fee may be included as part of an affiliation agreement betweenCM host computer1520 and a merchant website (e.g., merchant website1535), which may detail how the transaction fee may be charged.
CM host computer1520, after ordering an item on behalf of a consumer on a merchant website not affiliated withCM host computer1520, may be configured to notify a non-affiliated (e.g., does not have a pre-existing relationship and/or agreement) merchant website of such, and solicit a transaction fee from the merchant website. The solicitation may include a message suggesting that payment of the transaction fee may result in future orders fromCM host computer1520 and/or may include a message suggesting that non-payment of the transaction fee may result inCM host computer1520 not making future orders.
CM host computer1520 may also be configured to offer a rebate for ordering an item from a different website on behalf of a consumer. Furthermore,CM host computer1520 may be configured to calculate the rebate based on a set amount, a variable amount, random amount, percentage of the purchase amount and/or the like similar to the transaction fee configuration discussed above. The rebate may be offered byCM host computer1520 to a consumer transmitting a purchase request viaconsumer computing device1510 and/or to any other appropriate entity (e.g., a school, church, charitable organization, etc.) in, for example, a fund raiser.
In another embodiment,CM host computer1520 may be configured to receive a rebate for ordering an item from a different website on behalf of a consumer from a merchant selling the item on amerchant website1535, a wholesaler of the ordered item, a manufacturer of the ordered item and/or any other entity offering a rebate toCM host computer1520 for facilitating the transaction for factors similar to those discussed above, including an affiliation agreement. Moreover,CM host computer1520, after ordering an item on behalf of a consumer on a merchant website not affiliated withCM host computer1520, may be configured to notify the merchant website of such, and include a request for a rebate from the merchant website, along with a message, similar to transaction fee embodiments discussed above.
CM host computer1520 may be configured to charge a listing fee for displaying an item from other websites (e.g., merchant website1535) on a website (e.g.,consolidated shopping website1514, hereinafter CS website1514) provided byCM host computer1520. The listing fee may be charged to a merchant selling an item, a wholesaler or broker of an item, a manufacturer of an item and/or any other entity desiring an item be displayed on the website.
CM host computer1520 may also be configured to automatically generate an electronic or paper receipt. In one embodiment, the receipt may be consolidated and may be configurable, such as for batch processing purposes. The consolidation may be across multiple accounts which may be applicable with, for example, corporate accounts.CM host computer1520 may issue an end of year statement for a consumer as receipt tracking. In one embodiment,CM host computer1520 may archive in a database a ROC (receipt of charge) associated with a charge account. As such, the additional ROC information along with the statements fromCM host computer1520 provide added value.CM host computer1520 may charge the consumer a fee for the archival services or any other services discussed herein. In one embodiment,CM host computer1520 may periodically supply line item detail statements, for example, at the end of the year, wherein the statement discloses each purchase. The service may only be available for certain levels of consumers or certain levels of payment instruments (e.g., Gold and Platinum cards). Furthermore, any charges may be paid directly out of an account using existing or customized stored value systems.
CM host computer1520 may additionally be configured to generate a report detailing transactions occurring within a specified period of time. Reporting may include similar technology and systems as are known in the art for corporate payment instrument reporting. For example, the administrator ofCM host computer1520 may have a reporting relationship at the consumer level and/or corporate level. The consumer level may include monthly statements sent out to the consumer. The statements may be in electronic (e.g., XMS) or paper (e.g., international) form. The statements may detail merchant, date, time, and/or amount. In one embodiment, the statements may omit consumer components of the transaction. At the corporate level, the system may help corporations manage their expense base with, for example, logistics, reporting tools, etc. A degree of flexibility may exist as to how the corporation desires to manage accounts. For example, a corporation may settle the account directly and be responsible for reviewing the eligibility of each charge.CM host computer1520 may help the corporation manage their expense base by reporting on the nature of the transactions over a certain period of time (e.g., quarterly, annually, etc). The report may include information such as, for example, certain expenses represent x % of their expense base and are split across six suppliers. As such, if they were to establish a preferred supplier arrangement with for example, three widget manufacturers, they may reduce their expense base. To maintain privacy,CM host computer1520 may customize the reporting so as to firewall certain detail, but still release sufficient information to make it valuable for expense base tracking and management.
In an exemplary embodiment,CM host computer1510 may provide a website, using any software and/or hardware suitably configured to accept and process an order for an item. Furthermore,CS website1514 may be configured to receive a purchase request for an item from a consumer, the item being available for purchase on a different website that may or may not have an affiliation withCS website1514.CS website1514 may also be configured to allow consumers to create and store a consumer profile accessible byCS website1514 and/or the consumer. A “consumer profile” may be created and accessed (e.g., by inputting a user ID and PIN) similar to consumer profile embodiments known in the art. Moreover, a consumer profile may include, for example, the consumer's name, contact information (e.g., mailing address, telephone number, email address, etc.), payment instrument account information, shopping habits, transaction history, consumer profile account information, and/or any other information helpful in facilitating an on-line transaction. Shopping habits, for example, may enable the system to present a number of links and/or menu items onCS website1514 to a consumer's “favorites” based on previous shopping transactions.
In one embodiment,CS website1514 provides a listing of the most popular categories based on an analysis of the shopping habits and transaction history for a number of consumers. In another embodiment,CM host computer1520 groups consumers according to shopping habits, demographics, position, industry, and the like for the purpose of selecting and presenting a listing of categories that are popular among a specific grouping of consumers. Transaction history may also include a shopping cart history, which in one embodiment, displays items that were previously placed into an e-commerce shopping cart without finalizing a purchase transaction. For example, a consumer may have added a Global Positioning System (GPS) to a shopping cart during a previous session. However, in order to do further research on GPS devices, the consumer may have ended the session (i.e., closed the browser window). When the same consumer subsequently accessesCS website1514, the system searches the transaction history for the consumer and reloads the GPS device into the consumer's shopping cart. Moreover,CS website1514 may be a stand-alone Internet website or a punchout site that interfaces with e-commerce applications (e.g., Ariba Buyer or SAP).
In one embodiment,CM host computer1520 retrieves information for items falling within the same or similar category as a searched item. For example, a search for a “garden hose” may return any number of items relating to gardening or landscaping in addition to a variety of garden hoses. Moreover, a consumer may enter a general category term to receive more generic results. Entering “computers”, for example, may return a number of personal computers, laptop computers, displays, printers, and the like. In another embodiment,CM host computer1520 retrieves a group of items based on a search, uses the product information to determine the category for the group of items, and to sort the group of items into subcategories. The subcategories may be displayed within tabs of theCS website1514 interface. For example, a consumer may perform a search on “television sets.” A group of retrieved television sets may be subcategorized into a variety of tabs that group the television sets based on size, resolution, high-definition, flat screen, LCD, and the like.
To assist the consumer in using theCS website1514 to search for items and categories of items, browser executable code such as, for example, an Applet tracks the consumer's interaction withCS website1514. The browser executable code detects a search term entered by the consumer and uses it in combination with search history, consumer profile information, etc., in order to make suggestions relating to searches. For example, a user who has interacted withCS website1514 to regularly search for office supplies may be presented with helpful hints relating search terms that may produce more targeted search results. In another embodiment, the browser executable code may automatically retrieve one or more special offers based on what is known about the consumer. Accordingly, when the user logs in, for example,CM host computer1520 analyses historical transaction data relating to the consumer, the consumer's profile, and any other relevant data in order to perform an automatic search for special offers that may be of particular interest to the consumer.
Merchants occasionally bundle items in order to, for example, increase the appeal of an item. For example, a merchant who sells computing equipment may bundle a desktop computer, LCD monitor, and printer. However, such a bundle may not be desirable for a consumer that simply needs a new desktop computer.CM host computer1520 enables consumers to select a bundle and take the bundle apart such that the consumer only purchases one or more items within the bundle in accordance with their need and/or desire. In one embodiment, unbundled items that are not purchased are stored in a database as individual items to be subsequently offered for sale. Merchants may interact with the system to define whether unbundling is allowed, rules for unbundling, pricing of unbundled items, and how unbundled and un-purchased items should be processed. For example, a merchant may choose to have an unbundled item offered to consumers as a rebate or reward items.
In one embodiment, consumers may register withCM host computer1520 under a specialized status such as, for example, a wholesaler, or a seller of controlled items (e.g., fireworks). Accordingly, a consumer may be required to show evidence qualifying her for such status. Subsequently, the consumer may receive discounts on specific items and/or purchase items that the general public is not able to purchase (e.g., pharmaceuticals, controlled chemicals, medical equipment, etc.) Items sold in bulk to wholesalers and controlled items are filtered out of search results that are invoked by consumers that have not been granted a specialized status.
Some merchants sell items that are less conducive to an online shopping environment. Such items include personalized products such as, for example, business cards, engraved gifts, promotional items with stamped with a company logo, and the like. While imitated in function, many such merchants have configured their product websites such that a consumer can select from a list of templates (e.g., business cards), and enter text and/or graphics that they would like included with the items. In one embodiment,CM host computer1520 enables merchants to supply template and personalization options along with product feeds. When a search is subsequently performed for such items,CM host computer1520 provides a personalization interface to enable consumers to select from any number of options provided by a merchant for personalizing an item for purchase. Options may include, for example, design, color, material, text font, etc. The personalization interface further enables consumers to specify text, upload graphic files, and the like. The personalization interface renders the item according to the consumer selected options in order to enable the consumer to view what the item will look like. Accordingly, the personalization interface allows the consumer to make any number of modifications to the item, until she is pleased with its appearance. When a selected item is purchased,CM host computer1520 places the order as disclosed herein along with the personalization information.
As described above,CS website1514 enables any number of merchant websites to be searched to retrieve one or more items capable of being purchased from any of the merchant websites (e.g.,merchant website1535 and/or1545). The terms “display” and/or “displayed” may include any pictorial, alphanumeric, symbolic, electronic, item identifier, and/or any other representation of an item capable of being perceived by a consumer, including the item itself. An item identifier may be provided directly from a merchant selling the item, a wholesaler and/or the manufacturer of the item in a variety of file formats (.xls, .csv, .txt, .xml, etc.) for items displayed onCS website1514. In one embodiment,CS website1514 may be configured to display multiple items capable of being purchased from more than onemerchant website1535.CS website1514 may also be configured to allow consumers to browse and/or search for items displayed onCS website1514.CS website1514 may be configured to communicate with one or more merchant websites1535 (both affiliated and non-affiliated) via anetwork1550.
Network1550 may include, for example, any electronic communication means which incorporates both hardware and software components of such. Communication among the devices in accordance with the present invention may be accomplished through any suitable communication channels, such as, for example, a telephone network, an extranet, an intranet, Internet, point of interaction device (point of sale device, personal digital assistant, cellular phone, kiosk, etc.), online communications, satellite communications, off-line communications, wireless communications, transponder communications, local area network (LAN), wide area network (WAN), networked or linked devices, keyboard, mouse and/or any suitable communication or data input modality. Moreover, although the invention is frequently described herein as being implemented with TCP/IP communications protocols, the invention may also be implemented using IPX, Appletalk, IP-6, NetBIOS, OSI or any number of existing or future protocols. If the network is in the nature of a public network, such as the Internet, it may be advantageous to presume the network to be insecure and open to eavesdroppers. Specific information related to the protocols, standards, and application software utilized in connection with the Internet is generally known to those skilled in the art and, as such, need not be detailed herein. See, for example, DILIP NAIK, INTERNET STANDARDS AND PROTOCOLS (1998);JAVA 2 COMPLETE, various authors, (Sybex 1999); DEBORAH RAY AND ERIC RAY, MASTERING HTML 4.0 (1997); and LOSHIN, TCP/IP CLEARLY EXPLAINED (1997) and DAVID GOURLEY AND BRIAN TOTTY, HTTP, THE DEFINITIVE GUIDE (2002), the contents of which are hereby incorporated by reference. Moreover,system1500 contemplates the use, sale or distribution of an item or information over any network having similar functionality described herein.
Merchant website1535 may be any software and/or hardware suitably configured to sell items.Merchant website1535 may be configured to accept and/or process an order for an item sold by the seller and/or manufacturer, and transmit order and/or shipping confirmation toCS website1514. In one embodiment,merchant website1535 may be affiliated withCS website1535 and configured to detect a token and/or other identifier ofCM host computer1520 as the source of an order and transmit funds (e.g., a transaction fee and/or rebate) toCM host computer1520 upon receipt of such. As used herein, the term “merchant website” may include, for example, a website of a seller, wholesaler and/or manufacturer of an item, and any reference made herein to a merchant website (e.g., merchant website1535) may also include at least one additional merchant website (e.g., merchant website1545).Merchant website1535 may be configured to communicate withCS website1514 vianetwork1550.
System1500 may also be configured such that each device (e.g.,consumer computing device1510,CM host computer1520,merchant website1535 and merchant website1545) is interconnected via a second network, referred to as a payment network. The payment network, which may be part of certain transactions, represents existing proprietary networks that presently accommodate transactions for credit cards, debit cards, and other types of financial/banking cards. The payment network is a closed network that is assumed to be secure from eavesdroppers. Exemplary transaction networks may include the American Express®, VisaNet® and the Veriphone® networks.
Various databases used herein may include, for example, client data; merchant data; financial institution data; and/or like data useful in the operation ofsystem1500. As those skilled in the art will appreciate, a user computer may include an operating system (e.g., Windows NT, 95/98/2000, OS2, UNIX, Linux, Solaris, MacOS, etc.) as well as various conventional support software and drivers typically associated with computers. The computer may also include any suitable personal computer, network computer, workstation, minicomputer, mainframe or the like. A user computer may be in a home or business environment with access to a network. In an exemplary embodiment, access is through a network or the Internet through a commercially available web-browser software package.
Any databases discussed herein may be any type of database, such as relational, hierarchical, graphical, object-oriented, and/or other database configurations. Common database items that may be used to implement the databases include DB2 by IBM (White Plains, N.Y.), various database items available from Oracle Corporation (Redwood Shores, Calif.), Microsoft Access or Microsoft SQL Server by Microsoft Corporation (Redmond, Wash.), or any other suitable database item. Moreover, the databases may be organized in any suitable manner, for example, as data tables or lookup tables. Each record may be a single file, a series of files, a linked series of data fields or any other data structure. Association of certain data may be accomplished through any desired data association technique such as those known or practiced in the art. For example, the association may be accomplished either manually or automatically. Automatic association techniques may include, for example, a database search, a database merge, GREP, AGREP, SQL, using a key field in the tables to speed searches, sequential searches through all the tables and files, sorting records in the file according to a known order to simplify lookup, and/or the like. The association step may be accomplished by a database merge function, for example, using a “key field” in pre-selected databases or data sectors.
More particularly, a “key field” partitions the database according to the high-level class of objects defined by the key field. For example, certain types of data may be designated as a key field in a plurality of related data tables and the data tables may then be linked on the basis of the type of data in the key field. The data corresponding to the key field in each of the linked data tables is preferably the same or of the same type. However, data tables having similar, though not identical, data in the key fields may also be linked by using AGREP, for example. In accordance with one aspect of the present invention, any suitable data storage technique may be utilized to store data without a standard format. Data sets may be stored using any suitable technique, including, for example, storing consumer files using an ISO/IEC 7816-4 file structure; implementing a domain whereby a dedicated file is selected that exposes one or more elementary files containing one or more data sets; using data sets stored in consumer files using a hierarchical filing system; data sets stored as records in a single file (including compression, SQL accessible, hashed via one or more keys, numeric, alphabetical by first tuple, etc.); Binary Large Object (BLOB); stored as ungrouped data elements encoded using ISO/IEC 7816-6 data elements; stored as ungrouped data elements encoded using ISO/IEC Abstract Syntax Notation (ASN.1) as in ISO/IEC 8824 and 8825; and/or other proprietary techniques that may include fractal compression methods, image compression methods, etc.
In one exemplary embodiment, the ability to store a wide variety of information in different formats is facilitated by storing the information as a BLOB. Thus, any binary information can be stored in a storage space associated with a data set. As discussed above, the binary information may be stored on the financial payment instrument or external to but affiliated with the financial payment instrument. The BLOB method may store data sets as ungrouped data elements formatted as a block of binary via a fixed memory offset using either fixed storage allocation, circular queue techniques, or best practices with respect to memory management (e.g., paged memory, least recently used, etc.). By using BLOB methods, the ability to store various data sets that have different formats facilitates the storage of data associated with the financial payment instrument by multiple and unrelated owners of the data sets. For example, a first data set which may be stored may be provided by a first party, a second data set which may be stored may be provided by an unrelated second party, and yet a third data set which may be stored, may be provided by an third party unrelated to the first and second party. Each of these three exemplary data sets may contain different information that is stored using different data storage formats and/or techniques. Further, each data set may contain subsets of data that also may be distinct from other subsets.
As stated above, in various embodiments of the present invention, the data can be stored without regard to a common format. However, in one exemplary embodiment of the present invention, the data set (e.g., BLOB) may be annotated in a standard manner when provided for manipulating the data onto the financial payment instrument. The annotation may comprise a short header, trailer, or other appropriate indicator related to each data set that is configured to convey information useful in managing the various data sets. For example, the annotation may be called a “condition header”, “header”, “trailer”, or “status”, herein, and may comprise an indication of the status of the data set or may include an identifier correlated to a specific issuer or owner of the data. In one example, the first three bytes of each data set BLOB may be configured or configurable to indicate the status of that particular data set; e.g., LOADED, INITIALIZED, READY, BLOCKED, REMOVABLE, or DELETED. Subsequent bytes of data may be used to indicate for example, the identity of the issuer, user, transaction/membership account identifier or the like. Each of these condition annotations are further discussed herein.
The data set annotation may also be used for other types of status information as well as various other purposes. For example, the data set annotation may include security information establishing access levels. The access levels may, for example, be configured to permit only certain consumers, levels of employees, companies, or other entities to access data sets, or to permit access to specific data sets based on the transaction, merchant, issuer, user or the like. Furthermore, the security information may restrict/permit only certain actions such as accessing, modifying, and/or deleting data sets. In one example, the data set annotation indicates that only the data set owner or the user are permitted to delete a data set, various identified users may be permitted to access the data set for reading, and others are altogether excluded from accessing the data set. However, other access restriction parameters may also be used allowing various entities to access a data set with various permission levels as appropriate.
The data, including the header or trailer may be received by a stand alone interaction device configured to add, delete, modify, or augment the data in accordance with the header or trailer. As such, in one embodiment, the header or trailer is not stored on the transaction device along with the associated issuer-owned data but instead the appropriate action may be taken by providing to the payment instrument user at the stand alone device, the appropriate option for the action to be taken. The present invention may contemplate a data storage arrangement wherein the header or trailer, or header or trailer history, of the data is stored on the payment instrument in relation to the appropriate data.
One skilled in the art will also appreciate that, for security reasons, any databases, systems, devices, servers or other devices ofsystem1500 may consist of any combination thereof at a single location or at multiple locations, wherein each database or system includes any of various suitable security features, such as firewalls, access codes, encryption, decryption, compression, decompression, and/or the like.
System1500 may be described herein in terms of functional block components and various processing steps. It should be appreciated that such functional blocks may be realized by any number of hardware and/or software components configured to perform the specified functions. For example,system1500 may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. Similarly, the software elements of the present invention may be implemented with any programming or scripting language such as C, C++, Java, COBOL, assembler, PERL, Visual Basic, SQL Stored Procedures, extensible markup language (XML), with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements. Further, it should be noted that the present invention may employ any number of conventional techniques for data transmission, signaling, data processing, network control, and the like. Still further,system1500 may be used to detect or prevent security issues with a client-side scripting language, such as JavaScript, VBScript or the like. For a basic introduction of cryptography and network security, see any of the following references: (1) “Applied Cryptography: Protocols, Algorithms, And Source Code In C,” by Bruce Schneier, published by John Wiley & Sons (second edition, 1995); (2) “Java Cryptography” by Jonathan Knudson, published by O'Reilly & Associates (1998); (3) “Cryptography & Network Security: Principles & Practice” by William Stallings, published by Prentice Hall; all of which are hereby incorporated by reference.
As will be appreciated by one of ordinary skill in the art,system1500 may be embodied as a customization of an existing system, an add-on item, upgraded software, a stand-alone system, a distributed system, a method, a data processing system, a device for data processing, and/or a computer program item. Accordingly,system1500 may take the form of an entirely software embodiment, an entirely hardware embodiment, or an embodiment combining aspects of both software and hardware. Furthermore,system1500 may take the form of a computer program item on a computer-readable storage medium having computer-readable program code means embodied in the storage medium. Any suitable computer-readable storage medium may be utilized, including hard disks, CD-ROM, optical storage devices, magnetic storage devices, and/or the like.
The present invention is described herein with reference to block diagrams and flowchart illustrations of methods, apparatus (e.g., systems), and computer program items according to various aspects of the invention. It will be understood that each functional block of the block diagrams and the flowchart illustrations, and combinations of functional blocks in the block diagrams and flowchart illustrations, respectively, can be implemented by computer program instructions.
These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions that execute on the computer or other programmable data processing apparatus create means for implementing the functions specified in the flowchart block or blocks. These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer-implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart block or blocks.
Accordingly, functional blocks of the block diagrams and flow diagram illustrations support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions. It will also be understood that each functional block of the block diagrams and flowchart illustrations, and combinations of functional blocks in the block diagrams and flowchart illustrations, can be implemented by either special purpose hardware-based computer systems which perform the specified functions or steps, or suitable combinations of special purpose hardware and computer instructions. Further, illustrations of the process flows and the descriptions thereof may make reference to user windows, webpages, websites, web forms, prompts, etc. Practitioners will appreciate that the illustrated steps described herein may comprise in any number of configurations including the use of windows, webpages, web forms, popup windows, prompts and the like. It should be further appreciated that the multiple steps as illustrated and described may be combined into single webpages and/or windows but have been expanded for the sake of simplicity. In other cases, steps illustrated and described as single process steps may be separated into multiple webpages and/or windows but have been combined for simplicity.
FIG. 16 is a block diagram illustrating an exemplary embodiment of amethod1600 to facilitate an on-line purchase of at least one item on behalf of a consumer by a consolidated shopping website. CM host computer (e.g., CM host computer1520) displays item information for an item on a CS website (e.g., CS website1514) provided byCM host computer1520 that is capable of being purchased on a different merchant website (e.g.,merchant websites1535 and/or1545) (step1610).CM host computer1520 may charge an entity requesting the item be displayed on CS website1514 a listing fee for displaying the item (step1615).
In one exemplary embodiment,CM host computer1520 may receive a request from a consumer computing device (e.g., consumer computing device1520) viaCS website1514 to purchase an item displayed on CS website1514 (step1620). The request may then be scrubbed, denormalized, normalized and enriched with additional content (e.g., images, short description, long description, features, attributes, etc.). The enriched data may be obtained via the supplier, manufacturer, and/or data warehouses (e.g., CNET). The request may include transaction data and/or information related to the consumer (e.g., name, contact information (e.g., shipping address, telephone number, email address, etc.), payment instrument account information, etc.) input by the consumer at the time of the request. In another embodiment, the request may include transaction data and consumer information stored in a consumer profile accessible byCS website1514.
With the transaction data and consumer information,CM host computer1520 may access a merchant website (e.g.,merchant website1535 and/or1545) that sells the item the consumer wishes to purchase (step1630), and locate a webpage used for receiving orders (step1640). In one embodiment,CM host computer1520 may automatically accessmerchant website1535 after the purchase request from the consumer is received oraccess merchant website1535 in real-time. Applicants note that due to various possible configurations of merchant websites,steps1630 and1640 may be performed simultaneously (e.g., when the order webpage is included in the first page accessed on a merchant website).
On an order webpage,CM host computer1520 may order the requested item on behalf of the consumer (step1650). In one exemplary embodiment,CM host computer1520 may repeatsteps1630,1640 and/or1650 multiple times when a single purchase request includes at least one item from each of two or more different merchant websites (step1654).
When ordering an item,CM host computer1520 may enter the transaction data and consumer information in the appropriate field(s) on the order webpage. In an exemplary embodiment,CM host computer1520 may inject the transaction data and/or consumer information in the appropriate fields according to the methods described in, for example, U.S. Pat. No. 6,490,601.
In one embodiment, payment instrument account information included in the transaction data may be consumer payment instrument account information, and the consumer's payment instrument account may be debited by each merchant website for the amount purchased on that particular merchant website. In another embodiment,CM host computer1520 may order the item on behalf of the consumer utilizing payment instrument account information forCM host computer1520. In this embodiment, CM host computer's1520 payment instrument account may be debited by each merchant website for the amount purchased at each merchant website, andCM host computer1520 may subsequently cause to be debited a financial account of the consumer for the entire purchase amount, or for each individual amount debited by each merchant website1535 (step1658).
CM host computer1520 may receive an order and/or shipping confirmation from the merchant website when the item has been successfully ordered and/or shipped (step1660). In addition,CM host computer1520 may report to the consumer the transaction information, order confirmation (independently of, or once the item(s) has/have been successfully ordered), and/or shipping confirmation once shipping confirmation from the merchant is received (step1670).
In one exemplary embodiment,CM host computer1520 may charge a transaction fee for placing the order with merchant website1535 (step1680). The transaction fee may be a set amount, a variable amount, random amount, percentage of the transaction and/or the like, and may be charged to the consumer,merchant website1535, a wholesaler of the ordered item, a manufacturer of the ordered item and/or an issuer of the payment instrument used to place the order similar to the discussion above. In the case of anon-affiliated merchant website1535,CM host computer1520 may solicit a transaction fee from an entity by including a message suggesting that future orders may or may not be placed, and/or a payment instrument may of may not be used depending on whether the transaction fee is paid (step1685).
Furthermore,CM host computer1520 may offer and/or receive a rebate when placing the order (step1690). The rebate may come frommerchant website1535, a wholesaler of the ordered item, a manufacturer of the ordered item and/or an issuer of the payment instrument used to place the order. A rebate may be initiated byCM host computer1520 soliciting entities for a rebate similar to transaction fee embodiments discussed above in step1685 (step1695). A rebate may be offered to the consumer for usingsystem1500 to make the purchase request and/or may be part of a fundraiser, causing a financial account (not shown) of a school, church, research program, charity and/or any other designated entity to be credited.
Applicants note that the present invention has been described in the consumer-to-merchant context in which the consumer orders items from merchants or suppliers. The present invention may also be applied to a business-to-business e-commerce context to allow non-consumer entities to purchase goods and/or services.
Benefits, other advantages, and solutions to problems have been described herein with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as critical, required, or essential features or elements of any or all the claims or the invention. The scope of the present invention is accordingly to be limited by nothing other than the appended claims, in which reference to an element in the singular is not intended to mean “one and only one” unless explicitly so stated, but rather “one or more.” Further, no element described herein is required for the practice of the invention unless expressly described as “essential” or “critical”.