# Patent

## Title
Method and apparatus for providing compatible components for purchase

## Abstract

Online purchasing of components compatible with particular hardware devices of a computer system. In one aspect, the identity of a hardware device capable of communicating with computer systems is automatically determined. At least one component for the hardware device is displayed on a computer system based on the identity of the hardware device 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.

## Background
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'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'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'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'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'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'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'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 2B. 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'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'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'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'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'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'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'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'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.

## Claims

1. A computer-implemented method for allowing the purchase of components for a hardware device using a computer system, the method comprising:
automatically determining the identity of a hardware device capable of communicating with computer systems, including comparing received device information for the hardware device with database device information for a plurality of hardware devices stored in a database;
causing a display of a list of devices responsive to the received device information not matching any of the database device information for the plurality of hardware devices in the database, such that the user can identify the hardware device by selecting one or more options from the list, wherein an association of the received device information and the hardware device identified by the user from the list is stored in the database, and responsive to a predetermined number of users having made the same association, using the association in a subsequent determination of the identity of a same type of hardware device of a different user to automatically match device information to the identified hardware device; and
causing a display on the computer system of 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, wherein the at least one component is compatible with and for use with the hardware device.

2. The method of claim 1 further comprising receiving a selection for purchase of at least one component, and sending the selection for purchase to a server to implement the purchase.

3. The method of claim 1 wherein the identity of the hardware device is determined on a server after the server receives device information from the computer system, wherein the server sends component purchase information to the computer system allowing the displaying of the at least one component, and wherein the user's purchase selection is received by the server.

4. The method of claim 1 further comprising receiving database information at the computer system from a server over a network, and wherein the identity of the hardware device is determined on the computer system using the information stored in the database.

5. The method of claim 1 further comprising:
receiving a selection from a user on the computer system, the selection related to the hardware device; and
displaying a control after receiving the selection related to the hardware device, wherein the displaying of the at least one component occurs when the user has selected the control.

6. The method of claim 5 wherein the device information includes device identification information for identifying the hardware device and status information indicating a current status of at least one existing component of the hardware device, and further comprising displaying the status information to the user with the control upon the current status level of the associated component being below a threshold level.

7. The method of claim 1 wherein the device information includes device identification information for identifying the hardware device and status information for identifying at least one existing component of the hardware device and indicating a current status of the at least one existing component.

8. The method of claim 7 wherein the display of the at least one component includes displaying the current status of the at least one existing component of the hardware device.

9. The method of claim 8 wherein the at least one existing component and its displayed current status are identified from the status information for the at least one component, wherein the status information is matched with database information to identify the at least one component.

10. The method of claim 9 wherein a list of components is displayed, responsive to the received status information not matching any of the database information, such that the user can identify the at least one component by selecting one or more options from the list, wherein an association of the received status information and the at least one component identified by the user from the list is stored, such that when a predetermined number of users have made the same association, the association is used in future determinations of the identity of components to automatically match status information to the identified components.

11. The method of claim 7 wherein the status information includes an identification of a refillable component, replaceable mechanism, or consumable component of the hardware device.

12. The method of claim 11 wherein the hardware device is a printer device, and wherein the status information includes an identification of an ink or toner cartridge of the printer device.

13. The method of claim 12 wherein the status information indicates the current level of ink or toner, respectively, of the ink or toner cartridge.

14. The method of claim 11 wherein the consumable component is a battery.

15. The method of claim 11 wherein the consumable component is memory.

16. The method of claim 1 wherein the display of the at least one component includes displaying a web page for the user.

17. The method of claim 1 wherein upon the received device information matching information for a plurality of hardware devices in the database, a list of the matched hardware devices is displayed by the computer system such that the user can identify the intended hardware device.

18. The method of claim 1 wherein the device information identifies a particular model or series of the hardware device, allowing compatible components for the hardware device to be displayed.

19. The method of claim 1 wherein when a predetermined number of users have made the same association, the association is stored in the main database to be used in future determinations of the identity of hardware devices.

20. The method of claim 19 wherein the number of associations per time interval is included in a determination whether an association is to be stored in the main database.

21. The method of claim 1 wherein additional information related to the association is stored, including the date or time that the association was made.

22. The method of claim 1, wherein the user and the different user are unrelated.

23. The method of claim 1, wherein the database that stores the association of the received device information and the hardware device identified by a user, aggregates the data received from all users.

24. A computer-readable medium including program instructions for allowing the purchase of components for a hardware device using a computer system, the program instructions for performing steps comprising:
automatically determining the identity of a hardware device capable of communicating with computer systems, including comparing received device information for the hardware device with database device information for a plurality of hardware devices stored in a database;
causing a display of a list of devices responsive to the received device information not matching any of the database device information for the plurality of hardware devices in the database, such that the user can identify the hardware device by selecting one or more options from the list, wherein an association of the received device information and the hardware device identified by the user from the list is stored in the database, and responsive to a predetermined number of users having made the same association, using the association in a subsequent determination of the identity of a same type of hardware device of a different user to automatically match device information to the identified hardware device; and
causing a display on the computer system of 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, wherein the at least one component is compatible with and for use with the hardware device.

25. The computer-readable medium of claim 24 wherein the program instructions further perform receiving a selection for purchase of at least one component, and sending the selection for purchase to a server to implement the purchase.

26. The computer-readable medium of claim 24 wherein the identity of the hardware device is determined on a server after the server received device information from the computer system, wherein the server sends component purchase information to the computer system allowing the displaying of the at least one component, and wherein the user's purchase selection is received by the server.

27. The computer-readable medium of claim 24 further comprising receiving database information at the computer system from a server over a network, and wherein the identity of the hardware device is determined on the computer system using the information stored in the database.

28. The computer-readable medium of claim 24 wherein the program instructions perform steps further comprising:
receiving a selection from a user on the computer system, the selection related to the hardware device; and
displaying a control after receiving the selection related to the hardware device, wherein the displaying of the at least one component occurs when the user has selected the control.

29. The computer-readable medium of claim 24 wherein the device information includes device identification information for identifying the hardware device and status information for identifying at least one existing component of the hardware device and indicating a current status of the at least one existing component.

30. The computer-readable medium of claim 29 wherein the status information includes an identification of a refillable component, replaceable mechanism, or consumable component of the hardware device.

31. The computer-readable medium of claim 29 wherein the display of the at least one component includes causing a display of the current status of the at least one existing component of the hardware device.

32. The computer-readable medium of claim 31 wherein the at least one existing component and its displayed current status are identified from the received status information for the at least one component, wherein the status information is matched with database information identifying the at least one component.

33. The computer-readable medium of claim 32 wherein if the received status information does not match any of the database information, then a list of components is displayed, such that the user can identify the at least one component by selecting one or more options from the list, wherein an association of the received status information and the at least one component identified by the user from the list is stored, such that when a predetermined number of users have made the same association, the association is used in future determinations of the identity of components to automatically match status information to the identified components.

34. The computer-readable medium of claim 24 wherein when a predetermined number of users have made the same association, the association is stored in the main database to be used in future determinations of the identity of hardware devices.