Patent Publication Number: US-8121901-B2

Title: Method and apparatus for providing compatible components for purchase

Description:
FIELD OF THE INVENTION 
     The present invention relates to online purchasing of products, and more particularly to ordering and purchasing components compatible with particular hardware devices of a computer system. 
     BACKGROUND OF THE INVENTION 
     Computer systems can include or be connected to a number of hardware devices to provide additional functionality for the user. For example, printer devices provide hard copy output for the computer system on paper or other media. Other devices can be connected to computer systems to store or receive data, such as digital camera devices that allow the transfer of photo information between device and computer system, or iPod® music devices from Apple Computer, Inc., that allow music data to be transferred between device and computer system. Some hardware devices are usually physically included within the computer&#39;s housing, such as hard drives, a video card, a motherboard, etc. 
     Some hardware devices must be maintained or serviced, or components for the hardware device replaced when those components are at the end of their usable life. For example, printer devices require additional components, such as sheets of paper that are refilled in the storage tray of the printer when the currently-loaded sheets are all used. Likewise, ink cartridges or toner cartridges must be replaced with new cartridges when their existing supply runs out. Other hardware devices may have different components that need replacement or supplementation, e.g., batteries for a portable hardware device, memory or storage space for a motherboard hardware device, etc. 
     When a user wishes to purchase replacement or supplemental components or products for a hardware device, he or she can purchase the desired products online by connecting to a store website over the World Wide Web. Manufacturers or vendors can offer the products from the store website by allowing customers who access the website to select particular desired products for purchase. The customer can typically select particular brands, models, colors, quantities, or other characteristics of products to obtain the exact product the customer desires, which is delivered to the customer after purchase. 
     A disadvantage of the current methods for obtaining replacement or supplemental components for hardware devices is that the consumer must find out the particular brand, model, or other details of each replacement component that the consumer needs. For example, when buying another ink cartridge for a printer device, the user must know the exact printer model or series with which the cartridge is to be used. This can be confusing for consumers when hardware devices and product names are continuously being changed and new devices and components are continuously being made available by manufacturers. 
     Accordingly, what is needed is an apparatus and method for conveniently and automatically offering appropriate replacement or supplemental components for the particular hardware devices of a consumer&#39;s computer system. The present invention addresses such a need. 
     SUMMARY OF THE INVENTION 
     The invention of the present application relates to online ordering and purchasing components compatible with particular hardware devices of a computer system. In one aspect of the invention, a method for allowing the purchase of components for a hardware device using a computer system includes automatically determining the identity of a hardware device capable of communicating with computer systems, and displaying, on the computer system, at least one component for the hardware device based on the identity of the hardware device, such that a user can select the at least one component for purchase, where the at least one component is compatible with and for use with the hardware device. Similar aspects of the invention provide a computer readable medium and apparatus for implementing similar features. 
     In another aspect of the invention, a method for allowing the purchase of components for a hardware device includes receiving device information at a server, where the device information is related to the hardware device and is provided from a computer system in use by a user. The device information is used to present at least one component to the user at the computer system such that the user can select the at least one component for purchase, where the at least one component is compatible with and for use with the hardware device. 
     In another aspect of the invention, a method for allowing the purchase of components for a hardware device includes sending device information from a computer system over a network to a server when a user desires to purchase components for the hardware device, where the device information can be used to identify the hardware device. Information related to at least one component from the server is received and a presentation of the component is displayed to the user at the computer system such that the user can select the at least one component for purchase. The at least one component is compatible with and for use with the hardware device. 
     The present invention provides a method and system that allows a user to quickly and conveniently purchase components compatible with hardware devices of that user&#39;s computer system, in order to resupply exhausted components or replace existing components, using a minimum of effort. Furthermore, the present invention can provide helpful information to assist the user in deciding what components to purchase and when to do so. 
    
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         FIG. 1  is a block diagram illustrating a system suitable for use with the present invention; 
         FIGS. 2A and 2B  are diagrammatic illustrations of displays of a computer system that are suitable for allowing the user to select to purchase device components according to the present invention; 
         FIG. 3  is a diagrammatic illustration of an example of a purchase web page displayed after the user has selected to purchase components; 
         FIG. 4  is a flow diagram illustrating a method of the present invention for providing a user with an option to buy compatible components for a hardware device; 
         FIG. 5  is a flow diagram illustrating a method of the present invention for providing a store website providing compatible components compatible with the user&#39;s hardware device; and 
         FIG. 6  is a diagrammatic illustration of one example of a list from which the user can select a hardware device. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention relates to online purchasing of products, and more particularly to ordering and purchasing components compatible with particular hardware devices of a computer system. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein. 
     The present invention is mainly described in terms of particular systems provided in particular implementations. However, one of ordinary skill in the art will readily recognize that this method and system will operate effectively in other implementations. For example, the systems usable with the present invention can take a number of different forms. The present invention will also be described in the context of particular methods having certain steps. However, the method and system operate effectively for other methods having different and/or additional steps not inconsistent with the present invention. 
     To more particularly describe the features of the present invention, please refer to  FIGS. 1 through 6  in conjunction with the discussion below. 
       FIG. 1  is a block diagram of an example of a system  10  suitable for use with the present invention. 
     System  10  includes a computer system  12 , which can be any suitable computer or electronic device which can communicate across computer networks and control one or more peripheral hardware devices. For example, computer system  12  can be a desktop computer system such as one available from Apple Computer, Inc., or other brand or make of computer. Alternatively, computer system  12  can be a server, workstation, consumer electronic device, laptop or other portable computer, personal digital assistant (PDA), cell phone, game device, or other electronic device. In the typical embodiment, a operating system runs on the computer system  12 , and application programs and driver programs running alongside or under the operating system, as is well known to those of skill in the art. 
     A number of hardware devices  14  are included in or communicate with the computer system  12  such that commands and/or data can be transferred between the computer system  12  and the devices  14 . A hardware device  14  may use one or more components, compatible with that hardware device, which must be replaced or supplemented when those components are exhausted, obsolete, or fully used. 
     Computer system  12  can include a number of internal hardware devices  14  which are typically provided within the housing of the computer system. Such hardware devices include a main motherboard  15 , to which components such as a microprocessor, memory (RAM and/or ROM), interface components, and the like are coupled. 
     Other internal hardware devices can include such devices as a hard drive  20  for storage of data, or a video card for processing and providing data for display on a display device (such as device  17 ). For example, a hardware device  14  such as hard drive or other storage device  20  can be used for the computer system  12  and need replacement or supplementation, e.g., a hard drive device that is nearly full of data, up to its capacity, and which can be supplemented or replaced with another hard drive that is purchased using the present invention. Thus, herein, a device can both be considered a “hardware device” as well as a “component” for a different hardware device. For example, the motherboard  15  can be considered a “hardware device” having compatible “components” such as a microprocessor, memory, or a hard drive  20  which may need to be replaced or supplemented. In addition, the hard drive  20  can itself be considered a “hardware device” which may have compatible components, such as a ribbon cable, mounting, etc., which can be replaced or supplemented. 
     Hardware devices  14  can also include external or peripheral devices. For example, one commonly-used hardware device  14  is printer device  16  which outputs text and images on physical media such as paper. Printer device  16  can be any type of printer, including an inkjet printer, laser printer, thermal printer, plotter, etc. 
     For example, printer device  16 , uses a component such as a fixed supply of print media, such as paper, which must be replaced with new supply when the supply has been completely used and output. In addition, printer device  16  uses components such as one or more “cartridges” of print material to write images on the paper or other print media. For example, an inkjet printer uses one or more ink cartridges, while a laser printer uses one or more toner cartridges. When the ink or toner in a cartridge runs out, the cartridge must be replaced with a new, full cartridge. A display device  17  is another peripheral hardware device that displays information to the user of the computer system  12 . 
     Herein, the term “components” refers to supplies, such as paper or cartridges, which run out and must be replaced, as well as accessories, such as additional memory or other products which supplement the use of existing components. In some embodiments, components can also refer to mechanical parts of a hardware device which can be replaced if those parts malfunction or wear out. 
     Other hardware devices  14  can also be connected to the computer system  12 . For example, an electronic device  18  can interface with the computer  12 , such as a digital camera or an audio playback device (e.g., an iPod® portable electronic device from Apple Computer, Inc.), to send data to or receive data from the computer system. Such an electronic device  18  might have a component that can be expended, similar to the printer paper or print material, or filled up, and need to be replaced or supplemented. For example, batteries on the device  18  might be nearing the end of their useful life need to be replaced. Or, memory on the electronic device  18  might be found to be full and need to be supplemented with additional memory. 
     Computer system  12  can connect to a server system  22  over a computer network  24 . In the example shown, network  24  is the Internet and World Wide Web, but can be other types of networks in other embodiments (e.g., a local area network (LAN), wide area network, cell phone communication link, etc.). Server system  22  is a computer system that provides a store website  26  that is available to computer system  12  or any other computer system connecting to the server. 
     Store website  26  presents selections for a user to purchase replacement or supplemental components for the hardware devices  14  of the user&#39;s computer system  12 . In one embodiment of the present invention, the computer system  12  runs a purchase application  28  that provides information to the store website  26  so that the server  22  can know what hardware device(s)  14  are connected to the particular computer system  12 . The server  22  thus automatically determines one or more hardware devices of the computer system  12  and displays the appropriate components to that hardware device for the user to select. Other embodiments may allow the computer system  12  to determine the hardware devices  14  and present appropriate components. These embodiments are described in greater detail below. The user can select the desired components from those presented and purchase these components via the store website  26 , e.g., using a standard transaction method such as credit card, debit card, account, loans, or other purchasing method. The purchased components can then be delivered to the user from an organization managing (or otherwise in association with) the website  26 . 
       FIG. 2A  is a diagrammatic illustration of an example of a print panel  100  that is displayed to the user of computer system  12  on display device  13  and which offers the user the option to purchase components related to hardware devices  14 , specifically printer device  16 , from the store website  26 . Print panel  100  can be displayed when the user selects a “print” option or command in an operating system or application interface, in order to print a displayed document or other designated data. 
     In the example shown, panel  100  displays in field  102  the name of the particular printer device  16  for which information and options are being displayed. The user can select a different printer device in communication with computer system  12  by selecting from a drop-down menu  103  or other selection method, if multiple printer devices are available to the computer system  12 . The print panel  100  shows typical options for the user such as number of copies to print  104 , the pages to print  106 , and the print button  108  to start the printing operation. 
     A buy button  110  of the present invention is also displayed in panel  100  (labeled “Supplies” in the example shown). When this button is selected by the user, an application program of the computer system displays a number of compatible components for the printer device which can be purchased by the user. For example, a default web browser can be opened to display a page of the store website  26  received from server  22 . In one described embodiment, the purchase application  28  sends data indicating the identity of the printer device  16  designated in field  102  to the server  22  so that components for purchase can be displayed on the page which are appropriate to and compatible with that printer device. An example of a displayed store website page is described below with reference to  FIG. 3 . In other embodiments, a different application program, such as a word processor, can display the list of components to purchase. In yet other embodiments, the computer system  12  uses previously-received database information to display compatible components. 
     In some embodiments, a status panel  112  can also be displayed with or in panel  100 . Status panel  112  displays the current status of exhaustible components of the hardware device indicated in field  102 . In some embodiments, the status panel  112  can automatically be displayed whenever the print panel  100  is displayed. In other embodiments, the status panel  112  can be displayed only when a predetermined condition is met, such as the user selecting a particular button (not shown), or if the status of one or more of the components in the status panel has passed a predetermined threshold, e.g., ink level below a predetermined percentage of full capacity. 
     In the example shown in  FIG. 2A , status panel  112  displays the current ink levels as percentages and bar graphs for all the ink cartridge components of the printer device indicated in field  102 , where each ink cartridge provides a different color of ink. From this panel  112 , the user can easily determine whether or not new ink cartridges should be bought for the printer device via the buy button  110 . In addition, to assist the user, a warning or message, such as message  114 , can be displayed when a particular cartridge ink level falls below a predetermined threshold. For example, once the ink level of a particular color falls to 5% or lower of full capacity, then the warning  114  can be displayed, so that the user knows that a new ink cartridge for that color should be purchased by selecting buy button  110 . 
     In alternate embodiments, an application program of computer system  12  (such as purchase program  28 ) can use a predictive model, i.e., perform a more detailed analysis of the prior behavior of the user of the computer system  12  and/or the printer device  16 , to make a prediction of future use and estimation of when replacement ink cartridges (or other hardware device components) will be needed. For example, the rate of ink use for the printer device  16  can be averaged over a predetermined time period, such as the last three months, to predict the time in the future when the ink will run out. This prediction can be displayed to the user in dialog box  100  to further assist the user&#39;s determination when to select button  104  to purchase new components or supplies. Alternatively, the prediction can be used to determine the appropriate time to alert the user, independently of the ink cartridge levels, e.g., alert the user when there is approximately two weeks left of use of the ink cartridge, as based on the predictive model. The alert time (before predicted exhaustion or failure of a component) can also be made adjustable or settable by the user. 
     In other embodiments, the print panel  100  and/or panel  112  can be displayed automatically when a particular condition of the printer device  16  is met, without the user having to select a print option or make some other selection. For example, when one or more ink levels of the printer device get to a very low level, e.g. under a predetermined threshold level, the panel  100  and  112  can be automatically displayed to allow the user to immediately select buy button  110  to purchase one or more replacement cartridges. 
     Panels or similar displays can also be provided for other types of hardware devices  14  besides printer device  16 . For example, a panel can be displayed that shows the battery charge level for one or more batteries in a connected device  14  such as a digital camera or audio playback device. In one embodiment, the panel can display the number of recharge cycles left on a battery to help the user determine how much battery life is left, and/or display a bar graph similar to the ones shown in  FIG. 2A  to indicate the remaining life or time left in a battery. In another embodiment, the current available storage space for a component, such as a hard drive, RAM memory of the computer system  12 , removable memory for an electronic device  18 , etc., can be displayed as a percentage and/or graph in a panel, to help the user determine whether more storage capacity is needed. Prior user or device behavior can also be examined in such embodiments to determine predictive models, e.g., the average amount of daily use of a hard drive or battery, and data showing the average life of a similar hard drive or battery, can allow the panel to display an estimated useful life for the component or hardware device. In addition to or instead of displaying the predictive model&#39;s conclusion to the user, other messages can be displayed. For example, a purchase recommendation can be displayed for a new, similar component or hardware device, instead of stating the facts of the predictive model. 
       FIG. 2B  is a diagrammatic illustration of an example of a printer display  120  that can be displayed to the user of computer system  12  on display device  13  and which offers the user the option to purchase components related to hardware devices  14 , specifically printer device  16 , from the store website  26 . Printer display  120  can be displayed when the user selects system preferences of the operating system on computer system  12 , and a printer tab or option is selected from those preferences to display information about the selected type of device. For example, the user could select properties of a printer icon displayed in the system properties, to cause the printer display  120  to be displayed. 
     In display  120 , the currently-connected printer devices  122  are displayed in one list, and one of the devices is highlighted as the currently selected printer device. Information concerning the selected printer device is shown in section  124  of the display. A buy button  126  of the present invention is also displayed in display  120  (labeled “Supplies” in the example shown). As with the example of  FIG. 2A , when this button is selected by the user, an application program can display a number of compatible components for purchase for the selected printer device. This is described in greater detail with respect to  FIG. 4 . In some embodiments, an additional window or panel similar to status panel  112  of  FIG. 2A  can also be displayed with or in printer display  120 . 
       FIG. 3  is a diagrammatic illustration of an example of a purchase web page  150  of the store website  26 , which is displayed on the computer system  12  after the user has selected the buy button  110  or  126  as shown in  FIG. 2A  or  2 B. Purchase page  150  is preferably displayed in a web browser or other application program which can display data from web pages accessed over the Internet or other network. 
     Purchase page  150  includes printer identifications  152  to show the user which printer he or she is to purchase components for, and can include the text description of the model or series of the hardware device, and/or an image of the device. This identification was received by the website from the purchase application  28  on the client computer, as explained in greater detail below. In the described embodiment, if the identification  152  is not for the hardware device that the user wishes to buy components for, then the user can select a control, e.g., link  153 , to cause a menu or list to be displayed which offers all the possible printer devices (and any other types of hardware devices, if desired) from which the user can select the desired device. 
     The compatible types of components available for the identified printer device  152  are also displayed in page  150 , as well as any status information for components and other related descriptions, prices, etc. (collectively this is referred to herein as “component purchase information”). In this example, the first type of component/product displayed are ink cartridges  154 , where each available color and type of ink cartridge, and appropriate product names, are displayed. After each color or type of ink cartridge, the current ink level  156  is displayed for that type of cartridge as measured or estimated for the existing cartridge in the printer device  152  of the user&#39;s computer system  12 . These can be the same ink levels (or other status levels) as displayed in the panel  112  on computer system  12  as shown in  FIG. 2A  (if such an embodiment is being implemented). Preferably, the purchase application  28  sends the ink levels to the server  22  so that the ink levels  156  can be displayed in page  150 . If an ink level is below a predetermined threshold, e.g., 5% of capacity, then a warning or other indicator  157  can be displayed to indicate to the user that this particular existing cartridge needs imminent replacement with a new cartridge. The page  150  also displays information  158  related to purchasing each ink cartridge, such as quantity, price per item, and total price, and can display other information in other embodiments, e.g., a short description of each component, list price, actual price, tax and shipping costs, savings achieved at the store website  26 , promotions and advertisements, etc. 
     Purchase page  150  can also display other types of components that are compatible with or otherwise appropriate for the printer device indicated at  152 , such as paper products  160 . For example, types of paper that are offered by the manufacturer of the printer device  152  specifically for use with that device can be offered by the purchase page  150 . 
     The user/customer can preferably select the desired components and indicate the quantity desired, and then select a control to purchase the selected items, such as buy button  162 . The money to purchase the item can then be debited from the user&#39;s account, charged to a credit or debit card, or a loan is instituted, etc., and the purchased components are delivered to the user. Other well-known features can also be included on page  150 , such as saving an order with selection  164  before actually purchasing, adding items to a cart with button  166 , and/or in other embodiments, adding items to a wish list, emailing purchase reminders to recipients, etc. 
     In some embodiments, the user can set up purchasing preferences which will automatically purchase needed components. For example, when the ink levels of the printer device&#39;s ink cartridges get to a predetermined, preferred level, the store page  150  can automatically be called up by the computer system  12  and a replacement ink cartridge purchased (although typically a user will want some consent before a purchase is made). In some embodiments, users can schedule recurring purchases to occur at the website  26 . For example, ink cartridges can be ordered every N months or weeks, where N is a user-specified number. This can also be used with the predictive modeling described above such that a set of suggested scheduling times can be offered to the user for each component based on prior use of the component, from which an actual purchasing schedule is selected by the user. 
     In other embodiments, other types of hardware devices  14  can be the basis of the components offered by the purchase page  150 . For example, for an audio playback device such as an iPod®, batteries, memory cards, or other accessories can be offered for purchase by the user. 
     In another embodiment, the store website is not received from the server  22  upon selection of the buy button, but the computer system  12  displays component purchase information based on previously-received data from server  22 . This is described in greater detail below. 
       FIG. 4  is a flow diagram illustrating a method  200  of the present invention for providing a user with an option to buy compatible components for a hardware device of the computer system  12 . Method  200  can be implemented by program instructions (software) in one or more applications running on the computer system  12 . In alternate embodiments, method  200  can be run using hardware using logic gates, circuitry, etc., or a combination of software and hardware. Program instructions for method  200  can be stored on a computer readable medium, such as memory, hard drive, other magnetic disk, optical disk (CD-ROM, DVD-ROM), etc. 
     Method  200  begins at  202 , and in step  204 , the user of the computer system  12  selects a device function or device properties related to a hardware device  14  in communication with the computer system  12 . For example, the user can select a print command from a drop down menu in a graphical user interface for an operating system, intending to print a document or other output from a connected printer device  16 , as described with reference to  FIG. 2A . Or, the user can select a printer other device from a system properties screen displayed in the operating system in order to see properties of that device, as described with reference to  FIG. 2B . 
     In step  206 , device information is displayed, including a buy supplies button. For example, if the user selected a print menu item, then a print dialog box can be displayed as shown in  FIG. 2A , which includes buy button  110 . If the user selected a printer type of device in a system properties screen, then the display shown in  FIG. 2B  can be displayed, including a buy button  126 . In some embodiments, the current status levels of existing components in the selected hardware device can also be displayed, as well as any warnings or estimations based on prior user or device performance, as described above. In alternate embodiments, a buy button similar to button  110  or  126  can always be displayed in an operating system or application running on the computer system  12 . 
     In some embodiments, the display of the buy supplies button can suppressed if the computer system  12  is being operated in a location (e.g., country or region) where an online store for the hardware device does not have a presence and will not service customers, or if online stores servicing that location do not support the functionality of the present invention to allow components appropriate to a customer&#39;s hardware device to be offered. For example, the operating system or purchase application  28  of computer system  12  can receive periodic updates indicating whether online stores at that location are now compatible and thus if the buy button should be displayed. (If the display of the buy button is suppressed, then the method is complete at  206 .) 
     In step  208 , the process checks whether the buy supplies button displayed in step  206  has been selected by the user. As explained above, the user may want or need to purchase components for a hardware device, e.g., if those components are exhausted, over utilized, obsolete, or otherwise in need of replacement or supplementation. If the button has not been selected, the process returns to step  206  to perform the normal functions for the displayed device information. 
     Once the buy button is selected, then in step  210 , the computer system  12  connects over the Internet  24  (or other network) to the store website appropriate for the hardware device  14  that has been selected in steps  204 , and device information is sent from the computer system  12  to the store website over the network. For example, in one embodiment step  210  is performed via a URL sent to the browser. The store website is provided from a server  22  as described above with respect to  FIG. 1 . The device information includes identification information that indicates to the website the identity of the hardware device  14  selected by the user for which the user wishes to buy components. In one embodiment, this identification information is a device driver string obtained from the driver program running on the computer system  12  and allowing control of the selected hardware device  14 . Other types of device identification information can be sent in other embodiments. For example, in an alternate embodiment, the computer system  12  may have previously received all the hardware device information from the server  22 , and can identify the particular model or series of the hardware device by matching to the database information stored locally, and can send that identification to the server  22  so that the server does not have to perform any matching or identification (described with reference to  FIG. 5 ). 
     In some embodiments, the device information can include additional information that is sent to the store website, such as status information indicating the current status of particular existing components of the selected hardware device. For example, the status information can include values indicating the current ink level of existing ink cartridges or the current toner level of an existing toner cartridge of the hardware device, a value indicating a current battery power level for the hardware device, etc. For example, the status information can include, for each ink cartridge of a printer device, a cartridge string that identifies the type of cartridge (e.g., its color of ink), and an associated value that indicates the percentage of ink left in that cartridge. 
     In step  212 , the computer system  12  runs a browser program or other program that allows the display of store website information that is received from the server  22  in response to the request to buy components. The browser displays the store web page to offer compatible components for the hardware device selected by the user in step  204 . The process is then complete at  214 . The user may select desired components from the store website for purchase, as described above with respect to  FIG. 3 . In other embodiments, other application programs can display the component purchase information, such as a word processor, etc. 
     In some cases, the store website or server program may not be able to identify the hardware device, and can then send an indication to computer system  12  to display a list of devices from which the user can identify the desired hardware device (and/or the server can indicate which devices to display and/or highlight); or if only a partial identification is made, e.g., of the manufacturer, that can be displayed and allow the user to select the particular model or series. The computer system  12  can display a standard chooser list of devices, as described in greater detail with respect to  FIG. 5 . Once the user identifies the desired hardware device, the computer system  12  sends a description. The application provided by server  22  on computer system  12  records the hardware device identified by the user, which the server then associates with the previously received device information (explained in greater detail with respect to  FIG. 5 ). (The server is made aware of the user&#39;s selection through the interface it provides). Similarly, if the user desires to change the selection of the hardware device that is associated with the displayed store components (e.g., by selecting the link  153  as shown in  FIG. 3 ), then the computer system  12  can similarly display a list of devices from which the user can choose. 
     In another embodiment, the store website is not received from the server  22  upon selection of the buy button as in steps  210 - 212 , but instead the computer system  12  displays component purchase information based on previously-received data from server  22 . For example, before the user selects a function in step  204 , the computer system received and locally stored “database information” from the server  22  which indicates hardware device information and/or component purchase information. This database information allows the computer system  12  to present the compatible component purchase information without having to immediately receive a web page from the server, and can instead access local storage devices to display the component purchase information to the user. When the user selects one or more components for purchase, the computer system  12  can then send information to the server  22 /website  26  indicating the components that were selected to be purchased. 
     For example, the server  22  can periodically send the computer system  12  all of its database information describing hardware devices (described with reference to  FIG. 5 ) and all its component purchase information. In this way, the computer system  12  is continually updated with the latest device and store information. In another embodiment, the computer system  12  periodically sends the server  22  device information that identifies hardware devices (and components) of the computer system  12 , and in response, the server periodically sends only a portion of its database information to be stored on the computer system  12 , i.e., that database information which is related to and compatible with the hardware devices  14  of the computer system  12 . If changes to the computer system  12  required that updated information is needed, then the method as described for  FIG. 4  can be used. 
       FIG. 5  is a flow diagram illustrating a method  250  of the present invention for providing a store website providing components compatible with a hardware device connected to the computer system of the user. Method  250  is implemented by program instructions of a server program running on server  22  that provides the store website  26  (or on a system connected to the server  22  running the website). In alternate embodiments, method  250  can be run using hardware using logic gates, circuitry, etc., or a combination of software and hardware. Program instructions for method  250  can be stored on a computer readable medium, such as memory, hard drive, other magnetic disk, optical disk (CD-ROM, DVD-ROM), etc. 
     Method  250  begins at  252 , and in step  254 , the server  22  directs the network connection of the computer system  12  to the proper store website. In some embodiments, this step simply causes the store website at the server  22  receiving the connection to be sent to the computer system  12 . In other embodiments, the computer system  12  first connects to a server site that provides redirection capability to a site appropriate to the location of the computer system  12 . For example, a redirector application on a server can check if an online store exists for and services the location of the computer system  12  (e.g., country or region), and/or the language used on the computer system  12 , and if not, inform the user of this condition. If an online store does service that location and/or language, then the computer  12  can be directed to the store website for that location that is appropriate to the language of the connection request from the client computer. A method for redirecting client computers to sites appropriate to country/location and language is described in copending U.S. patent application Ser. No. 11/016,673, filed Dec. 16, 2004, entitled “Automated Estimation of a Country Where a Client Computer is Configured to Operate,” which is incorporated herein by reference in its entirety, and can be used for the present invention to direct the computer system  12  to the proper website, for example. In other embodiments, the computer system  12  can be redirected to a website store based on other characteristics or associations of the computer system  12  user. 
     In step  256 , the device information sent from the computer system  12  is received at the store website  26 . As described above with reference to  FIG. 4 , the computer system  12  sends device information including a device identification for the hardware device the user has selected for which to buy supplies. This device identification can be a device driver string, for example. In some embodiments, additional device information is also sent, such as status information for components of the selected hardware device, e.g., ink levels for identified cartridges, battery levels, etc. 
     In step  258 , the process checks whether the device identification received in step  256  matches the information for any devices stored in the main device database accessible to the store website/server  22 . The main database, which can be provided on server  22  or another connected computer or storage device, includes information identifying a large number of hardware devices that are available to users and continuously is updated by store operators as new hardware devices are released. For some hardware devices, the device identification received from the computer system identifies a particular manufacturer, series, and model, while for other devices, the identification may only identify a manufacturer or series of devices. Thus, for some types of hardware devices like printer devices, either the model name or the series name could match in step  258 . Furthermore, if status information for device components has also been sent (including identifications of particular components, like color of ink cartridge), then the process also tries to match the component identification information with information for components in the database. 
     In some instances, the received device identification may not match any devices stored in the device database. This may occur, for example, if updates have not yet been made to the database, if particular hardware devices were missed when last updating the database, if the user/customer is using an obsolete or outdated hardware device that was not input to the database, or for other similar reasons. If no match is found, the process continues to step  260 , in which the received device identification is logged in a list holding all the non-matched device identifications received at the store website from computer systems that have tried to access the store. This list of non-matching device identifications can, for example, periodically be sent to an administrator of the store website so that the database can be updated. 
     In next step  262 , the server/store website causes the display of a list of hardware devices from which the user can choose the desired device. For example, the list can be displayed to the user in a web browser of the system  12  via an application on server  22 . In other embodiments, the list can be displayed via a word processor or other application on the computer system  12 . For example, if database information were previously sent to the computer system  12  from the server  22  (e.g., periodically), the client can display the list for the user and determine the identification. Preferably, only those hardware devices are included in the list for which the store website offers supplies or accessories. This list can be in any of many possible formats. In the described embodiment, the list can be presented as a standard “chooser/finder” list that is typically used within the operating system on the computer system  12 . 
       FIG. 6  is a diagrammatic illustration of one example  300  of a “chooser” type of list from which the user can select a printer device. The user can first select a manufacturer of printer devices from menu  302 , which narrows down the list of possible selections in the next menu  304 . Menu  304  displays the types of printer devices available for the selected manufacturer in menu  302 . The user selects one of the types of printers, which narrows down selections in menu  306  for series of printers, which in turn narrows down the selections in menu  308  for the model numbers. In some cases, the manufacturer name (and/or other information) can be identified from the device identification received in step  256 , but no additional information about the device can be determined (e.g., if a new driver has been released by the manufacturer that changes the format of part of the device driver string). In such a case, the determined manufacturer (or other information) can be automatically selected and highlighted for the user so that the user need only select the remaining details for the hardware device. 
     Returning to  FIG. 5 , in step  264 , the process checks whether the user has found the desired device, i.e., selected a device from the list displayed in step  262 . If not, the user can provide feedback in step  266  to indicate the details of the hardware device which was not included in the list, and this feedback can be later processed by the administrator of the store website. The process is then complete at  267 , and the user is not able to buy supplies for the hardware device. Optionally, a generic store website can be presented and displayed to allow purchases of items by the user, but this website is not tailored for any specific hardware device of the user. 
     If the user did find the desired hardware device in the list in step  264 , then in step  268  the process checks whether previous users of the website (or previous users purchasing components who can be logged and tracked, e.g., within an organization running several stores or servers) and the list have made the same match, i.e., have selected the same hardware device from the list of step  262  and that selected device is associated with the same device identification as received in step  256 . Previous matches made by other users can be compared to entries in a customer driven table on the server that stores the previous matches. If other users have not made the same match, then in step  270  the process logs the match (device identification associated with selected hardware device) in the customer driven table. For example, the particular device identification (e.g., device driver string) received in step  256  and the selected hardware device from the list of step  262  are stored as a match in the customer driven table. Additional information can also be stored if desired, such as the date or time that the match was made, etc. The process then continues to step  282  to display the store website to the user as tailored to the hardware device selected by the user from list  262 , as described in detail below. 
     If other users have made the same match, as checked in step  268 , then the process continues to step  272 , where the process checks whether the total number of these matches, including the match the user just made, is over a predetermined threshold amount of matches. The total number of matches is determined by adding the current match to the number of previous same matches stored in the customer driven table. If not over the threshold, then the process continues to step  270  to log the device identification match in the customer driven table as described above, and the process then continues to step  282  to display the store website as described below. If the number of matches is over the threshold amount in step  272 , then in step  274 , the match is written to the main device database as a mapping that is initially checked at step  258 . Thus, if the threshold amount of matches has occurred, it indicates that customers have associated the received device identification with a particular hardware device enough times so that this association can be relied upon for all future customers providing that same device identification, and thus this mapping can be added to the main database. In addition, in step  274  the corresponding match entries in the customer driven table are flagged or otherwise designated as having been moved to the main database. The process then continues to step  282  to display the store webpage as described below. The process of steps  262 - 274  can also be implemented for component identification information (e.g., received as status information) that does not match any database information. 
     In other embodiments, other methods besides the threshold technique above can be used to determine whether a match should be included in the main database. For example, “velocity” (the matches per time interval) can be used or included in the determination, and/or methods to compute a confidence interval for the matches to weed out even distributions across a number of user selections. 
     Returning to step  258 , if the received device identification matches one or more devices in the main database, then the process continues to step  276 , in which the process checks whether there was more than one match found in step  258 . This could occur, for example, if the device identification matched multiple hardware device models in the same series. If so, then the process continues to step  262  to display a list of devices (e.g. model numbers) from which the user can choose the desired hardware device, similarly as explained above for step  262 . In this instance, the server  22  can highlight one of the matched manufacturers, types, etc., to help the user. If the user selects a hardware device from the list, then the steps  264 - 274  can be performed as described above. In addition, the server can display all the matched hardware devices as links above the list of devices, so that if the user selects one of these links, the associated hardware device will be considered to have been matched and selected. If this occurs, then the process can go to step  282  to display the store website for the selected hardware device. 
     Additionally, if the device identification matches multiple hardware device models in the same series in step  276 , then the process can check if the purchasable components for all the models are the same. If all models have the same purchasable components, then the process can continue to step  278 , and the component purchase information displayed in step  282  lists all the device model names instead of just one device model name. If the components are not same for all the models, then step  262  is initiated as shown. 
     If there is only a single device from the database that matches the received device identification in step  276 , then the process continues to step  278 , where it is checked whether there are compatible components available to be purchased at the store for the matched hardware device. If there are no compatible components, then the user is informed of this at step  280 , and the process is complete at  281 . Optionally, an additional check can be made after step  280  to determine if supplies for the hardware device will ever be sold at the store website at a future date. For example, a list of devices can be maintained in a table for which supplies will never be sold, e.g., because the devices are too old and outdated to be supported. If the matched, unsupplied device is not on that table, then the administrator can be informed of the user&#39;s interest so that components can be eventually added to the store for that device, if appropriate. However, if the matched device is on that table and will never be supported, then the user can be presented with a different option, e.g., a generic store can be displayed, or a suggestion to buy a new, updated, and equivalent hardware device from the store. 
     If compatible components are available in step  278 , then the process continues to step  282 , in which the store purchase page is provided to the computer system  12  over the internet or other network so that it is displayed for the user with the appropriate device indicated and with compatible components listed for the hardware device. The server/store website matches the hardware device to all the compatible components for that device carried in the inventory of the store. The components considered “compatible” for each hardware device can be pre-designated as such, and continuously updated, by the store operators. The component purchase information for each compatible component is provided to be displayed to the user on the computer system  12 , e.g., by display device  17 . In one example, component purchase information for a printer device can be displayed similarly as in the example web page  150  shown in  FIG. 3 . Optionally, one or more generic components can additionally be displayed which are compatible with the type of the matched hardware device, e.g., generic paper supplies can be displayed for any printer device. 
     In some embodiments, the user can also be offered the option to select a different hardware device for which to display compatible components, e.g., a link  153  as shown in  FIG. 3 . This may be needed, for example, if the wrong hardware device was matched to the user&#39;s device identification, or if the user changes his or her mind about the hardware device for which to buy components. Thus, in step  284 , the process checks whether the user chooses a different device for which to offer supplies. If so, then the process continues to step  262  to offer the user the list of devices from which to select, similarly as described above. If the user does not choose another device, the process is complete at  286 . The user can select quantities of compatible components as desired using the store website and purchase the selected components. 
     As described above, in a different embodiment, the server  22  previously provided its database information to the computer system  12 , or portion of the database information that is pertinent to the hardware devices and components of the computer system. This would allow the computer system  12 , instead of the server  22 , to perform the matching of device information to hardware devices, the listing of devices for the user to choose, the displaying of component purchase information, etc., in a similar manner to that of the method of  FIG. 5 . The server  22  would implement the actual purchase of the components for the user once the computer system  12  sent the server  22  information indicating which components had been selected for purchase by the user. 
     The present invention allows a user to quickly and conveniently purchase components compatible with hardware devices of that user&#39;s computer system, with a minimum of hassle. Furthermore, the present invention can provide helpful information to assist the user in deciding when what to purchase. The present invention can also automatically identify hardware devices and use techniques such as the accumulation of relationships between hardware devices, device information, and components to offer more accurate identifications and more appropriate components for particular devices. The present invention can also be very helpful to product manufacturers and vendors. For example, the patterns of component purchasing in one market or country can be logged with the present invention and applied to other new markets or areas. 
     Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.