Patent ID: 6873967

Claim:
A computer system capable of providing a plurality of lists of product combinations to a plurality of shoppers over one or more networks, the system comprising: one or more central processing units (CPUs), one or more memories, and one or more network interfaces to one or more networks connecting said CPUs and memories; an electronic shopping assistant process running on said one or more CPUs, said shopping assistant process being able to receive a plurality of inputs from shoppers comprising a plurality of constraints consisting of: item choices, profile constraints, which at least comprises information regarding a plurality of recipients and the recipient information comprises at least recipient name, price limits, and shopping list constraints, which at least comprises product constraints, inter-item constraints and multiple choice constraints, send said plurality of inputs to a shopping list generating process; and receive a plurality of lists of recommended product combinations that satisfy the given constraints, and being able to allow shoppers to view and select one or more product combinations from received lists, said constraints of a shopper being applied to a group of products and said product combinations being responsive to said group of products; a shopping list generating process running on said one or more CPUs, said list generating process being able to receive said plurality of inputs from the electronic shopping assistant process over said one or more networks by using an electronic shopping list protocol, being able to search products in an online product catalog stored in a product database, being able to compute a plurality of lists of product combinations that constraints given in the input, each said list providing one or more products for each of said plurality of recipients, and being able to send lists of product combinations back to the electronic shopping assistant process again by using the electronic shopping list protocol, wherein at least one of said constraints is a shopping list constraint applicable to an entire shopping list comprised of a combination of products, and wherein said computation optimizing said constraints incorporates product preferences of a merchant.