US20130311337A1 - Universal consumption service - Google Patents

Universal consumption service Download PDF

Info

Publication number
US20130311337A1
US20130311337A1 US13/986,612 US201313986612A US2013311337A1 US 20130311337 A1 US20130311337 A1 US 20130311337A1 US 201313986612 A US201313986612 A US 201313986612A US 2013311337 A1 US2013311337 A1 US 2013311337A1
Authority
US
United States
Prior art keywords
vendor
user
product
implementations
server system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/986,612
Inventor
Nathan Stoll
Andrew Ellerhorst
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Walmart Apollo LLC
Original Assignee
Luvocracy Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Luvocracy Inc filed Critical Luvocracy Inc
Priority to US13/986,612 priority Critical patent/US20130311337A1/en
Priority to PCT/US2013/041700 priority patent/WO2013173788A1/en
Priority to PCT/US2013/041702 priority patent/WO2013173790A1/en
Priority to PCT/US2013/041705 priority patent/WO2013173792A1/en
Priority to PCT/US2013/041714 priority patent/WO2013173799A1/en
Assigned to Luvocracy Inc. reassignment Luvocracy Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ELLERHORST, Andrew, STOLL, NATHAN
Publication of US20130311337A1 publication Critical patent/US20130311337A1/en
Assigned to WAL-MART STORES, INC. reassignment WAL-MART STORES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: Luvocracy Inc.
Priority to US14/708,069 priority patent/US10346895B2/en
Assigned to WALMART APOLLO, LLC reassignment WALMART APOLLO, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WAL-MART STORES, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • G06Q30/0214Referral reward systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0633Lists, e.g. purchase orders, compilation or processing
    • G06Q30/0635Processing of requisition or of purchase orders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/046Interoperability with other network applications or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/20Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel
    • H04W4/21Services signaling; Auxiliary data signalling, i.e. transmitting data via a non-traffic channel for social networking applications

Definitions

  • the disclosed implementations relate to the field of online commerce generally and to enhancing optimizing commerce experiences for users in particular.
  • Personal assistants, wedding planners, travel agents, and other consumer agents offer a contractual relationship with the end consumer to help them fulfill their consumer needs for products and services, brokering the deal with the ultimate product or service providers.
  • a wedding planner might arrange for a service or a service provider (e.g., reserving and contracting a band. Similar to these services, our service acts as an Agent on behalf of the consumer to broker a “consumptive experience for a product/service combination (broadly defined) that they pay for (most of the time). It would be useful to have a service that would curate the large number of products and services available and the various vendors to provide the best experience to a user in a way similar to the way that personal assistants work or a personal shopper.
  • the system described herein bridges the gap between “social” and “commerce” by enabling a universal ability to consume, irrespective of merchant or product or service, and seamlessly making the consumption easy. This allows for the free expression of social intent, while enabling commerce to occur where it is already most strongly encouraged: from the people we trust.
  • the system brokers consumptive experiences on behalf of end consumers, for combinations of products and services, where the consumer registers the intent to consume (and typically transacts) with the service, authorizing the service to act as an agent on their behalf to find and coordinate the fulfillment of the consumptive experience from various service and product providers, merchants, retailers, distributors, dealers, manufacturers, or any other means or method of consumptive fulfillment.
  • Products are defined as consumer objects that can be used or consumed by the purchaser and includes both physical products (e.g., a chair) and digital products (an application, a piece of digital media etc.).
  • Services can include any purchasable service (e.g., a restaurant reservation or a house painter painting a normal sized house or any other service).
  • the service acts like an agent/broker/concierge/personal shopper on behalf of the member, who can express their intent to consume a product or service, can provide a payment method, and the agent thereafter ensures that the product and/or service seamlessly is delivered for the individual.
  • the service has three main areas of systems and methods. The first involves analyzing, capturing, and representing the product/service intended for consumption. The second involves the management of the payment, processing, merchant/vendor relationships, and fulfillment of the product/service. The third covers the optimization and selection of merchants/vendors/providers to optimally obtain the best product for the user.
  • a method for curating online content to enhance a user's experience is disclosed.
  • the computer system described within customizes and curates both products and services and the vendors that provide those products and services.
  • the system provides recommendations to a user based on, among other things, the user's preferences, interests, social network relationships, trusts and overall product popularity.
  • the computer system assists the user in determining the optimal vendor from which to purchase the indicated product or service.
  • the product purchase request from a user includes a vendor preference.
  • the purchase request includes a user specified vendor with instructions to use only the specified vendor.
  • the purchase request includes a user specified vendor, but no instructions to use only the specified vendor.
  • the level of preference is included in the product request and the stronger the level of the request, the more likely that the computer system will use the specified vendor.
  • the purchase request includes either no vendor or no stated preference. In this case, the computer system selects a vendor from the plurality of possible vendors.
  • the computer system stores a database of vendor profiles.
  • Each vendor profile includes a plurality of vendor category scores.
  • Each vendor category score rates a vendor on a particular aspect or attribute associated with providing products to users.
  • vendor score categories includes such categories as average cost, delivery time, delivery cost, consumer satisfaction, distance from the user, shipping methods, stock status, return policy, and any other category relevant to providing products or services to consumers.
  • the computer system uses the plurality of vendor category scores to generate an overall weighted vendor score for each vendor for each product order.
  • the various vendor category scores are weighted in accordance with priorities associated with each category score. Once an overall weighted score is generated for each vendor, the vendors are ranked in accordance with their respective overall weighted vendor score.
  • the computer system determines a vendor from which to purchase the requested product or service. In some implementations, the vendor with the highest overall weighted vendor score is selected. In some implementations, each product is stored in a product database and has one or more associated vendors. The computer system selects the associated vendor stored in the product database. In some implementations, the user specifies a vendor when submitting the product purchase request and the computer system selects the user specified vendor.
  • the computer system generates an overall vendor score for both the user submitted vendor and the plurality of vendors stored by the computer system. The computer system then compares the overall vendor score of the user submitted vendor and the highest scored vendor in the plurality of vendors. If the overall vendor score for the highest scored vendor of the plurality of vendors exceeds the overall vendor score of the user submitted vendor by at least a predetermined amount, the computer system selects the highest scored vendor instead of the user selected vendor. In some implementations, if the computer system selects a vendor other than the user submitted vendor, the system sends a confirmation request to the user prior to purchasing the requested product from the new vendor. If the user responds and rejects the new vendor, the computer system reverts to the user selected vendor.
  • the priorities associated with the vendor category scores are determined by the user and submitted with the associated product purchase request.
  • the computer system has default values associated with each vendor category and the computer uses the default priority vendor scores when generating the overall vendor scores.
  • priorities are determined based on past user behavior that has been recorded. The determined priorities are then stored in the user profile.
  • the computer system purchases the product from the selected vendor and arranges for delivery of the product according to the user's instruction.
  • a method for selecting a vendor is disclosed. The method is performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors.
  • the server system stores one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores.
  • the server system receives a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased.
  • the server system determines a vendor to supply the requested product based on the stored vendor profiles.
  • the server system purchases the requested product from the determined vendor.
  • the server system then arranges for delivery of the purchased product or service.
  • a server system for selecting a vendor has one or more processors, and memory storing one or more programs to be executed by the one or more processors.
  • the one or more programs include instructions for storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores.
  • the one or more programs further include instructions for receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased.
  • the one or more programs further include instructions for determining a vendor to supply the requested product based on the stored vendor profiles.
  • the one or more programs further include instructions for purchasing the requested product from the determined vendor.
  • the one or more programs further include instructions for arranging for delivery of the purchased product or service.
  • a non-transitory computer readable storage medium storing one or more programs configured for execution by a server system.
  • the one or more programs also include instructions for storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores.
  • the one or more programs further include instructions for receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased.
  • the one or more programs further include instructions for determining a vendor to supply the requested product based on the stored vendor profiles.
  • the one or more programs further include instructions for purchasing the requested product from the determined vendor.
  • the one or more programs further include instructions for arranging for delivery of the purchased product or service.
  • FIG. 1 is a block diagram illustrating a client-server environment in accordance with some implementations.
  • FIG. 2 is a block diagram illustrating a client system in accordance with some implementations.
  • FIG. 3 is a block diagram illustrating a server system in accordance with some implementations.
  • FIG. 4 depicts a block diagram of an exemplary data structure for a user profile database for storing information related to users of the server system in accordance with some implementations.
  • FIG. 5 depicts a block diagram of an exemplary data structure for a vendor profile database for storing information related to vendors of the server system in accordance with some implementations.
  • FIG. 6 is a flow diagram illustrating the process for selecting a vendor in accordance with some implementations.
  • FIG. 7 is a flow diagram illustrating the process for selecting a vendor in accordance with some implementations.
  • a computer system operates a commerce system for allowing users to easily and quickly find and purchase goods and services that meet their specific needs and desires.
  • the commerce system is available online via a web site, mobile electronic device, etc.
  • the commerce system operated by the computer system uses vendor profiles and user profiles to select the most appropriate vendor to provide the product or service requested by the user at the time of the transmission. The computer system then purchases the desired product or service from the selected vendor and arranges for delivery of the product or service to the user or another person indicated by the user (e.g., as a gift).
  • FIG. 1 is a block diagram illustrating a client-server environment 100 in accordance with some implementations.
  • the client-server environment 100 includes one or more client systems 102 - 1 and 102 - 2 , a server system 120 , and one or more vendors 170 , all connected over a network 110 .
  • the client system 102 includes one or more client applications 104 and a display 106 .
  • the server system 120 includes a communication module 122 , a request processing module 124 , a vendor scoring module 126 , a purchasing module 128 , a vendor selection module 130 , a product database 140 , a vendor database 150 , and a user profile database 160 .
  • the network 110 may consist of any one or more of any of a variety of networks, including local area networks (LAN), wide area networks (WAN), wireless networks, wired networks, the Internet, or any combination of such networks.
  • the client system 102 includes one or more client applications 104 .
  • the one or more client applications 104 include, but are not limited to, a web browsing application for connecting to the server system 120 .
  • the client system 102 also includes a display 106 .
  • the client system is a computing device with the display integrated directly into the device itself, such as a laptop, a smart phone, a personal computer, a tablet computer, or other computing device.
  • the display is connected to, but not integrated into the client system. For example, desktop computer systems often do not have an integrated display and instead connect to a standalone display.
  • the client system 102 transmits a purchase request 114 to a server system 120 .
  • the purchase request 114 identifies a particular product or service that the user requests the server system to purchase on his or her behalf.
  • the purchase request 114 includes a specific vendor associated with the product or service requested.
  • the purchase request includes a vendor preferred by the user, but which is able to be changed by the server system 120 .
  • the purchase request 114 specifies a type or category of product, but not a specific product.
  • the server system 120 uses the included type or category information to select a product or service as well as a vendor to satisfy the user purchase request 114 .
  • the purchase request 114 does not specify a particular vendor, but includes a list of vendor attributes with associated priority information.
  • the list of vendor attributes with the associated priority information is then used by the server system 120 to select an appropriate vendor 170 to supply the requested product or service. For example, if the purchase request 114 indicates that low price is the highest priority, the server system 120 then chooses the vendor that offers the lowest price on the requested product or service. In another example, if the purchase request 114 indicates that fast shipping is the highest priority, then the server system chooses the vendor that will deliver the product or service in the shortest amount of time (e.g., the product must be delivered in time for a special occasion, like Mother's Day).
  • the client system 102 sends a product add request 118 to the server system 120 .
  • the product add request 118 includes a product to be added to the product database 140 of the server system 120 .
  • the product add request 118 specifies a product that is not already stored in the product database 140 .
  • the server system adds the product included in the product add request 118 to the product database 140 .
  • the product database 140 already includes the product specified in the product add request 118 .
  • the server system 120 updates the product database 140 with information in the product add request 118 .
  • the server system 120 edits the relevant product profile to include the new potential vendor.
  • the server system 120 verifies the information included in the product add request with a third party prior to editing the information stored in the product database.
  • the product add request 118 includes information describing the characteristics of the included product.
  • Information describing the characteristics of a product includes, but is not limited to: product specifications, price, size, color, one or more vendors that stock the item, time availability, and product stock amounts.
  • the server system 120 adds a new entry in the product database 140 for the product included in the product add request 118 (e.g., when no entry for the product already exists). In this case, the information from the user describing the characteristics of the product is used to fill out the new entry in the products database 140 . Once the entry is added to the product database 140 , the server system 120 uses the newly added product to show and/or recommend to other users of the server system 120 .
  • the product database 140 already includes the product described in the product add request.
  • the server system 120 updates the product entry in the product database 140 to include any new information included in the product add request 118 .
  • the product database 140 will be updated to include a new vendor associated with the product, to change the price of the product based on the price included in the product add request 118 , or to add a new product characteristic to the entry in the product database 140 .
  • the product add request 118 is received as part of a user recommendation and the product database is updated to include the user who submitted the product add request 118 as a recommending user.
  • the server system 120 verifies the information included in the product add request 118 with a third party prior to adding or updating the new information to the product database.
  • the client system receives a vendor confirmation request 116 from the server system 120 .
  • the vendor confirmation request 116 lists a purchase request 114 the user has made and a vendor the server system 120 has selected to complete the purchase, and requests that the user confirm that the selected vendor 170 is acceptable to the user.
  • the user confirms the selected vendor 170 is acceptable to the user of the client system 102 and the client system 102 sends a confirmation to the server system 120 .
  • the user rejects the selected vendor 170 and a rejection is sent by the client system 102 to the server system 120 .
  • the rejection when the client system 102 sends a rejection of the selected vendor 170 to the server system 120 , the rejection also includes a vendor 170 selected by the user of the client system 102 .
  • the rejection instructs the server system 120 to select a different vendor.
  • the rejection includes a list of vendor attributes that each have an associated priority. The server system 120 then is able to select the vendor that most closely matches the priorities set out in the rejection. For example, the rejection states that customer review ratings above 4 stars are the highest priority and that price is the second highest priority.
  • the server system 120 screens out the vendors with average customer review rating below 4 stars and then selects the vendor with the lowest price from among the remaining vendors.
  • the selected vendor 170 will be the vendor with the lowest price among all the vendors 170 with customer service review scores that average above 4 stars.
  • the server system 120 includes a communication module 122 , a request processing module 124 , a vendor scoring module 126 , a purchasing module 128 , a vendor selection module 130 , a product database 140 , a vendor database 150 , and a user profile database 160 .
  • the communication module is configured to send and receive communications over the network 110 to one or more client systems 102 and one or more vendors 170 .
  • the communication module 122 handles all communication with the one or more client systems 102 .
  • the communication module 122 receives a purchase request 114 from a client system 102 .
  • the communication module 122 sends the purchase request 114 to the request processing module 124 .
  • the communication module 122 sends an acknowledgement back to the client system 102 , indicating receipt of the purchase request 114 .
  • the communication module 122 receives a product add request 118 from a client system 102 .
  • the communication module 122 transmits the received product add request 118 to the product database 140 directly.
  • the communication module transmits the received product add request 118 to the request processing module 124 .
  • the communication module 122 receives a vendor confirmation request 116 from the vendor selection module 130 . In some implementations, the communication module 122 transmits the vendor confirmation request 116 to the client system 102 . In some implementations, the communication module 122 is able to use one or more of several different communication methods to transmit the recommendation 116 to the client system 102 .
  • the server system 120 stores contact information for each user in the user profile database 160 .
  • the communication module 122 determines the communication method for communicating with a user based on past communications with the user of the client system 102 . Thus, the communication module 122 chooses the communication method that a particular user of the client system 102 uses most often when communicating with the server system. For example, if a user communicates with the server system 120 through email in 75% of communications, the server system 120 will use an email messaging system to deliver a vendor confirmation request 116 to the user. In some implementations, the communication module 122 uses a particular user's most recent communication method to communication with that particular user. In some implementations, each user selects one or more preferred communication methods and this preference is stored in the user profile database 160 .
  • a user selects text messaging as the preferred method for receiving messages and in response the communication module 122 will then use text messages to send vendor confirmation requests 116 to the user, unless directed otherwise.
  • the communication module 122 will use multiple communication methods to send vendor confirmation requests 116 to the user.
  • the communication module 122 chooses the communication method based on the time and date that the vendor confirmation request 116 is to be sent. For example, the communication module 122 uses email messages to deliver vendor confirmation requests 116 during the standard workday (9 am-5 pm Monday through Friday) and uses text messages to deliver vendor confirmation requests 116 during evening and on weekends. In some implementations, no vendor confirmation requests 116 will be sent during typical sleeping hours. In some implementations, each user selects time and data preferences for the communication module 122 to use and these preferences are stored in the user profile database 150 . The communication module then follows the user selected preferences when communicating with the client system 102 associated with the user.
  • the communication module 122 receives a response message from a client device either confirming the selected vendor or rejecting the selected vendor. In either case, the response message is transmitted to the vendor selection module 130 . In some implementations, the communication module 122 sends a vendor confirmation request 116 that includes alternative vendors to the vendor selected by the server system 120 . In this case, the response message received from the client system 102 included user's selection of one of the alternative vendors. If so, the server system 120 uses the selected alternative vendor. In some implementations, the response message from the client system 102 also confirms or rejects other aspects of the purchase request 114 . For example, the user rejects or accepts the shipping terms, the specific product SKU selected, or the shipping address.
  • the request processing module 124 is configured to receive requests from a plurality of client systems 102 via the communication module 122 .
  • the client system 102 receives a purchase request 114 from a client system 102 .
  • the request processing module 124 determines whether the requested product is stored in the product database 140 . If the requested product is already stored in the product database, the request processing module 124 requests the user profile of the user associated with the purchase request from the user profile database 160 . Once the user profile is received by the request processing module, the request processing module 124 transmits the purchase request 114 and the retrieved user profile to the vendor selection module 130 .
  • the product requested in the purchase request 114 is not already stored in the product database 140 .
  • the request processing module 124 determines whether the purchase request 114 also includes a product add request 118 .
  • the purchase request 114 includes a product add request 118 and the request processing module 124 transmits the data necessary to create a product entry in the product database 140 to the product database 140 .
  • the purchase request 114 does not include a product add request 118 .
  • the request processing module 124 requests information for the requested product from a plurality of vendors 170 through the network 110 .
  • the product database 140 requests at least the basic information necessary to recommend the product a user (e.g., name of the produce, price, shipping terms and price, and at least a basic description of the items attributes.)
  • the request processing module 124 is able to fill out a product entry for the new product in the product database 140 and gather a list of vendors that stock the product.
  • the request processing module 124 receives a product add request 118 from a client system 102 . In some implementations, in response to receiving a product add request 118 , the request processing module 124 determines, for each respective product of the one or more products included in the product add request 118 , whether the respective product included in the product add request 118 is already included in the product database 140 . If the respective product is included in the product database, the request processing module 124 determines whether any of the information included in the product add request 118 differs from the corresponding product entry in the product database 140 . The request processing module 124 updates the information stored in the product database 140 to include any differences.
  • each product included in a product add request 118 has an associated vendor 170 .
  • each product entry in the product database includes a list of vendors that stock the product.
  • the product entry for each product included in the product add request 118 is updated to include a vendor associated with the product in the product add request 118 in the list of vendors.
  • the request processing module 124 transmits the received purchase request 114 to a vendor selection module 130 to determine the optimal vendor to supply the requested product or service.
  • the vendor selection module 130 determines a list of all potential vendors 170 that are able to supply the requested product or service to the user.
  • the vendor selection module 130 sends the list of potential vendors to the vendor scoring module 126 for scoring.
  • the purchase request 114 includes a list of vendor category priorities (e.g., to be used to weight the various vendor category scores).
  • the vendor scoring module 126 sends the set of vendor category priorities to the vendor scoring module 126 .
  • the vendor scoring module 126 generates scores for one or more vendors 170 .
  • the vendor scoring module 126 collects data about vendors. In some implementations, this data is gathered from the vendors 170 themselves. For example, the vendor scoring module 126 requests the location of the vendor, the country of origin, the prices of the products supplied by the vendor 170 , shipping policies, shipping options and prices, inventory status, and return policies from the vendors directly.
  • the vendor scoring module 126 gathers data from users. For example, users can submit feedback to the server system 120 rating the customer service quality, the shipping speed, and the return policies of the vendor 170 .
  • vendor scoring module 126 uses the gathered information to generate a plurality of vendor category scores. Each respective vendor category score is associated with a particular attribute of a respective vendor 170 . In some implementations, each vendor category score is a number that rates a particular attribute of a vendor on a numerical scale. For example, a particular vendor category is customer service quality and each vendor category score is a number between 1 and 10, with 1 being the worst and 10 being the best.
  • the purchase request 114 includes a set of priorities from the user that are used to weight the various vendor category scores and determine an overall vendor score for each vendor. In some implementations, the purchase request 114 does not include a set of priorities. In this case, the vendor scoring module 126 uses a predefined set of default priorities. In some implementations, the server system 120 defaults to weighing each vendor attribute or category equally. In some implementations, the server system 120 defaults to prioritizing price as the highest priority category or factor.
  • the vendor scoring module 126 accesses the user profile database 160 to determine the set of category priorities for the user that submitted the purchase request 114 .
  • the priorities are based on, among other priorities, past user purchase requests, the user's budget, the user's location, the priorities of users that have been trusted by the user, and other relevant information stored in the user profile.
  • the vendor scoring module 126 receives a request from the vendor selection module 130 to generate overall vendor scores for a plurality of vendors 170 .
  • the vendor scoring module 126 receives priorities associated with the one or more vendor categories from the vendor selection module 130 .
  • the vendor scoring module 126 generates overall vendor scores by using the received category priorities to weight the vendor category scores.
  • the vendor scoring module 126 sorts the plurality of vendors into a list that is sorted from highest overall score to lowest overall score. Once the vendor scoring module 126 sorts the plurality of vendors into a list, the vendor scoring module 126 sends the sorted list to the vendor selection module 130 . In some implementations, the vendor scoring module 126 also sends calculated scores to the vendor selection module 130 .
  • the vendor selection module 130 receives a sorted list of vendors from the vendor scoring module 126 . In some implementations, the vendor selection module 130 selects the vendor that most closely matches the user's needs. In some implementations, the user has specified a vendor 170 . In some implementations, the vendor selection module 130 always uses the user specified vendor when a vendor has been specified by the user. In some implementations, the user has indicated that only the specified vendor may be considered by the server system 120 . In other implementations, the user has indicated that server system 120 can consider alternatives to the specified vendor and the vendor selection module 130 compares the overall score of the vendor specified by the user and the vendor with the best overall vendor score per the ranked list of vendors provided by the vendor scoring module 126 .
  • the vendor selection module 130 will select the top scoring vendor instead of the vendor specified by the user. For example, the user has indicated a preference for vendor A, and vendor A receives an overall score of 5.5 (out of ten) and vendor B receives an 8.6, which is the highest score from the vendor scoring module 126 . The difference is 3.1. If the vendor selection module 130 has a predetermined maximum difference value of 2, the vendor selection module 130 will select vendor B, despite the user's indicated preference. In some implementations, the maximum difference value will vary depending on the strength of the preference that the user has for the indicated vendor.
  • the user preference will be so strongly preferred that the vendor selection module 130 will not change vendors regardless of other vendor scores.
  • the vendor selection module 130 if the vendor selection module 130 selects a vendor that is different from the user specified vendor, the vendor selection module 130 sends a vendor confirmation request 116 to the client system 102 .
  • the vendor confirmation request 116 will identify the selected vendor, provide an explanation why the vendor was selected (e.g., this vendor provides a lower price, with the same shipping time), and requests that the user of the client system 102 confirm the choice of new vendor.
  • the client system 102 responds and confirms the vendor choice.
  • the client system 102 responds and specifies that the user has rejected the selected vendor.
  • the vendor selection module 130 will select another vendor.
  • the vendor selection module 130 reverts to the user specified vendor.
  • the vendor selection module 130 determines one or more vendors favored by the user based on the user's past purchasing history. If a user has given positive feedback for a vendor in the past, the vendor selection module 130 will give that vendor an advantage in future consideration. For example, if Vendor A and Vendor B both score a 7.5 overall vendor score for a particular purchase request 114 , and the user associated with the purchase request 114 has previously given Vendor B a positive review, the vendor selection module 130 will modify the overall score by a specific amount to reflect this positive experience. The exact amount of benefit given to the vendor will depend on the number of times the user has given positive feedback for a vendor and how positive the feedback was.
  • the vendor selection module 130 will determine that a user has given poor feedback to a specific vendor. In this case, the vendor selection module 130 will adjust the vendors overall score down in response. The amount that the vendors overall score is adjusted up or down varies based on the number of positive or negative reviews received from the user and the degree to which the review is positive or negative.
  • the vendor selection module 130 determines user favored vendors based on the vendors having been recommended and reviewed positively by other users of the server system 120 in which the purchasing user has indicated trust. Thus, vendors recommended or reviewed positively by other trusted users will have their overall scores modified up and vendors reviewed negatively will have their overall scores modified down. In some implementations, the amount of modification depends on the level of trust between the two users. For example, User A has indicated a high level of trust in User B and User B has highly reviewed Vendor C. When the vendor selection module 130 is selecting a vendor for a user A purchase request 114 , the overall score of Vendor C is modified up.
  • the communication module 122 updates the vendor database 140 to reflect the feedback. In this way, vendor scores can be adjusted up or down based on the received user feedback.
  • the vendor selection module 130 will select two or more potential vendors and transmit a vendor selection message to the client system 102 . The user can then select a vendor from the potential vendor choices. In some implementations, the vendor selection module 130 sends the user indicated vendor and the highest scoring vendor. In some implementations, the vendor selection module 130 also transmits an explanation of why each vendor is offered as an option. In some implementations, the explanation is displayed in response to the user input having requested one or more explanations. For example, the vendor selection module 130 transmits a vendor selection message to the client system 102 Vendor A and Vendor B, noting that Vendor A has a lower price but with slower shipping and that Vendor B has a more expensive price but with faster shipping. In some implementations, the vendor selection message includes the specific spice and supply times to help the user make the best decision.
  • the purchasing module 128 is configured to receive a purchase request from the vendor selection module 130 .
  • the purchase request includes a product to be purchased and a vendor to be used.
  • the purchasing module 128 then enlists the communication module 122 to purchase the desired product from the determined vendor 170 available over the network 110 .
  • the purchasing module 128 arranges for delivery of the product or service according to the instructions from the user of the client system 102 .
  • purchases from vendors are made through an application programming interface (API).
  • API application programming interface
  • purchases are made manually by workers associated with the server system either in person, on the phone, or electronically (e.g., an employee calls a vineyard to place an order for wine that was order through the server system).
  • the purchasing module 128 allows vendors to make bids on products. In this way, once a user has issued a buy product request, the purchase module 128 can notify one or more vendors, receive the vendors bids, and choose the vendor that offers the best value. In this way, vendors can have a publicly listed price, but then can bid at a lower price in certain situations without publicly publishing the lower price.
  • the purchasing module 128 purchases the requested products from users of the server system 120 . In this way, users of the server system 120 can both buy and sell products through the service. In this way, the server system is able to find the best value for users of the server system 120 . In some implementations, the purchasing module 128 negotiates with the rights holders and organizing the product of a particular good or service. In some implementations, the purchasing module 128 is able to take orders for products and services that are created on demand or would normally not be available from a traditional commerce system.
  • the purchase request from a user includes a blend of “product” and “service” from various or multiple vendors.
  • the server system could coordinate the delivery of a swing set from a seller on Craigslist, and have a service provider to deliver it, sand it, re-stain it and install it.
  • the purchase module 128 would negotiate or order from each vendor and then arrange for co-ordination between the various providers to ensure that the product and services are delivered promptly and at a low cost. In this was users have a single point of contact (the server system) to get a good price on a complicated set of services and goods. This has the benefit of reducing price and difficulty.
  • the product or service requested is delivered repeatedly (e.g., a bacon of the month club) or contracted over a long time (e.g., a 2 year cell phone plan).
  • the purchase module 128 arranges for both payment and delivery on a regular schedule to provide convenience to both the vendor and the user.
  • the purchase module 128 can use coupons, discounts, and other means of adding marketplace value to a transaction on behalf of the user, even when the user is unaware of the coupons prior to placing a purchase order.
  • the product database 140 contains a plurality of product entries. Each product entry is associated with a single product and contains information related thereto.
  • the product entries store the unique identifier of the product (e.g., bar code, name and module number, SKU number, or other product identifier), the specifications of the product (size, color, capacity, etc), a list of vendors that can supply the product, the price of the product, and any other pertinent information.
  • different vendors will have different prices and thus the product entry in the product database 140 will store a list of vendors and a vendor specific price for each vendor. For example, if a product is available from 4 vendors, the product database 140 will store a separate price for each vendor.
  • the products in the product database 140 are added by partner vendors 150 .
  • the products in the database 140 are added by users and recommenders in the server system 120 .
  • the product database 140 is filled by crawlers using algorithms specified by the server system 120 .
  • the product database 140 is filled through a combination of crowd sourcing (e.g., users can submit products and associated information) and paid human labor (e.g. services where workers are paid a small fee to add new products to the database.)
  • the products database 140 includes information for each product, including, but not limited to, the price of the product, its specification (size, color, etc), the vendor or vendors from which it is available, whether the item is in stock, and whether it is available for delivery.
  • the vendor selection module 130 and the purchasing module 128 use the information stored in the product database 140 to purchase the selected product.
  • the product database 140 searches websites of vendors, or other databases maintained by vendors that are available over a network 110 , for the desired product and updates the product database 140 based on information stored on websites or in catalogs.
  • the information in the product database includes a time stamp or other date indication. Thus, if a product is on sale or otherwise time limited, the product database can notify users or make recommendations at the appropriate time.
  • the vendor database 150 includes a database of all the vendors associated with the server system 120 .
  • the vendor database includes vendor profiles 152 .
  • a vendor profile 152 includes the name of the vendor, vendor location, vendor nationality, one or more vendor category scores, user feedback for the vendor, and any other relevant information.
  • a vendor profile 152 includes contact information submitted by the vendor or stored by the system after contact with the vendor including but not limited to websites, email addresses, phone numbers, user names, instant message user IDs, and social networking sites sufficient to allow the service to contact the vendor or an agent of the vendor.
  • the communication module 122 uses information stored in the vendor database 150 to send communications to the vendor.
  • the user profile database 160 contains user profiles for users who have registered to use the service provided by the server system 120 .
  • a user profile includes the name, ID, demographic information (gender, age, location, etc), purchasing history, social network information, and trust information.
  • the user profile database 160 includes trust graph data.
  • the trust graph data includes information describing a directed trust graph.
  • the trust graph includes nodes, which represent users, and edges connecting nodes, which represent the trust level between the two users represented by the two nodes that the edge connects.
  • the user profile database 160 includes trust graph data.
  • the trust graph database includes information describing a directed trust graph.
  • the trust graph includes nodes, which represent users, and edges connecting nodes, which represent the trust level between the two users represented by the two nodes that the edge connects.
  • the vendors 170 are commercial organizations with products to sell.
  • the vendors 170 can receive orders to purchase products from the server system 120 and fulfill those orders.
  • FIG. 2 is a block diagram illustrating a client system 102 , in accordance with some implementations.
  • the client system 102 typically includes one or more processing units (CPUs) 202 , one or more network interfaces 210 , memory 212 , and one or more communication buses 214 for interconnecting these components.
  • the client system 102 includes a user interface 204 .
  • the user interface 204 includes an associated display device 104 and optionally includes an input means such as a keyboard, mouse, a touch sensitive display, or other input buttons 208 .
  • the display device 106 includes an audio device or other information delivery device.
  • some client systems use a microphone and voice recognition to supplement or replace the keyboard.
  • Memory 212 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 212 may optionally include one or more storage devices remotely located from the CPU(s) 202 . Memory 212 , or alternately the non-volatile memory device(s) within memory 212 , includes a non-transitory computer readable storage medium. In some implementations, memory 212 or the computer readable storage medium of memory 212 stores the following programs, modules and data structures, or a subset thereof:
  • FIG. 3 is a block diagram illustrating a server system 120 in accordance with some implementations.
  • the server system 120 typically includes one or more processing units (CPUs) 302 , one or more network interfaces 304 , memory 306 , and one or more communication buses 308 for interconnecting these components.
  • CPUs processing units
  • network interfaces 304 one or more network interfaces 304
  • memory 306 one or more communication buses 308 for interconnecting these components.
  • Memory 306 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 306 may optionally include one or more storage devices remotely located from the CPU(s) 302 . Memory 306 , or alternately the non-volatile memory device(s) within memory 306 , includes a non-transitory computer readable storage medium. In some implementations, memory 306 or the computer readable storage medium of memory 306 stores the following programs, modules and data structures, or a subset thereof:
  • FIG. 4 depicts a block diagram of an exemplary data structure for a user profile database 160 for storing information related to users of the server system ( FIG. 1 , 120 ).
  • the user profile database 160 includes a plurality of user profiles 402 - 1 to 402 -P, each of which corresponds to a user registered with the server system ( FIG. 1 , 120 ).
  • each user profile 402 contains a user profile ID 404 , a user history 406 , trust information 408 , recommendations 410 made by the user, user contact information 412 , and vendor preferences 414 .
  • user profile ID 404 is a value that uniquely identifies a specific user of the server system ( FIG. 1 , 120 ). In some implementations, this value is chosen by the user and is a user name. In other implementations, this value is assigned to the user by the server system ( FIG. 1 , 120 ) as part of the registration process.
  • the user history 406 stores a history of the user's past interactions with the server system ( FIG. 1 , 120 ) including past user purchases and purchase details, searches, page views, previous product recommendations, previous product reviews, and social connections of the user including previously recorded trust information for other users and/or social information received from social networking sites.
  • trust information 408 includes data describing the social connections of the user and includes a trust level for other users of the server system ( FIG. 1 , 120 ).
  • a trust level is a value representing the degree to which a user trusts the opinions and recommendations of another user.
  • trust information is explicitly submitted by the users, in other situations the server system ( FIG. 1 , 120 ) infers trust information from the actions of users, and in yet other situations trust information includes information from both user submissions and server inferences.
  • recommendation 410 data includes product purchases and product recommendations previously submitted by the user.
  • contact information 412 includes a list of contact information for contacting the user through a plurality of communication methods and information describing if and when the server system ( FIG. 1 , 120 ) should use that method.
  • the contact information 412 includes but is limited to, email addresses, phone number, Twitter handle, social network ID, physical address and any other information that helps the server system ( FIG. 1 , 120 ) contact the user. The user may select that the server system ( FIG. 1 , 120 ) should never use social network messaging to contact to user and should use email address at all times except for the weekend and that a text message to a mobile phone should be used on the weekend.
  • the contact information 412 includes login and password information for one or more social networking sites.
  • vendor preference data 414 includes data indicating the user's vendor preferences. In some implementations, vendor preference data 414 includes vendors that the user has explicitly indicated as preferred vendors and vendors that the user has explicitly indicated as non-preferred vendors. In some implementations, vendor preference data 414 is determined based on previous user behavior (e.g., vendors that the user has repeatedly selected). In some implementations, a user's vendor preference is based on feedback or reviews from the user. Vendors that received positive reviews will be noted as potential favored vendors and vendors that receive negative reviews will be noted as potential disfavored vendor.
  • contact information stored for the user includes one or more ways to contact the user including, but not limited to, email addresses, phone number, Twitter handle, social network ID, physical address and any other information that helps the server system ( FIG. 1 , 120 ) contact the user.
  • FIG. 5 depicts a block diagram of an exemplary data structure for a vendor database 150 for storing information related to vendors associated with the server system ( FIG. 1 , 120 ).
  • the vendor database 150 includes a plurality of vendor profiles 152 - 1 to 152 -P, each of which corresponds to a vendor associated with or accessible by the server system ( FIG. 1 , 120 ) (e.g., vendors from whom the server system can purchase products or services).
  • each vendor profile 152 contains a vendor profile ID 504 , a vendor name 506 , vendor location data 508 , user feedback data 510 , vendor category scores 512 , and contact information 514 for the vendor.
  • vendor profile ID 504 is a value that uniquely identifies a specific vendor associated with or accessible to the server system ( FIG. 1 , 120 ). In some implementations, this value is chosen by the vendor. In other implementations, this value is assigned to the vendor by the server system ( FIG. 1 , 120 ).
  • the vendor name 506 is a string that identifies the vendor to users of the server system ( FIG. 1 , 120 ).
  • the vendor name is a name associated with the vendor that is well known to users. For example, if a brand name is more commonly known to users than the official corporate or legal name of the vendor, the brand name could be included as the vendor name 506 .
  • vendor location 508 includes data describing the location of the vendor, including country of origin and the location of its headquarters and any distribution points. In some implementations, the vendor location 508 also includes estimated shipping times. In some implementations, the product information 510 includes data describing the products available from the vendor. In some implementations, product information 510 also includes prices, inventory status, delivery options, product customization options, and any other information related to the products offered by the vendor.
  • category score profiles 512 include a plurality of scores for a plurality of categories associated with the vendor.
  • relevant vendor category scores include separate scores for shipping time, user experience, average price, return policy, and any other categories that might be useful.
  • the categories are predetermined by the server system.
  • each category score profile 512 includes a category number 520 that identifies the category.
  • the category number 520 is an integer that identifies the same category in all vendor profiles 152 .
  • the “average price” category is assigned the category number 21 , the server system knows that every vendor category score with the category number 21 is average price.
  • the category data 522 is text that identifies the type of category score. For example, category data would include a text description such as “user experience” or “return policy.”
  • each category score profile 512 includes a category score 524 .
  • a category score is a number within a range that represents how well the vendor performs on the metric measured by the category.
  • all the category scores use the same scale.
  • each category score profile 512 has a customized scale. For example, all category scores are a number between 0 and 10 with 0 being the lowest score and 10 being the highest.
  • Each vendor is evaluated in one or more categories and is assigned a category score for each category.
  • category scores 524 are updated as new information is received by the server system ( FIG. 1 , 120 ).
  • new information is received in the form of user submitted feedback and reviews.
  • new information is received from the vendors themselves (e.g., new price information or new shipping information).
  • each category score profile 512 includes a default weight 526 .
  • the default weight is the weight given to the category score when no specific weight for the category has been indicated by a user. For example, the default category weight for the category “average price” is high, while the default category weight for the category “return policy” is lower.
  • the category score profile includes user feedback 528 received from user relevant to the category associated with the category score profile 512 .
  • FIG. 6 is a flow diagram illustrating the process for click-less purchasing in accordance with some implementations.
  • Each of the operations shown in FIG. 6 may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders).
  • the method described in FIG. 6 is performed by the server system ( FIG. 1 , 120 ).
  • the server system creates ( 602 ) one or more vendor profiles.
  • vendor profiles store information related to a vendor accessible to the server system ( FIG. 1 , 120 ). Stored information includes, but is not limited to, the name of the vendor, products offered by the vendor, price information for the products offered by the vendor, product ordering procedures for the vendor, vendor location, and shipping times and procedures.
  • the vendor profiles store any information necessary for purchasing products or services from the vendor.
  • the vendor profiles include scores for the vendor for one or more attribute categories.
  • creating vendor profiles includes determining ( 604 ) one or more vendor scoring categories.
  • vendor scoring categories include average price, delivery time, and user satisfaction.
  • the server system ( FIG. 1 , 120 ) then, for one or more determined vendor scoring categories, generates ( 606 ) a vendor category score based on past vendor performance.
  • a vendor category score is an indication of how well the vendor performs in that category. For example, if the category was return policies, vendors with good return policies would receive high scores and vendors with poor return policies would receive low scores.
  • past vendor performance is based on user supplied feedback ( 608 ).
  • user supplied feedback includes user reviews, user ratings, and user submitted recommendations. For example, a user submits ratings for a vendor based on a recent purchase and gives the vendor 5 stars out of 5 for shipping time and 4 out of 5 stars for customer service. The user ratings are then used to adjust the corresponding category scores.
  • past vendor performance is determined based on data directly measured by the server system ( FIG. 1 , 120 ) ( 610 ).
  • the server system ( FIG. 1 , 120 ) tracks prices for products offered by a vendor at regular intervals and compares those prices against prices offered for the same products at other vendors during the same intervals. Based on the tracked prices, the server system ( FIG. 1 , 120 ) can generate a price average category score for each vendor. Thus, if the server system ( FIG. 1 , 120 ) periodically checks the current price for a specific product with a plurality of vendors, it can determine an average price. Based on the average price, the server system ( FIG.
  • the server system can rate each vendor as below or above the average price and by collecting ratings for a plurality of products, the server system gives each vendor an average price score.
  • the data measured by the computer system includes product delivery time, product price, and number of products in stock.
  • the server system stores ( 614 ) one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores ( 612 ). Each category score is associated with a particular attribute of a vendor.
  • the server system receives ( 616 ) a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased. For example, the purchase request includes a request for a copy of season 2 of “Breaking Bad” on DVD.
  • the request also includes a user preferred vendor for fulfilling the request.
  • the purchase request does not include a preferred vendor, and the server system ( FIG. 1 , 120 ) accesses the product database to determine a list of vendors that sell the requested product.
  • the product database includes a preferred vendor for the requested product.
  • the server system ( FIG. 1 , 120 ) determines ( 618 ) a vendor to supply the requested product based on the stored vendor profiles. In some implementations, the server system ( FIG. 1 , 120 ) selects the vendor included in the purchase request. In some implementations, the server system ( FIG. 1 , 120 ) selects a vendor from among a list of preferred vendors stored in the user profile of the user who submitted the request. In some implementations, the server system ( FIG. 1 , 120 ) selects a vendor by determining vendors preferred by users of the server system ( FIG. 1 , 120 ) that are trusted by the requesting user.
  • the server system ( FIG. 1 , 120 ) determines ( 620 ) a vendor to supply the requested product based on the stored vendor profiles
  • the server system ( FIG. 1 , 120 ) further, for each vendor in the plurality of vendors: generates a overall vendor score based on the one or more vendor category scores wherein the one or more vendor category scores are weighted based on the priority associated with each category.
  • the weights are based on category priorities received from the user.
  • the server system ( FIG. 1 , 120 ) has default category weights that are used when no priorities are received from the user or stored in the user's profile.
  • the server system ( FIG. 1 , 120 ) ranks ( 622 ) the plurality of vendors based on the generated overall vendor score.
  • the list includes a list of vendors ordered from highest overall vendor score (e.g., best vendor match) to lowest overall vendor score (e.g., worst vendor match).
  • the priorities associated with the one or more vendor categories are predetermined by the computer system.
  • FIG. 7 is a flow diagram illustrating the process for click-less purchasing in accordance with some implementations.
  • Each of the operations shown in FIG. 7 may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders).
  • the method described in FIG. 7 is performed by the server system ( FIG. 1 , 120 ).
  • the server system ( FIG. 1 , 120 ) stores ( 702 ) user profiles for each user of the computer system; wherein user profiles include priorities associated with vendor categories.
  • the server system ( FIG. 1 , 120 ) prior to purchasing the requested product, sends ( 704 ) a request to the user to confirm the determined vendor.
  • the server system ( FIG. 1 , 120 ) receives 706 a response from the user confirming the determined vendor.
  • the response authorizes the use of the determined vendor.
  • the response from the user includes a rejection of the determined vendor.
  • the server system ( FIG. 1 , 120 ) purchases ( 708 ) the requested product from the determined vendor. In some implementations, the server system ( FIG. 1 , 120 ) only purchases the request product in response to a response from the user that authorizes the use of the determined vendor. In some implementations, the server system ( FIG. 1 , 120 ) arranges (710) for delivery of the purchased product or service.
  • the server system ( FIG. 1 , 120 ) receives ( 712 ) feedback from the user regarding the determined vendor. In some implementations, the server system ( FIG. 1 , 120 ) updates ( 714 ) the vendor profiles based on the received feedback. In some implementations, the server system ( FIG. 1 , 120 ) includes a product database ( 716 ). In some implementations, the server system ( FIG. 1 , 120 ) receives ( 718 ) a request to add a product to the product database, wherein the request includes a vendor associated with the product. In some implementations, the request to add a product to the product database is a recommendation from a user. In some implementations, the request to add a product to the product database is included in the purchase request.
  • a server system for improving the reliability of an Internet based commerce service through social network based product recommendations using a trust graph.
  • a trust graph represents trust between users.
  • the server system maintains a record of the trust relationships for each user registered with the service provided by the server system. In some implementations, the server system then uses this information to identify the most trusted users in at least one area of a particular user's trust graph.
  • the server system receives a trust indication from a first user.
  • the trust indication includes information identifying a second user of the plurality of users registered with the server system and a trust level that represents the level of trust that the first user has for the second user.
  • the trust graph is a directed graph, such that a particular trust indication only indicates the level of trust that the first user has for the second user and not the level of trust between the second user and the first user.
  • the directed trust graph of the first user includes trust information and becomes more useful. For example, a first user Bob sends three trust indications to the server system, indicating Joe, Phil, and Deborah respectively, each with a high trust level. The server system will then store these trust indications in a directed trust graph for Bob. Because the trust graph is directed, the server system does not infer trust levels for Joe, Phil, and Deborah toward Bob based on Bob's trust level towards them.
  • trust level is represented by a numerical value between 0 and 1, with 0 indicating no trust and 1 indicating maximum trust. in other implementations, the trust level is represented by a numerical value between ⁇ 1 and 1, wherein 1 indicates maximum trust, ⁇ 1 indicates maximum distrust, and 0 indicates no current trust information. For example, if Jim totally trusts his friend Pam, he would indicate a trust level of 1. For Jim's friend Andy, who he trusts, but not as much as Pam, Jim would indicate a trust level score between 0 and 1, such as 0.5. Further, for a distrusted person, such as Dwight, Jim would indicate a score below 0 but above ⁇ 1, such as ⁇ 0.5.
  • the server system can infer trust information by identifying actions taken by a particular user and determining the trust level indicated by the identified actions. For example, if the server system determines that Jim has received a recommendation for a pair of shoes from Andy, the server system can measure Jim's response to determine a trust level between Andy and Jim. If Jim purchases the recommended pair of shoes, the system will determine an increased level of trust from Jim to Andy. If Jim takes no action based on the recommendation the trust level will either remain unchanged or, if a pattern of ignoring recommendations from Andy is detected, slightly the level of trust from Jim and Andy.
  • each user of the system has a “trustworthiness” score.
  • the trustworthiness score represents an overall rating of the quality and usefulness of that user's recommendations.
  • the trustworthiness score is represented by a number between 0 and 1.
  • the trust worthiness score is a value with a lower bound of 0, but no upper bound.
  • the trustworthiness score could have a negative value.
  • a respective user's trustworthiness score increases in response to indications that the respective user's recommendations are good. For example, as users of the system chose to buy a product or service in response to a recommendation from a particular user, the trustworthiness score for the particular user would increase.
  • recommendations that are ignored or explicitly rejected could result in either no change of trustworthiness score or in a lowered trustworthiness score.
  • a higher trustworthiness score represents a higher level of trustworthiness within the system. In some implementations, if a user's trustworthiness score exceeds a predetermined level the user will be noted as a tastemaker or a very influential user.
  • transitive trust is calculated through multiple users. For example, User A trusts User B, User B trusts User C, and User C trusts User D. Transitive trust can be calculated for both Users C and D, and additionally for any users trusted by Users B, C, and D. In some implementations transitive trust is calculated for as many other users and through as many connections as possible. In other implementations, the server system limits the number of connections through which an implicit trust calculation is made. By limiting the number of connections (for example, no more than 10 connections) the server system avoids using resources on very tenuous connections.
  • the transitive trust calculations result in more than one possible value of transitive trust from first user to a second user. For example, if user A trusts Users B and C, and both Users B and C trust User D, the value of the implicit trust calculation will depend on whether the connection is made through user B or user C. In some implementations all possible trust levels are averaged to determine the actual implicit trust level. In other implementations the server system selects either the highest or lowest trust level. In yet other implementations, the server system selects the implicit trust value that relies on the fewest number of connections. If multiple implicit trust values are tied for the fewest number of connections, the multiple trust values are averaged.
  • an aggregate trust value is calculated for multiple trust paths by using a probabilistic combination algorithm.
  • a trust indication from a first user to a second user indicates a specific category in which the indicated trust level applies. For example, Bob could trust Alice at a high level in one category of product, such as consumer electronics, but trust Alice at a low level for a second type of product, such as men's shoes.
  • the trust indication includes the category of product or service for which the trust level applies.
  • the trust graph can include different trust levels for different categories of products.
  • the different categories are arranged in a hierarchical format.
  • the highest hierarchical level is a general level and there are a plurality of sub levels underneath the top general level such as “fashion,” “electronics,” and “media” among others.
  • Each sublevel has more specific sub levels under them.
  • the sublevel “fashion” could include the sublevels of “women's wear,” “men's wear” and “kid's wear.”
  • the server system can propagate trust levels from a sub-level to hierarchical levels higher, more general categories in the hierarchy of categories and to lower, more specific categories in the hierarchy of categories.
  • trust scores are passed to lower, more specific categories without alteration, but trust levels are discounted when passed to higher, more general categories in the hierarchy. For example, Jim trusts Andy 0.5 in the category “Shoes.” That score is propagated to lower, more specific categories, such as “Athletic shoes” or “Formal Shoes”, without discount. However, when the trust level is propagated to higher, more general category, such as “Fashion,” the trust level is discounted by 10%. Thus, the graph would determine that Jim trusts Andy in “Fashion” at the level of 0.45.
  • the server system uses the gathered trust information to improve a user's experience.
  • the server system allows users to request recommendations for goods and services that the user is interested in purchasing.
  • the server system uses the stored trust graphs to identify trusted potential recommenders.
  • the server system first receives a request for a recommendation from a first user.
  • the request for recommendation includes a category of good or service that defines the type of recommendation the first user wants.
  • the server system uses the trust graph associated with the first user, among other factors, to determine a second user from whom to request a recommendation.
  • the server system can collect user information from other social networks (Facebook, Twitter, LinkedIn, etc) or from webmail address books to identify other users of the server system that the new user might wish to trust. The server system then displays trust recommendations to the user. In some implementations, the server system only accesses the other social network information with the express permission of the user. In some implementations, the server system can gather demographic information from the new user and uses that demographic information (for example, user age and location) to determine recommended products and other users the potential new unit may wish to trust.
  • the server system uses the social network and demographic information gathered from external sources, as described above, to determine recommendations from the user's social network prior to receiving adequate trust level information from the user.
  • the server system uses general product popularity data to find recommendations for users without sufficient trust information.
  • General product popularity data is data that describes how popular particular products are within their product category.
  • the server system uses direct editorial control (an editor selecting specific recommendations) to supply recommendations prior to receiving adequate trust level information from the user.
  • the server system will identify one or more users not already trusted by a first user (User A) that the server system has determined are likely to be trusted by the first user. In some implementations the server system identifies the one or more users by finding connections or similarities between the one or more users and the first user. For example, if multiple users trusted by the first user all trust a second user the server system determines that the first user will be likely to trust the second user. In other implementations, the server system will identify one or more users that have similar identified interests as the first user or have recommended similar products to those recommended by the first user. In yet other implementations, the server system identifies one or more users likely to be trusted by the first user using social connection information from third party websites or services, interactions that the users have had with the server system, and any other information the server system has with regard to the users.
  • the server system identifies a particular category in which the first user is likely to trust the one or more users. In some implementations, the server system identifies one or more users likely to be trusted by the first user in response to a request from the first user for recommendations of users to trust. In some implementations, the server system transmits the identified one or more users to the first user for display. In some implementation the server system also transmits information describing the reasons why the server system selected a particular user that can be displayed either with the recommendation itself or at the request of the first user. For example, the server system transmits a recommendation for Bob to trust Ernie and includes the fact that Ernie was identified because three people trusted by Bob (Alice, Carol, and Dan) also trust Ernie.
  • the one or more identified users are recommended only in a particular category.
  • the first user can choose to trust the user only in the recommended category, trust the user in a narrower category than the recommended category, or trust the user in a broader category than the recommended category.
  • the server system recommends that Bob trust Ernie in Men's Formal Clothes.
  • Bob has the option of trusting Ernie in only Men's Formal Clothes, in a narrow category such as Men's Belts, or a broader category such as all Menswear.
  • the first user can request to view public information about the identified on or more users in determining whether to trust the user or not.
  • the first user can only see information that the identified one or more users have explicitly marked as public. For example, Ernie may have made his recommendations in Menswear public, and Bob can view the recommendations as part of his decision whether or not to trust Ernie.
  • the server system determines a list of users in the first user's trust graph that have trust scores in the category requested by the user. The determined list has one or more other users. The server system then ranks the one or more users in order of trust level.
  • the client system calculates transitive trust values for users with whom the first user does not have a direct trust level and includes at least some of these users in the list. Transitive trust values may also be pre-calculated and stored in the server system.
  • the server system determines whether additional transitive trust values need to be calculated. In some implementations, only some transitive trust values are pre-calculated and others are calculated as needed.
  • first-order transitive trust values are pre-calculated and all other transitive trust values are calculated as needed.
  • First order transitive trust values that only have one indirect trust link. For example, if Bob directly trusts Alice and Cody, then the first order transitive trust values are calculated for the users directly trusted by Alice and Cody.
  • first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another.
  • a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present implementations.
  • the first contact and the second contact are both contacts, but they are not the same contact.
  • the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context.
  • the phrase “if it is determined” or “if (a stated condition or event) is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting (the stated condition or event)” or “in response to detecting (the stated condition or event),” depending on the context.

Abstract

In accordance with some implementations, a method for selecting a vendor in accordance with some implementations is disclosed. The method is performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors. The server system detects stores one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores. The server system then receives a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased. The server system then determines a vendor to supply the requested product based on the stored vendor profiles. The server system purchases the requested product from the determined vendor. The server system then arranges for delivery of the purchased product or service.

Description

    RELATED APPLICATIONS
  • This application is claims priority to the following (1) U.S. Provisional Application Ser. No. 61/648,564, filed May 17, 2012, entitled “Progressively Asking for Increasing Amounts of User and Network Data”; (2) U.S. Provisional Application Ser. No. 61/648,566, filed May 17, 2012, entitled “Conversational Interfaces”; (3) U.S. Provisional Application Ser. No. 61/648,569, filed May 17, 2012, entitled “Universal Communications Infrastructure”; (4) U.S. Provisional Application Ser. No. 61/648,578, filed May 17, 2012, entitled “Trust Graph”; (5) U.S. Provisional Application Ser. No. 61/648,582, filed May 17, 2012, entitled “Universal Consumption Service”; (6) U.S. Provisional Application Ser. No. 61/648,588, filed May 17, 2012, entitled “Reward Structures”; (7) U.S. Provisional Application Ser. No. 61/648,591, filed May 17, 2012, entitled “System and Method for Social Network Based Referrals”; (8) U.S. Provisional Application Ser. No. 61/688,655, filed May 18, 2012, entitled “System and Method for Social Network Based Referrals”; which are incorporated herein by reference in their entirety.
  • This application is also related to the following (1) U.S. application Ser. No. ______, filed ______, entitled “Progressively Asking for Increasing Amounts of User and Network Data” (Attorney Docket: 020610-5001); (2) U.S. application Ser. No. ______, filed ______, entitled “Conversational Interfaces” (Attorney Docket: 020610-5002); (3) U.S. application Ser. No. ______, filed ______, entitled “Universal Communications Infrastructure” (Attorney Docket: 020610-5003); (4) U.S. application Ser. No. 13/769,181, filed Feb. 15, 2013, entitled “Trust Graph”; (5) U.S. application Ser. No. ______, filed ______, entitled “Zero Click Commerce Systems” (Attorney Docket: 020610-5005); (6) U.S. application Ser. No. ______, filed ______, entitled “Universal Consumption Service” (Attorney Docket: 020610-5006); (7) U.S. application Ser. No. ______, filed ______, entitled “Reward Structures” (Attorney Docket: 020610-5007); which are incorporated herein by reference in their entirety.
  • TECHNICAL FIELD
  • The disclosed implementations relate to the field of online commerce generally and to enhancing optimizing commerce experiences for users in particular.
  • BACKGROUND
  • Over the last two decades, the buying and the selling of products through computer networks such as the Internet has increased dramatically. A significant portion of all commerce is now conducted online through the Internet. As the amount of commerce conducted online grows, the number of online commerce vendors also grows. As such, an increasing number of online vendors compete with each other to offer users the best user experience. An important way to differentiate from other online retailers is to provide the most convenient user experience.
  • One result of the growth of online commerce is that the sheer number of vendors and websites can be overwhelming to users who want to purchase a product or service. It can be difficult for users to process so much information to find the best product or service from the best vendor for their particular needs. Indeed, often users never find out about opportunities or vendors that would closely match their needs.
  • Personal assistants, wedding planners, travel agents, and other consumer agents offer a contractual relationship with the end consumer to help them fulfill their consumer needs for products and services, brokering the deal with the ultimate product or service providers. For example, a wedding planner might arrange for a service or a service provider (e.g., reserving and contracting a band. Similar to these services, our service acts as an Agent on behalf of the consumer to broker a “consumptive experience for a product/service combination (broadly defined) that they pay for (most of the time). It would be useful to have a service that would curate the large number of products and services available and the various vendors to provide the best experience to a user in a way similar to the way that personal assistants work or a personal shopper.
  • SUMMARY
  • In some implementations, the system described herein, bridges the gap between “social” and “commerce” by enabling a universal ability to consume, irrespective of merchant or product or service, and seamlessly making the consumption easy. This allows for the free expression of social intent, while enabling commerce to occur where it is already most strongly encouraged: from the people we trust.
  • In some implementations, the system brokers consumptive experiences on behalf of end consumers, for combinations of products and services, where the consumer registers the intent to consume (and typically transacts) with the service, authorizing the service to act as an agent on their behalf to find and coordinate the fulfillment of the consumptive experience from various service and product providers, merchants, retailers, distributors, dealers, manufacturers, or any other means or method of consumptive fulfillment. Products are defined as consumer objects that can be used or consumed by the purchaser and includes both physical products (e.g., a chair) and digital products (an application, a piece of digital media etc.). Services can include any purchasable service (e.g., a restaurant reservation or a house painter painting a normal sized house or any other service).
  • In some implementations, the service acts like an agent/broker/concierge/personal shopper on behalf of the member, who can express their intent to consume a product or service, can provide a payment method, and the agent thereafter ensures that the product and/or service seamlessly is delivered for the individual. In some implementations, the service has three main areas of systems and methods. The first involves analyzing, capturing, and representing the product/service intended for consumption. The second involves the management of the payment, processing, merchant/vendor relationships, and fulfillment of the product/service. The third covers the optimization and selection of merchants/vendors/providers to optimally obtain the best product for the user.
  • In accordance with some implementations, a method for curating online content to enhance a user's experience is disclosed. The computer system described within customizes and curates both products and services and the vendors that provide those products and services. In some implementations, the system provides recommendations to a user based on, among other things, the user's preferences, interests, social network relationships, trusts and overall product popularity. In addition to providing product recommendations, once a user has instructed the computer system to purchase a particular product or service, the computer system assists the user in determining the optimal vendor from which to purchase the indicated product or service.
  • In some implementations, the product purchase request from a user includes a vendor preference. In some implementations, the purchase request includes a user specified vendor with instructions to use only the specified vendor. In other implementations, the purchase request includes a user specified vendor, but no instructions to use only the specified vendor. In some implementations, the level of preference is included in the product request and the stronger the level of the request, the more likely that the computer system will use the specified vendor. In some implementations, the purchase request includes either no vendor or no stated preference. In this case, the computer system selects a vendor from the plurality of possible vendors.
  • In some implementations, the computer system stores a database of vendor profiles. Each vendor profile includes a plurality of vendor category scores. Each vendor category score rates a vendor on a particular aspect or attribute associated with providing products to users. For example, vendor score categories includes such categories as average cost, delivery time, delivery cost, consumer satisfaction, distance from the user, shipping methods, stock status, return policy, and any other category relevant to providing products or services to consumers. For each product order received, the computer system uses the plurality of vendor category scores to generate an overall weighted vendor score for each vendor for each product order. In some implementations, the various vendor category scores are weighted in accordance with priorities associated with each category score. Once an overall weighted score is generated for each vendor, the vendors are ranked in accordance with their respective overall weighted vendor score.
  • In some implementations, the computer system determines a vendor from which to purchase the requested product or service. In some implementations, the vendor with the highest overall weighted vendor score is selected. In some implementations, each product is stored in a product database and has one or more associated vendors. The computer system selects the associated vendor stored in the product database. In some implementations, the user specifies a vendor when submitting the product purchase request and the computer system selects the user specified vendor.
  • In some implementations, the computer system generates an overall vendor score for both the user submitted vendor and the plurality of vendors stored by the computer system. The computer system then compares the overall vendor score of the user submitted vendor and the highest scored vendor in the plurality of vendors. If the overall vendor score for the highest scored vendor of the plurality of vendors exceeds the overall vendor score of the user submitted vendor by at least a predetermined amount, the computer system selects the highest scored vendor instead of the user selected vendor. In some implementations, if the computer system selects a vendor other than the user submitted vendor, the system sends a confirmation request to the user prior to purchasing the requested product from the new vendor. If the user responds and rejects the new vendor, the computer system reverts to the user selected vendor.
  • In some implementations, the priorities associated with the vendor category scores are determined by the user and submitted with the associated product purchase request. In some implementations, the computer system has default values associated with each vendor category and the computer uses the default priority vendor scores when generating the overall vendor scores. In some implementations, priorities are determined based on past user behavior that has been recorded. The determined priorities are then stored in the user profile. In some implementations, the computer system purchases the product from the selected vendor and arranges for delivery of the product according to the user's instruction.
  • In accordance with some implementations, a method for selecting a vendor is disclosed. The method is performed on a server system having one or more processors and memory storing one or more programs for execution by the one or more processors. The server system stores one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores. The server system then receives a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased. The server system then determines a vendor to supply the requested product based on the stored vendor profiles. The server system purchases the requested product from the determined vendor. The server system then arranges for delivery of the purchased product or service.
  • In accordance with some implementations, a server system for selecting a vendor is disclosed. The server system has one or more processors, and memory storing one or more programs to be executed by the one or more processors. The one or more programs include instructions for storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores. The one or more programs further include instructions for receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased. The one or more programs further include instructions for determining a vendor to supply the requested product based on the stored vendor profiles. The one or more programs further include instructions for purchasing the requested product from the determined vendor. The one or more programs further include instructions for arranging for delivery of the purchased product or service.
  • In accordance with some implementations, a non-transitory computer readable storage medium storing one or more programs configured for execution by a server system is disclosed. The one or more programs also include instructions for storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores. The one or more programs further include instructions for receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased. The one or more programs further include instructions for determining a vendor to supply the requested product based on the stored vendor profiles. The one or more programs further include instructions for purchasing the requested product from the determined vendor. The one or more programs further include instructions for arranging for delivery of the purchased product or service.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram illustrating a client-server environment in accordance with some implementations.
  • FIG. 2 is a block diagram illustrating a client system in accordance with some implementations.
  • FIG. 3 is a block diagram illustrating a server system in accordance with some implementations.
  • FIG. 4 depicts a block diagram of an exemplary data structure for a user profile database for storing information related to users of the server system in accordance with some implementations.
  • FIG. 5 depicts a block diagram of an exemplary data structure for a vendor profile database for storing information related to vendors of the server system in accordance with some implementations.
  • FIG. 6 is a flow diagram illustrating the process for selecting a vendor in accordance with some implementations.
  • FIG. 7 is a flow diagram illustrating the process for selecting a vendor in accordance with some implementations.
  • Like reference numerals refer to corresponding parts throughout the drawings.
  • DESCRIPTION OF IMPLEMENTATIONS
  • In some implementations, a computer system operates a commerce system for allowing users to easily and quickly find and purchase goods and services that meet their specific needs and desires. In some implementations, the commerce system is available online via a web site, mobile electronic device, etc. In some implementations, the commerce system operated by the computer system uses vendor profiles and user profiles to select the most appropriate vendor to provide the product or service requested by the user at the time of the transmission. The computer system then purchases the desired product or service from the selected vendor and arranges for delivery of the product or service to the user or another person indicated by the user (e.g., as a gift).
  • FIG. 1 is a block diagram illustrating a client-server environment 100 in accordance with some implementations. The client-server environment 100 includes one or more client systems 102-1 and 102-2, a server system 120, and one or more vendors 170, all connected over a network 110. In some implementations, the client system 102 includes one or more client applications 104 and a display 106. The server system 120 includes a communication module 122, a request processing module 124, a vendor scoring module 126, a purchasing module 128, a vendor selection module 130, a product database 140, a vendor database 150, and a user profile database 160. The network 110 may consist of any one or more of any of a variety of networks, including local area networks (LAN), wide area networks (WAN), wireless networks, wired networks, the Internet, or any combination of such networks.
  • In accordance with some implementations, the client system 102 includes one or more client applications 104. The one or more client applications 104 include, but are not limited to, a web browsing application for connecting to the server system 120. The client system 102 also includes a display 106. In some implementations, the client system is a computing device with the display integrated directly into the device itself, such as a laptop, a smart phone, a personal computer, a tablet computer, or other computing device. In other implementations the display is connected to, but not integrated into the client system. For example, desktop computer systems often do not have an integrated display and instead connect to a standalone display.
  • In some implementations, the client system 102 transmits a purchase request 114 to a server system 120. In some implementations, the purchase request 114 identifies a particular product or service that the user requests the server system to purchase on his or her behalf. In some implementations, the purchase request 114 includes a specific vendor associated with the product or service requested. In other implementations, the purchase request includes a vendor preferred by the user, but which is able to be changed by the server system 120. In some implementations, the purchase request 114 specifies a type or category of product, but not a specific product. In this implementation, the server system 120 uses the included type or category information to select a product or service as well as a vendor to satisfy the user purchase request 114.
  • In some implementations, the purchase request 114 does not specify a particular vendor, but includes a list of vendor attributes with associated priority information. The list of vendor attributes with the associated priority information is then used by the server system 120 to select an appropriate vendor 170 to supply the requested product or service. For example, if the purchase request 114 indicates that low price is the highest priority, the server system 120 then chooses the vendor that offers the lowest price on the requested product or service. In another example, if the purchase request 114 indicates that fast shipping is the highest priority, then the server system chooses the vendor that will deliver the product or service in the shortest amount of time (e.g., the product must be delivered in time for a special occasion, like Mother's Day).
  • In some implementations, the client system 102 sends a product add request 118 to the server system 120. In some implementations, the product add request 118 includes a product to be added to the product database 140 of the server system 120. In some implementations, the product add request 118 specifies a product that is not already stored in the product database 140. In this implementation, the server system adds the product included in the product add request 118 to the product database 140. In other implementations, the product database 140 already includes the product specified in the product add request 118. In this implementation, the server system 120 updates the product database 140 with information in the product add request 118. For example, if the product add request identifies a vendor for the product that the server system 120 did not have associated with the product, the server system 120 edits the relevant product profile to include the new potential vendor. In some implementations, the server system 120 verifies the information included in the product add request with a third party prior to editing the information stored in the product database.
  • In some implementations, the product add request 118 includes information describing the characteristics of the included product. Information describing the characteristics of a product includes, but is not limited to: product specifications, price, size, color, one or more vendors that stock the item, time availability, and product stock amounts. In some implementations, the server system 120 adds a new entry in the product database 140 for the product included in the product add request 118 (e.g., when no entry for the product already exists). In this case, the information from the user describing the characteristics of the product is used to fill out the new entry in the products database 140. Once the entry is added to the product database 140, the server system 120 uses the newly added product to show and/or recommend to other users of the server system 120.
  • In some implementations, the product database 140 already includes the product described in the product add request. In this case, the server system 120 updates the product entry in the product database 140 to include any new information included in the product add request 118. For example, the product database 140 will be updated to include a new vendor associated with the product, to change the price of the product based on the price included in the product add request 118, or to add a new product characteristic to the entry in the product database 140. In some implementations, the product add request 118 is received as part of a user recommendation and the product database is updated to include the user who submitted the product add request 118 as a recommending user. In some implementations, the server system 120 verifies the information included in the product add request 118 with a third party prior to adding or updating the new information to the product database.
  • In some implementations, the client system receives a vendor confirmation request 116 from the server system 120. In some implementations, the vendor confirmation request 116 lists a purchase request 114 the user has made and a vendor the server system 120 has selected to complete the purchase, and requests that the user confirm that the selected vendor 170 is acceptable to the user. In some implementations, the user confirms the selected vendor 170 is acceptable to the user of the client system 102 and the client system 102 sends a confirmation to the server system 120. In other implementations, the user rejects the selected vendor 170 and a rejection is sent by the client system 102 to the server system 120.
  • In some implementations, when the client system 102 sends a rejection of the selected vendor 170 to the server system 120, the rejection also includes a vendor 170 selected by the user of the client system 102. For example, when the user rejects vendor A, the user also sends a request for vendor B. In other implementations, the rejection instructs the server system 120 to select a different vendor. In some implementations, the rejection includes a list of vendor attributes that each have an associated priority. The server system 120 then is able to select the vendor that most closely matches the priorities set out in the rejection. For example, the rejection states that customer review ratings above 4 stars are the highest priority and that price is the second highest priority. In this case, the server system 120 screens out the vendors with average customer review rating below 4 stars and then selects the vendor with the lowest price from among the remaining vendors. Thus, the selected vendor 170 will be the vendor with the lowest price among all the vendors 170 with customer service review scores that average above 4 stars.
  • In accordance with some implementations, the server system 120 includes a communication module 122, a request processing module 124, a vendor scoring module 126, a purchasing module 128, a vendor selection module 130, a product database 140, a vendor database 150, and a user profile database 160. The communication module is configured to send and receive communications over the network 110 to one or more client systems 102 and one or more vendors 170.
  • In accordance with some implementations, the communication module 122 handles all communication with the one or more client systems 102. In some implementations, the communication module 122 receives a purchase request 114 from a client system 102. The communication module 122 sends the purchase request 114 to the request processing module 124. In some implementations, the communication module 122 sends an acknowledgement back to the client system 102, indicating receipt of the purchase request 114. In some implementations, the communication module 122 receives a product add request 118 from a client system 102. In some implementations, the communication module 122 transmits the received product add request 118 to the product database 140 directly. In other implementations, the communication module transmits the received product add request 118 to the request processing module 124.
  • In some implementations, the communication module 122 receives a vendor confirmation request 116 from the vendor selection module 130. In some implementations, the communication module 122 transmits the vendor confirmation request 116 to the client system 102. In some implementations, the communication module 122 is able to use one or more of several different communication methods to transmit the recommendation 116 to the client system 102. The server system 120 stores contact information for each user in the user profile database 160.
  • In some implementations, the communication module 122 determines the communication method for communicating with a user based on past communications with the user of the client system 102. Thus, the communication module 122 chooses the communication method that a particular user of the client system 102 uses most often when communicating with the server system. For example, if a user communicates with the server system 120 through email in 75% of communications, the server system 120 will use an email messaging system to deliver a vendor confirmation request 116 to the user. In some implementations, the communication module 122 uses a particular user's most recent communication method to communication with that particular user. In some implementations, each user selects one or more preferred communication methods and this preference is stored in the user profile database 160. For example, a user selects text messaging as the preferred method for receiving messages and in response the communication module 122 will then use text messages to send vendor confirmation requests 116 to the user, unless directed otherwise. In some implementations, the communication module 122 will use multiple communication methods to send vendor confirmation requests 116 to the user.
  • In some implementations, the communication module 122 chooses the communication method based on the time and date that the vendor confirmation request 116 is to be sent. For example, the communication module 122 uses email messages to deliver vendor confirmation requests 116 during the standard workday (9 am-5 pm Monday through Friday) and uses text messages to deliver vendor confirmation requests 116 during evening and on weekends. In some implementations, no vendor confirmation requests 116 will be sent during typical sleeping hours. In some implementations, each user selects time and data preferences for the communication module 122 to use and these preferences are stored in the user profile database 150. The communication module then follows the user selected preferences when communicating with the client system 102 associated with the user.
  • In some implementations, the communication module 122 receives a response message from a client device either confirming the selected vendor or rejecting the selected vendor. In either case, the response message is transmitted to the vendor selection module 130. In some implementations, the communication module 122 sends a vendor confirmation request 116 that includes alternative vendors to the vendor selected by the server system 120. In this case, the response message received from the client system 102 included user's selection of one of the alternative vendors. If so, the server system 120 uses the selected alternative vendor. In some implementations, the response message from the client system 102 also confirms or rejects other aspects of the purchase request 114. For example, the user rejects or accepts the shipping terms, the specific product SKU selected, or the shipping address.
  • In accordance with some implementations, the request processing module 124 is configured to receive requests from a plurality of client systems 102 via the communication module 122. In some implementations, the client system 102 receives a purchase request 114 from a client system 102. In some implementations, the request processing module 124 determines whether the requested product is stored in the product database 140. If the requested product is already stored in the product database, the request processing module 124 requests the user profile of the user associated with the purchase request from the user profile database 160. Once the user profile is received by the request processing module, the request processing module 124 transmits the purchase request 114 and the retrieved user profile to the vendor selection module 130.
  • In some implementations, the product requested in the purchase request 114 is not already stored in the product database 140. In this case, the request processing module 124 determines whether the purchase request 114 also includes a product add request 118. In some implementations, the purchase request 114 includes a product add request 118 and the request processing module 124 transmits the data necessary to create a product entry in the product database 140 to the product database 140. In other implementations, the purchase request 114 does not include a product add request 118. In this case, the request processing module 124 requests information for the requested product from a plurality of vendors 170 through the network 110. In some implementations, the product database 140 requests at least the basic information necessary to recommend the product a user (e.g., name of the produce, price, shipping terms and price, and at least a basic description of the items attributes.) By contacting various vendors 170 or other third party sites (e.g., catalog aggregation sites or product information database sites) for product information, the request processing module 124 is able to fill out a product entry for the new product in the product database 140 and gather a list of vendors that stock the product.
  • In some implementations, the request processing module 124 receives a product add request 118 from a client system 102. In some implementations, in response to receiving a product add request 118, the request processing module 124 determines, for each respective product of the one or more products included in the product add request 118, whether the respective product included in the product add request 118 is already included in the product database 140. If the respective product is included in the product database, the request processing module 124 determines whether any of the information included in the product add request 118 differs from the corresponding product entry in the product database 140. The request processing module 124 updates the information stored in the product database 140 to include any differences. For example, if the product price for a product in the product add request 118 is lower than the price indicated in the product entry in the product database 140, the product database 140 is updated to reflect the lower price. In some implementations, each product included in a product add request 118 has an associated vendor 170. Correspondingly, each product entry in the product database includes a list of vendors that stock the product. In response to receiving a product add request 118, the product entry for each product included in the product add request 118 is updated to include a vendor associated with the product in the product add request 118 in the list of vendors.
  • In some implementations, the request processing module 124 transmits the received purchase request 114 to a vendor selection module 130 to determine the optimal vendor to supply the requested product or service. In some implementations, the vendor selection module 130 determines a list of all potential vendors 170 that are able to supply the requested product or service to the user. In some implementations, the vendor selection module 130 sends the list of potential vendors to the vendor scoring module 126 for scoring.
  • In some implementations, the purchase request 114 includes a list of vendor category priorities (e.g., to be used to weight the various vendor category scores). In this implementation, the vendor scoring module 126 sends the set of vendor category priorities to the vendor scoring module 126.
  • In some implementations, the vendor scoring module 126 generates scores for one or more vendors 170. In some implementations, the vendor scoring module 126 collects data about vendors. In some implementations, this data is gathered from the vendors 170 themselves. For example, the vendor scoring module 126 requests the location of the vendor, the country of origin, the prices of the products supplied by the vendor 170, shipping policies, shipping options and prices, inventory status, and return policies from the vendors directly. In some implementations, the vendor scoring module 126 gathers data from users. For example, users can submit feedback to the server system 120 rating the customer service quality, the shipping speed, and the return policies of the vendor 170.
  • In some implementations, vendor scoring module 126 uses the gathered information to generate a plurality of vendor category scores. Each respective vendor category score is associated with a particular attribute of a respective vendor 170. In some implementations, each vendor category score is a number that rates a particular attribute of a vendor on a numerical scale. For example, a particular vendor category is customer service quality and each vendor category score is a number between 1 and 10, with 1 being the worst and 10 being the best. In some implementations, the purchase request 114 includes a set of priorities from the user that are used to weight the various vendor category scores and determine an overall vendor score for each vendor. In some implementations, the purchase request 114 does not include a set of priorities. In this case, the vendor scoring module 126 uses a predefined set of default priorities. In some implementations, the server system 120 defaults to weighing each vendor attribute or category equally. In some implementations, the server system 120 defaults to prioritizing price as the highest priority category or factor.
  • In some implementations, the vendor scoring module 126 accesses the user profile database 160 to determine the set of category priorities for the user that submitted the purchase request 114. In this case the priorities are based on, among other priorities, past user purchase requests, the user's budget, the user's location, the priorities of users that have been trusted by the user, and other relevant information stored in the user profile.
  • In some implementations, the vendor scoring module 126 receives a request from the vendor selection module 130 to generate overall vendor scores for a plurality of vendors 170. In some implementations, the vendor scoring module 126 receives priorities associated with the one or more vendor categories from the vendor selection module 130. In some implementations, the vendor scoring module 126 generates overall vendor scores by using the received category priorities to weight the vendor category scores. For example, vendor profile 152 has three category scores: shipping time, price, and customer service. Vendor A has a score of 8 for shipping time, a score of 3 for price, and a score of 10 for customer service. User A has priorities set such that customer service is twice as important as price, and shipping time as not important at all. Thus, weighing the score would be (shipping score*shipping score weight+price score*price score weight+customer service score*customer service weight)/total number of factors and would result in (0*8+1*3+2*10)/3=7.66.
  • In some implementations, once the overall vendor scores have been calculated for the plurality of vendors, the vendor scoring module 126 sorts the plurality of vendors into a list that is sorted from highest overall score to lowest overall score. Once the vendor scoring module 126 sorts the plurality of vendors into a list, the vendor scoring module 126 sends the sorted list to the vendor selection module 130. In some implementations, the vendor scoring module 126 also sends calculated scores to the vendor selection module 130.
  • In some implementations, the vendor selection module 130 receives a sorted list of vendors from the vendor scoring module 126. In some implementations, the vendor selection module 130 selects the vendor that most closely matches the user's needs. In some implementations, the user has specified a vendor 170. In some implementations, the vendor selection module 130 always uses the user specified vendor when a vendor has been specified by the user. In some implementations, the user has indicated that only the specified vendor may be considered by the server system 120. In other implementations, the user has indicated that server system 120 can consider alternatives to the specified vendor and the vendor selection module 130 compares the overall score of the vendor specified by the user and the vendor with the best overall vendor score per the ranked list of vendors provided by the vendor scoring module 126. If the vendor specified by the user has an overall score that is lower than the top scored vendor by at least a predetermined score, the vendor selection module 130 will select the top scoring vendor instead of the vendor specified by the user. For example, the user has indicated a preference for vendor A, and vendor A receives an overall score of 5.5 (out of ten) and vendor B receives an 8.6, which is the highest score from the vendor scoring module 126. The difference is 3.1. If the vendor selection module 130 has a predetermined maximum difference value of 2, the vendor selection module 130 will select vendor B, despite the user's indicated preference. In some implementations, the maximum difference value will vary depending on the strength of the preference that the user has for the indicated vendor. If the user has indicated a very strong preference, a larger difference in score will be necessary to justify switching to a new vendor. If the user has only a weak preference, a small difference in score will be sufficient to justify a switch. In some implementations, the user preference will be so strongly preferred that the vendor selection module 130 will not change vendors regardless of other vendor scores.
  • In some implementations, if the vendor selection module 130 selects a vendor that is different from the user specified vendor, the vendor selection module 130 sends a vendor confirmation request 116 to the client system 102. The vendor confirmation request 116 will identify the selected vendor, provide an explanation why the vendor was selected (e.g., this vendor provides a lower price, with the same shipping time), and requests that the user of the client system 102 confirm the choice of new vendor. In some cases, the client system 102 responds and confirms the vendor choice. In other cases, the client system 102 responds and specifies that the user has rejected the selected vendor. In this case, the vendor selection module 130 will select another vendor. In some implementations, the vendor selection module 130 reverts to the user specified vendor.
  • In some implementations, the user has not specified a preference for a particular vendor, but the vendor selection module 130 determines one or more vendors favored by the user based on the user's past purchasing history. If a user has given positive feedback for a vendor in the past, the vendor selection module 130 will give that vendor an advantage in future consideration. For example, if Vendor A and Vendor B both score a 7.5 overall vendor score for a particular purchase request 114, and the user associated with the purchase request 114 has previously given Vendor B a positive review, the vendor selection module 130 will modify the overall score by a specific amount to reflect this positive experience. The exact amount of benefit given to the vendor will depend on the number of times the user has given positive feedback for a vendor and how positive the feedback was. Thus, as a user consistently gives positive feedback to a specific vendor over time, the amount that the vendor scoring module 126 adjusts the specific vendors overall score increases. Similarly, in some implementations, the vendor selection module 130 will determine that a user has given poor feedback to a specific vendor. In this case, the vendor selection module 130 will adjust the vendors overall score down in response. The amount that the vendors overall score is adjusted up or down varies based on the number of positive or negative reviews received from the user and the degree to which the review is positive or negative.
  • In some implementations, the vendor selection module 130 determines user favored vendors based on the vendors having been recommended and reviewed positively by other users of the server system 120 in which the purchasing user has indicated trust. Thus, vendors recommended or reviewed positively by other trusted users will have their overall scores modified up and vendors reviewed negatively will have their overall scores modified down. In some implementations, the amount of modification depends on the level of trust between the two users. For example, User A has indicated a high level of trust in User B and User B has highly reviewed Vendor C. When the vendor selection module 130 is selecting a vendor for a user A purchase request 114, the overall score of Vendor C is modified up.
  • In some implementations, when the server system 120 receives user feedback, the communication module 122 updates the vendor database 140 to reflect the feedback. In this way, vendor scores can be adjusted up or down based on the received user feedback.
  • In some implementations, the vendor selection module 130 will select two or more potential vendors and transmit a vendor selection message to the client system 102. The user can then select a vendor from the potential vendor choices. In some implementations, the vendor selection module 130 sends the user indicated vendor and the highest scoring vendor. In some implementations, the vendor selection module 130 also transmits an explanation of why each vendor is offered as an option. In some implementations, the explanation is displayed in response to the user input having requested one or more explanations. For example, the vendor selection module 130 transmits a vendor selection message to the client system 102 Vendor A and Vendor B, noting that Vendor A has a lower price but with slower shipping and that Vendor B has a more expensive price but with faster shipping. In some implementations, the vendor selection message includes the specific spice and supply times to help the user make the best decision.
  • In some implementations, the purchasing module 128 is configured to receive a purchase request from the vendor selection module 130. The purchase request includes a product to be purchased and a vendor to be used. In some implementations, the purchasing module 128 then enlists the communication module 122 to purchase the desired product from the determined vendor 170 available over the network 110. In some implementations, the purchasing module 128 arranges for delivery of the product or service according to the instructions from the user of the client system 102. In some implementations, purchases from vendors are made through an application programming interface (API). In other implementations, purchases are made manually by workers associated with the server system either in person, on the phone, or electronically (e.g., an employee calls a vineyard to place an order for wine that was order through the server system). In some implementations, the purchasing module 128 allows vendors to make bids on products. In this way, once a user has issued a buy product request, the purchase module 128 can notify one or more vendors, receive the vendors bids, and choose the vendor that offers the best value. In this way, vendors can have a publicly listed price, but then can bid at a lower price in certain situations without publicly publishing the lower price.
  • In some implementations, the purchasing module 128 purchases the requested products from users of the server system 120. In this way, users of the server system 120 can both buy and sell products through the service. In this way, the server system is able to find the best value for users of the server system 120. In some implementations, the purchasing module 128 negotiates with the rights holders and organizing the product of a particular good or service. In some implementations, the purchasing module 128 is able to take orders for products and services that are created on demand or would normally not be available from a traditional commerce system.
  • In some implementations, the purchase request from a user includes a blend of “product” and “service” from various or multiple vendors. For example, the server system could coordinate the delivery of a swing set from a seller on Craigslist, and have a service provider to deliver it, sand it, re-stain it and install it. In this case, the purchase module 128 would negotiate or order from each vendor and then arrange for co-ordination between the various providers to ensure that the product and services are delivered promptly and at a low cost. In this was users have a single point of contact (the server system) to get a good price on a complicated set of services and goods. This has the benefit of reducing price and difficulty.
  • In some implementations, the product or service requested is delivered repeatedly (e.g., a bacon of the month club) or contracted over a long time (e.g., a 2 year cell phone plan). In this case the purchase module 128 arranges for both payment and delivery on a regular schedule to provide convenience to both the vendor and the user.
  • In some implementations, the purchase module 128 can use coupons, discounts, and other means of adding marketplace value to a transaction on behalf of the user, even when the user is unaware of the coupons prior to placing a purchase order.
  • In some implementations, the product database 140 contains a plurality of product entries. Each product entry is associated with a single product and contains information related thereto. In some implementations, the product entries store the unique identifier of the product (e.g., bar code, name and module number, SKU number, or other product identifier), the specifications of the product (size, color, capacity, etc), a list of vendors that can supply the product, the price of the product, and any other pertinent information. In some implementations, different vendors will have different prices and thus the product entry in the product database 140 will store a list of vendors and a vendor specific price for each vendor. For example, if a product is available from 4 vendors, the product database 140 will store a separate price for each vendor.
  • In some implementations, the products in the product database 140 are added by partner vendors 150. In some implementations, the products in the database 140 are added by users and recommenders in the server system 120. In other implementations, the product database 140 is filled by crawlers using algorithms specified by the server system 120. In yet other implementations, the product database 140 is filled through a combination of crowd sourcing (e.g., users can submit products and associated information) and paid human labor (e.g. services where workers are paid a small fee to add new products to the database.) The products database 140 includes information for each product, including, but not limited to, the price of the product, its specification (size, color, etc), the vendor or vendors from which it is available, whether the item is in stock, and whether it is available for delivery. In some implementations, the vendor selection module 130 and the purchasing module 128 use the information stored in the product database 140 to purchase the selected product. In some implementations, the product database 140 searches websites of vendors, or other databases maintained by vendors that are available over a network 110, for the desired product and updates the product database 140 based on information stored on websites or in catalogs. In some implementations, the information in the product database includes a time stamp or other date indication. Thus, if a product is on sale or otherwise time limited, the product database can notify users or make recommendations at the appropriate time.
  • In some implementations, the vendor database 150 includes a database of all the vendors associated with the server system 120. In some implementations, the vendor database includes vendor profiles 152. In some implementations, a vendor profile 152 includes the name of the vendor, vendor location, vendor nationality, one or more vendor category scores, user feedback for the vendor, and any other relevant information. In some implementations, a vendor profile 152 includes contact information submitted by the vendor or stored by the system after contact with the vendor including but not limited to websites, email addresses, phone numbers, user names, instant message user IDs, and social networking sites sufficient to allow the service to contact the vendor or an agent of the vendor. In some implementations, the communication module 122 uses information stored in the vendor database 150 to send communications to the vendor.
  • In some implementations, the user profile database 160 contains user profiles for users who have registered to use the service provided by the server system 120. In some implementations, a user profile includes the name, ID, demographic information (gender, age, location, etc), purchasing history, social network information, and trust information. The user profile database 160 includes trust graph data. In some implementations, the trust graph data includes information describing a directed trust graph. The trust graph includes nodes, which represent users, and edges connecting nodes, which represent the trust level between the two users represented by the two nodes that the edge connects.
  • The user profile database 160 includes trust graph data. In some implementations, the trust graph database includes information describing a directed trust graph. The trust graph includes nodes, which represent users, and edges connecting nodes, which represent the trust level between the two users represented by the two nodes that the edge connects.
  • In some implementations, the vendors 170 are commercial organizations with products to sell. The vendors 170 can receive orders to purchase products from the server system 120 and fulfill those orders.
  • FIG. 2 is a block diagram illustrating a client system 102, in accordance with some implementations. The client system 102 typically includes one or more processing units (CPUs) 202, one or more network interfaces 210, memory 212, and one or more communication buses 214 for interconnecting these components. The client system 102 includes a user interface 204. The user interface 204 includes an associated display device 104 and optionally includes an input means such as a keyboard, mouse, a touch sensitive display, or other input buttons 208. Optionally, the display device 106 includes an audio device or other information delivery device. Furthermore, some client systems use a microphone and voice recognition to supplement or replace the keyboard.
  • Memory 212 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 212 may optionally include one or more storage devices remotely located from the CPU(s) 202. Memory 212, or alternately the non-volatile memory device(s) within memory 212, includes a non-transitory computer readable storage medium. In some implementations, memory 212 or the computer readable storage medium of memory 212 stores the following programs, modules and data structures, or a subset thereof:
      • an operating system 216 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
      • a network communication module 218 that is used for connecting the client system 102 to other computers via the one or more communication network interfaces 210 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
      • a display module 220 for enabling display of media content on a display 106 associated with the client system 102;
      • one or more client system 102 applications module(s) 104 for enabling the client system 102 to perform the functions offered by the client system 102, including but not limited to:
        • a browser application 224 for sending purchase requests 114 to a server system (FIG. 1, 120) and displaying the information (for example web pages) returned by the server system (FIG. 1, 120) or a smart phone or other computer system application that performs the same function;
        • a product request module 226 for enabling a user to send a product request 114 to a server system (FIG. 1, 120) and receiving a vendor confirmation request 116 from the server system to confirm the vendor selected by the server system 120;
        • a product add request module 228 for enabling a user to send a product add request 118 to a server system 120 to add a product to the product database 140; and/or
      • one or more client data module(s) 230 for storing data related to the client system 102, including but not limited to:
        • client message data 232, including data representing messages to be sent to the server system (FIG. 1, 120) and messages received from the server system (FIG. 1, 120); and/or
        • user profile data 234, including information concerning users of the client system 102 such as a user profile, user preferences and interests, user contact information, and other information relevant to providing services to the user.
  • FIG. 3 is a block diagram illustrating a server system 120 in accordance with some implementations. The server system 120 typically includes one or more processing units (CPUs) 302, one or more network interfaces 304, memory 306, and one or more communication buses 308 for interconnecting these components.
  • Memory 306 includes high-speed random access memory, such as DRAM, SRAM, DDR RAM or other random access solid state memory devices; and may include non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. Memory 306 may optionally include one or more storage devices remotely located from the CPU(s) 302. Memory 306, or alternately the non-volatile memory device(s) within memory 306, includes a non-transitory computer readable storage medium. In some implementations, memory 306 or the computer readable storage medium of memory 306 stores the following programs, modules and data structures, or a subset thereof:
      • an operating system 310 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
      • a network communication module 122 that is used for connecting the server system 120 to other computers via the one or more communication network interfaces 304 (wired or wireless) and one or more communication networks, such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
      • one or more server application module(s) 314 for enabling the server system 120 to perform the functions offered by the server system 120, including but not limited to:
        • a request processing module 124 for receiving purchase requests (FIG. 1, 114) and product add requests (FIG. 1, 118) from a client system (FIG. 1, 102) and processing the requests before passing relevant data to the vendor selection module 130 and the vendor scoring module 126;
        • a vendor scoring module 126 for generating overall category scores for vendors based on a variety of criteria, generating overall scores for vendors based on the criteria scores and priority information supplied by the user or the server system 102, and ranking vendors based on their overall scores;
        • a purchasing module 128 for purchasing a product or service from one of the vendors (FIG. 1, 170);
        • a vendor selection module 130 for identifying vendors (FIG. 1, 170) that offer a product or service received from the request processing module 124, transmitting the identified vendors to the vendor scoring module 126 to score the list of identified vendors, and selecting a vendor based on user preferences and overall vendor scores; and/or
      • one or more server data module(s) 330 for storing data related to the server system 120, including but not limited to:
        • user profile data 150 including user preferences and interests, user contact information, and user history, including past user purchases, searches, page views, previous product recommendations, previous product reviews, social connections of the user, preferred vendors, vendor reviews, and any other information related to the user;
        • vendor data 150 including a database of all the vendors associated with the server system 120 and the vendor profiles data 152 for each vendor;
        • product data 140 including information for products that may be purchased through the server system 120, including, but not limited to, the price of the product, its features (size, color, etc), recent changes in price, and the vendor or vendors from which it is available; and/or
        • vendor profile data 152 including the name of the vendor, vendor location, vendor nationality, one or more vendor category scores, user feedback for the vendor, and any other relevant information.
  • FIG. 4 depicts a block diagram of an exemplary data structure for a user profile database 160 for storing information related to users of the server system (FIG. 1, 120). In accordance with some implementations, the user profile database 160 includes a plurality of user profiles 402-1 to 402-P, each of which corresponds to a user registered with the server system (FIG. 1, 120). In some implementations, each user profile 402 contains a user profile ID 404, a user history 406, trust information 408, recommendations 410 made by the user, user contact information 412, and vendor preferences 414.
  • In some implementations, user profile ID 404 is a value that uniquely identifies a specific user of the server system (FIG. 1, 120). In some implementations, this value is chosen by the user and is a user name. In other implementations, this value is assigned to the user by the server system (FIG. 1, 120) as part of the registration process.
  • In some implementations, the user history 406 stores a history of the user's past interactions with the server system (FIG. 1, 120) including past user purchases and purchase details, searches, page views, previous product recommendations, previous product reviews, and social connections of the user including previously recorded trust information for other users and/or social information received from social networking sites.
  • In some implementations, trust information 408 includes data describing the social connections of the user and includes a trust level for other users of the server system (FIG. 1, 120). A trust level is a value representing the degree to which a user trusts the opinions and recommendations of another user. In some implementations, trust information is explicitly submitted by the users, in other situations the server system (FIG. 1, 120) infers trust information from the actions of users, and in yet other situations trust information includes information from both user submissions and server inferences.
  • In some implementations, recommendation 410 data includes product purchases and product recommendations previously submitted by the user. In some implementations, contact information 412 includes a list of contact information for contacting the user through a plurality of communication methods and information describing if and when the server system (FIG. 1, 120) should use that method. For example, the contact information 412 includes but is limited to, email addresses, phone number, Twitter handle, social network ID, physical address and any other information that helps the server system (FIG. 1, 120) contact the user. The user may select that the server system (FIG. 1, 120) should never use social network messaging to contact to user and should use email address at all times except for the weekend and that a text message to a mobile phone should be used on the weekend. In some implementations, the contact information 412 includes login and password information for one or more social networking sites.
  • In some implementations, vendor preference data 414 includes data indicating the user's vendor preferences. In some implementations, vendor preference data 414 includes vendors that the user has explicitly indicated as preferred vendors and vendors that the user has explicitly indicated as non-preferred vendors. In some implementations, vendor preference data 414 is determined based on previous user behavior (e.g., vendors that the user has repeatedly selected). In some implementations, a user's vendor preference is based on feedback or reviews from the user. Vendors that received positive reviews will be noted as potential favored vendors and vendors that receive negative reviews will be noted as potential disfavored vendor.
  • In some implementations, contact information stored for the user includes one or more ways to contact the user including, but not limited to, email addresses, phone number, Twitter handle, social network ID, physical address and any other information that helps the server system (FIG. 1, 120) contact the user.
  • FIG. 5 depicts a block diagram of an exemplary data structure for a vendor database 150 for storing information related to vendors associated with the server system (FIG. 1, 120). In accordance with some implementations, the vendor database 150 includes a plurality of vendor profiles 152-1 to 152-P, each of which corresponds to a vendor associated with or accessible by the server system (FIG. 1, 120) (e.g., vendors from whom the server system can purchase products or services). In some implementations, each vendor profile 152 contains a vendor profile ID 504, a vendor name 506, vendor location data 508, user feedback data 510, vendor category scores 512, and contact information 514 for the vendor.
  • In some implementations, vendor profile ID 504 is a value that uniquely identifies a specific vendor associated with or accessible to the server system (FIG. 1, 120). In some implementations, this value is chosen by the vendor. In other implementations, this value is assigned to the vendor by the server system (FIG. 1, 120).
  • In some implementations, the vendor name 506 is a string that identifies the vendor to users of the server system (FIG. 1, 120). In some implementations, the vendor name is a name associated with the vendor that is well known to users. For example, if a brand name is more commonly known to users than the official corporate or legal name of the vendor, the brand name could be included as the vendor name 506.
  • In some implementations, vendor location 508 includes data describing the location of the vendor, including country of origin and the location of its headquarters and any distribution points. In some implementations, the vendor location 508 also includes estimated shipping times. In some implementations, the product information 510 includes data describing the products available from the vendor. In some implementations, product information 510 also includes prices, inventory status, delivery options, product customization options, and any other information related to the products offered by the vendor.
  • In some implementations, category score profiles 512 include a plurality of scores for a plurality of categories associated with the vendor. For example, relevant vendor category scores include separate scores for shipping time, user experience, average price, return policy, and any other categories that might be useful. In some implementations, the categories are predetermined by the server system.
  • In some implementations, each category score profile 512 includes a category number 520 that identifies the category. In some implementations, the category number 520 is an integer that identifies the same category in all vendor profiles 152. For example, the “average price” category is assigned the category number 21, the server system knows that every vendor category score with the category number 21 is average price. In some implementations, the category data 522 is text that identifies the type of category score. For example, category data would include a text description such as “user experience” or “return policy.”
  • In some implementations, each category score profile 512 includes a category score 524. In some implementations, a category score is a number within a range that represents how well the vendor performs on the metric measured by the category. In some implementations, all the category scores use the same scale. In other implementations, each category score profile 512 has a customized scale. For example, all category scores are a number between 0 and 10 with 0 being the lowest score and 10 being the highest. Each vendor is evaluated in one or more categories and is assigned a category score for each category. In some implementations, category scores 524 are updated as new information is received by the server system (FIG. 1, 120). In some implementations, new information is received in the form of user submitted feedback and reviews. In other implementations, new information is received from the vendors themselves (e.g., new price information or new shipping information).
  • In some implementations, each category score profile 512 includes a default weight 526. In some implementations, the default weight is the weight given to the category score when no specific weight for the category has been indicated by a user. For example, the default category weight for the category “average price” is high, while the default category weight for the category “return policy” is lower. In some implementations, the category score profile includes user feedback 528 received from user relevant to the category associated with the category score profile 512.
  • FIG. 6 is a flow diagram illustrating the process for click-less purchasing in accordance with some implementations. Each of the operations shown in FIG. 6 may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders). In some implementations, the method described in FIG. 6 is performed by the server system (FIG. 1, 120).
  • In some implementations, the server system (FIG. 1, 120) creates (602) one or more vendor profiles. In some implementations, vendor profiles store information related to a vendor accessible to the server system (FIG. 1, 120). Stored information includes, but is not limited to, the name of the vendor, products offered by the vendor, price information for the products offered by the vendor, product ordering procedures for the vendor, vendor location, and shipping times and procedures. In some implementations, the vendor profiles store any information necessary for purchasing products or services from the vendor.
  • In some implementations, the vendor profiles include scores for the vendor for one or more attribute categories. In some implementations, creating vendor profiles includes determining (604) one or more vendor scoring categories. In some implementations, vendor scoring categories include average price, delivery time, and user satisfaction. In some implementations, the server system (FIG. 1, 120) then, for one or more determined vendor scoring categories, generates (606) a vendor category score based on past vendor performance. In some implementations, a vendor category score is an indication of how well the vendor performs in that category. For example, if the category was return policies, vendors with good return policies would receive high scores and vendors with poor return policies would receive low scores.
  • In some implementations, past vendor performance is based on user supplied feedback (608). In some implementations, user supplied feedback includes user reviews, user ratings, and user submitted recommendations. For example, a user submits ratings for a vendor based on a recent purchase and gives the vendor 5 stars out of 5 for shipping time and 4 out of 5 stars for customer service. The user ratings are then used to adjust the corresponding category scores.
  • In some implementations, past vendor performance is determined based on data directly measured by the server system (FIG. 1, 120) (610). For example, the server system (FIG. 1, 120) tracks prices for products offered by a vendor at regular intervals and compares those prices against prices offered for the same products at other vendors during the same intervals. Based on the tracked prices, the server system (FIG. 1, 120) can generate a price average category score for each vendor. Thus, if the server system (FIG. 1, 120) periodically checks the current price for a specific product with a plurality of vendors, it can determine an average price. Based on the average price, the server system (FIG. 1, 120) can rate each vendor as below or above the average price and by collecting ratings for a plurality of products, the server system gives each vendor an average price score. In some implementations, the data measured by the computer system includes product delivery time, product price, and number of products in stock.
  • In some implementations, the server system (FIG. 1, 120) stores (614) one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores (612). Each category score is associated with a particular attribute of a vendor. In some implementations, the server system (FIG. 1, 120) receives (616) a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased. For example, the purchase request includes a request for a copy of season 2 of “Breaking Bad” on DVD. In some implementations, the request also includes a user preferred vendor for fulfilling the request. In some implementations, the purchase request does not include a preferred vendor, and the server system (FIG. 1, 120) accesses the product database to determine a list of vendors that sell the requested product. In some implementations, the product database includes a preferred vendor for the requested product.
  • In some implementations, the server system (FIG. 1, 120) determines (618) a vendor to supply the requested product based on the stored vendor profiles. In some implementations, the server system (FIG. 1, 120) selects the vendor included in the purchase request. In some implementations, the server system (FIG. 1, 120) selects a vendor from among a list of preferred vendors stored in the user profile of the user who submitted the request. In some implementations, the server system (FIG. 1, 120) selects a vendor by determining vendors preferred by users of the server system (FIG. 1, 120) that are trusted by the requesting user.
  • In some implementations, when the server system (FIG. 1, 120) determines (620) a vendor to supply the requested product based on the stored vendor profiles, the server system (FIG. 1, 120) further, for each vendor in the plurality of vendors: generates a overall vendor score based on the one or more vendor category scores wherein the one or more vendor category scores are weighted based on the priority associated with each category. In some implementations, the weights are based on category priorities received from the user. In some implementations, the server system (FIG. 1, 120) has default category weights that are used when no priorities are received from the user or stored in the user's profile.
  • In some implementations, the server system (FIG. 1, 120) ranks (622) the plurality of vendors based on the generated overall vendor score. Thus the list includes a list of vendors ordered from highest overall vendor score (e.g., best vendor match) to lowest overall vendor score (e.g., worst vendor match). In some implementations, the priorities associated with the one or more vendor categories are predetermined by the computer system.
  • FIG. 7 is a flow diagram illustrating the process for click-less purchasing in accordance with some implementations. Each of the operations shown in FIG. 7 may correspond to instructions stored in a computer memory or computer readable storage medium. Optional operations are indicated by dashed lines (e.g., boxes with dashed-line borders). In some implementations, the method described in FIG. 7 is performed by the server system (FIG. 1, 120).
  • In some implementations, the server system (FIG. 1, 120) stores (702) user profiles for each user of the computer system; wherein user profiles include priorities associated with vendor categories. In some implementations, the server system (FIG. 1, 120), prior to purchasing the requested product, sends (704) a request to the user to confirm the determined vendor. In some implementations, the server system (FIG. 1, 120) receives 706 a response from the user confirming the determined vendor. In some implementations, the response authorizes the use of the determined vendor. In other implementations, the response from the user includes a rejection of the determined vendor.
  • In some implementations, the server system (FIG. 1, 120) purchases (708) the requested product from the determined vendor. In some implementations, the server system (FIG. 1, 120) only purchases the request product in response to a response from the user that authorizes the use of the determined vendor. In some implementations, the server system (FIG. 1, 120) arranges (710) for delivery of the purchased product or service.
  • In some implementations, the server system (FIG. 1, 120) receives (712) feedback from the user regarding the determined vendor. In some implementations, the server system (FIG. 1, 120) updates (714) the vendor profiles based on the received feedback. In some implementations, the server system (FIG. 1, 120) includes a product database (716). In some implementations, the server system (FIG. 1, 120) receives (718) a request to add a product to the product database, wherein the request includes a vendor associated with the product. In some implementations, the request to add a product to the product database is a recommendation from a user. In some implementations, the request to add a product to the product database is included in the purchase request.
  • Trust Graph
  • In some implementations, a server system for improving the reliability of an Internet based commerce service through social network based product recommendations using a trust graph. A trust graph represents trust between users. The server system maintains a record of the trust relationships for each user registered with the service provided by the server system. In some implementations, the server system then uses this information to identify the most trusted users in at least one area of a particular user's trust graph.
  • In some implementations the server system receives a trust indication from a first user. The trust indication includes information identifying a second user of the plurality of users registered with the server system and a trust level that represents the level of trust that the first user has for the second user. In some implementations the trust graph is a directed graph, such that a particular trust indication only indicates the level of trust that the first user has for the second user and not the level of trust between the second user and the first user. As the first user sends more trust indications to the server, the directed trust graph of the first user includes trust information and becomes more useful. For example, a first user Bob sends three trust indications to the server system, indicating Joe, Phil, and Deborah respectively, each with a high trust level. The server system will then store these trust indications in a directed trust graph for Bob. Because the trust graph is directed, the server system does not infer trust levels for Joe, Phil, and Deborah toward Bob based on Bob's trust level towards them.
  • In some implementations, trust level is represented by a numerical value between 0 and 1, with 0 indicating no trust and 1 indicating maximum trust. in other implementations, the trust level is represented by a numerical value between −1 and 1, wherein 1 indicates maximum trust, −1 indicates maximum distrust, and 0 indicates no current trust information. For example, if Jim totally trusts his friend Pam, he would indicate a trust level of 1. For Jim's friend Andy, who he trusts, but not as much as Pam, Jim would indicate a trust level score between 0 and 1, such as 0.5. Further, for a distrusted person, such as Dwight, Jim would indicate a score below 0 but above −1, such as −0.5.
  • In accordance with some implementations, the server system can infer trust information by identifying actions taken by a particular user and determining the trust level indicated by the identified actions. For example, if the server system determines that Jim has received a recommendation for a pair of shoes from Andy, the server system can measure Jim's response to determine a trust level between Andy and Jim. If Jim purchases the recommended pair of shoes, the system will determine an increased level of trust from Jim to Andy. If Jim takes no action based on the recommendation the trust level will either remain unchanged or, if a pattern of ignoring recommendations from Andy is detected, slightly the level of trust from Jim and Andy.
  • In some implementations, each user of the system has a “trustworthiness” score. The trustworthiness score represents an overall rating of the quality and usefulness of that user's recommendations. In some implementations the trustworthiness score is represented by a number between 0 and 1. In other implementations, the trust worthiness score is a value with a lower bound of 0, but no upper bound. In yet other implementations, the trustworthiness score could have a negative value. In this case, a respective user's trustworthiness score increases in response to indications that the respective user's recommendations are good. For example, as users of the system chose to buy a product or service in response to a recommendation from a particular user, the trustworthiness score for the particular user would increase. Correspondingly, recommendations that are ignored or explicitly rejected could result in either no change of trustworthiness score or in a lowered trustworthiness score.
  • In some implementations a higher trustworthiness score represents a higher level of trustworthiness within the system. In some implementations, if a user's trustworthiness score exceeds a predetermined level the user will be noted as a tastemaker or a very influential user.
  • In some implementations, trust levels can be transitive between users. For example, if Jim trusts Pam with a trust level of 1 and Pam trusts Michael with a score of 0.75, the server system can calculate a trust level from Jim to Michael. In some implementations the server system calculates transitive trust by taking the trust level from Pam to Michael and discounting it by some fixed amount. For example, the trust level may be reduced by 5% for each level of removal from Jim. So Jim's trust level for Michael would be 0.75*0.95=0.7125. In some implementations, transitive trust values are calculated before any specific need for those calculated values arrives. In other implementations, only direct trust values are stored in the trust graphs and transitive trust values are only calculated when required, such as when a request for a recommendation is received by the server system.
  • In some implementations transitive trust is calculated through multiple users. For example, User A trusts User B, User B trusts User C, and User C trusts User D. Transitive trust can be calculated for both Users C and D, and additionally for any users trusted by Users B, C, and D. In some implementations transitive trust is calculated for as many other users and through as many connections as possible. In other implementations, the server system limits the number of connections through which an implicit trust calculation is made. By limiting the number of connections (for example, no more than 10 connections) the server system avoids using resources on very tenuous connections.
  • In some implementations the transitive trust calculations result in more than one possible value of transitive trust from first user to a second user. For example, if user A trusts Users B and C, and both Users B and C trust User D, the value of the implicit trust calculation will depend on whether the connection is made through user B or user C. In some implementations all possible trust levels are averaged to determine the actual implicit trust level. In other implementations the server system selects either the highest or lowest trust level. In yet other implementations, the server system selects the implicit trust value that relies on the fewest number of connections. If multiple implicit trust values are tied for the fewest number of connections, the multiple trust values are averaged.
  • In some implementations, an aggregate trust value is calculated for multiple trust paths by using a probabilistic combination algorithm. Such an algorithm is AggregateTrustLevel=1−(1−p1)*(1−p2)*(1−p_n) where p 1−p_n are trust levels from a plurality of different possible trust paths. For example if one path gives a trust value of 0.8 and another gives a trust value of 0.63, the aggregate trust level would equal 1−(1−0.8)*(1−0.63)=0.926. This function can be used for an arbitrary number of different trust paths.
  • In some implementations a trust indication from a first user to a second user indicates a specific category in which the indicated trust level applies. For example, Bob could trust Alice at a high level in one category of product, such as consumer electronics, but trust Alice at a low level for a second type of product, such as men's shoes. Thus, when the first user submits a trust indication of a trust level for the second user, the trust indication includes the category of product or service for which the trust level applies. In this way the trust graph can include different trust levels for different categories of products. In some implementations, the different categories are arranged in a hierarchical format. In some arrangement the highest hierarchical level is a general level and there are a plurality of sub levels underneath the top general level such as “fashion,” “electronics,” and “media” among others. Each sublevel has more specific sub levels under them. For example, the sublevel “fashion” could include the sublevels of “women's wear,” “men's wear” and “kid's wear.”
  • In some implementations, the server system can propagate trust levels from a sub-level to hierarchical levels higher, more general categories in the hierarchy of categories and to lower, more specific categories in the hierarchy of categories. In some implementations, trust scores are passed to lower, more specific categories without alteration, but trust levels are discounted when passed to higher, more general categories in the hierarchy. For example, Jim trusts Andy 0.5 in the category “Shoes.” That score is propagated to lower, more specific categories, such as “Athletic shoes” or “Formal Shoes”, without discount. However, when the trust level is propagated to higher, more general category, such as “Fashion,” the trust level is discounted by 10%. Thus, the graph would determine that Jim trusts Andy in “Fashion” at the level of 0.45.
  • In some implementations, the server system uses the gathered trust information to improve a user's experience. The server system allows users to request recommendations for goods and services that the user is interested in purchasing. The server system uses the stored trust graphs to identify trusted potential recommenders. The server system first receives a request for a recommendation from a first user. The request for recommendation includes a category of good or service that defines the type of recommendation the first user wants. The server system uses the trust graph associated with the first user, among other factors, to determine a second user from whom to request a recommendation.
  • In some implementations, when a user first registers with the server system to participate in the online commerce system, the user has little or no trust information regarding other users. The server system can collect user information from other social networks (Facebook, Twitter, LinkedIn, etc) or from webmail address books to identify other users of the server system that the new user might wish to trust. The server system then displays trust recommendations to the user. In some implementations, the server system only accesses the other social network information with the express permission of the user. In some implementations, the server system can gather demographic information from the new user and uses that demographic information (for example, user age and location) to determine recommended products and other users the potential new unit may wish to trust.
  • In some implementations, the server system uses the social network and demographic information gathered from external sources, as described above, to determine recommendations from the user's social network prior to receiving adequate trust level information from the user. In some implementations, the server system uses general product popularity data to find recommendations for users without sufficient trust information. General product popularity data is data that describes how popular particular products are within their product category. In other implementations, the server system uses direct editorial control (an editor selecting specific recommendations) to supply recommendations prior to receiving adequate trust level information from the user.
  • In some implementations, the server system will identify one or more users not already trusted by a first user (User A) that the server system has determined are likely to be trusted by the first user. In some implementations the server system identifies the one or more users by finding connections or similarities between the one or more users and the first user. For example, if multiple users trusted by the first user all trust a second user the server system determines that the first user will be likely to trust the second user. In other implementations, the server system will identify one or more users that have similar identified interests as the first user or have recommended similar products to those recommended by the first user. In yet other implementations, the server system identifies one or more users likely to be trusted by the first user using social connection information from third party websites or services, interactions that the users have had with the server system, and any other information the server system has with regard to the users.
  • In some implementations, the server system identifies a particular category in which the first user is likely to trust the one or more users. In some implementations, the server system identifies one or more users likely to be trusted by the first user in response to a request from the first user for recommendations of users to trust. In some implementations, the server system transmits the identified one or more users to the first user for display. In some implementation the server system also transmits information describing the reasons why the server system selected a particular user that can be displayed either with the recommendation itself or at the request of the first user. For example, the server system transmits a recommendation for Bob to trust Ernie and includes the fact that Ernie was identified because three people trusted by Bob (Alice, Carol, and Dan) also trust Ernie.
  • In some implementations, the one or more identified users are recommended only in a particular category. In response to receiving a recommendation to trust a second user in a specific category, the first user can choose to trust the user only in the recommended category, trust the user in a narrower category than the recommended category, or trust the user in a broader category than the recommended category. For example, the server system recommends that Bob trust Ernie in Men's Formal Clothes. Bob has the option of trusting Ernie in only Men's Formal Clothes, in a narrow category such as Men's Belts, or a broader category such as all Menswear. In some implementation, the first user can request to view public information about the identified on or more users in determining whether to trust the user or not. In some implementations, the first user can only see information that the identified one or more users have explicitly marked as public. For example, Ernie may have made his recommendations in Menswear public, and Bob can view the recommendations as part of his decision whether or not to trust Ernie.
  • In accordance with some implementations in response to receiving a request for a recommendation, the server system determines a list of users in the first user's trust graph that have trust scores in the category requested by the user. The determined list has one or more other users. The server system then ranks the one or more users in order of trust level. In some implementations, the client system calculates transitive trust values for users with whom the first user does not have a direct trust level and includes at least some of these users in the list. Transitive trust values may also be pre-calculated and stored in the server system. When a server system receives a request for a recommendation, the server system determines whether additional transitive trust values need to be calculated. In some implementations, only some transitive trust values are pre-calculated and others are calculated as needed. For example, only first-order transitive trust values are pre-calculated and all other transitive trust values are calculated as needed. First order transitive trust values that only have one indirect trust link. For example, if Bob directly trusts Alice and Cody, then the first order transitive trust values are calculated for the users directly trusted by Alice and Cody.
  • The foregoing description, for purpose of explanation, has been described with reference to specific implementations. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The implementations were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best use the invention and various implementations with various modifications as are suited to the particular use contemplated.
  • It will also be understood that, although the terms first, second, etc. may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another. For example, a first contact could be termed a second contact, and, similarly, a second contact could be termed a first contact, without departing from the scope of the present implementations. The first contact and the second contact are both contacts, but they are not the same contact.
  • The terminology used in the description of the implementations herein is for the purpose of describing particular implementations only and is not intended to be limiting. As used in the description of the implementations and the appended claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the term “and/or” as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
  • As used herein, the term “if” may be construed to mean “when” or “upon” or “in response to determining” or “in response to detecting,” depending on the context. Similarly, the phrase “if it is determined” or “if (a stated condition or event) is detected” may be construed to mean “upon determining” or “in response to determining” or “upon detecting (the stated condition or event)” or “in response to detecting (the stated condition or event),” depending on the context.

Claims (19)

What is claimed is:
1. A method, comprising:
at a computer system having one or more processors and memory storing one or more programs for execution by the one or more processors:
storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores;
receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased;
determining a vendor to supply the requested product based on the stored vendor profiles;
purchasing the requested product from the determined vendor; and
arranging for delivery of the purchased product or service.
2. The method of claim 1, wherein determining a vendor to supply the requested product based on the stored vendor profiles includes:
for each vendor in the plurality of vendors:
generating a overall vendor score based on the one or more vendor category scores wherein the one or more vendor category scores are weighted based on the priority associated with each category;
ranking the plurality of vendors based on the generated overall vendor score.
3. The method of claim 2, wherein the priorities associated with the one or more vendor categories are predetermined by the computer system.
4. The method of claim 2, further including:
storing user profiles for each user of the computer system; wherein user profiles include priorities associated with vendor categories.
5. The method of claim 1, further including:
creating vendor profiles, wherein creating vendor profiles includes:
determining one or more vendor scoring categories for one or more determined vendor categories, generating a vendor category score based on past vendor performance.
6. The method of claim 5, wherein past vendor performance is based on user supplied feedback.
7. The method of claim 5, wherein past vendor performance is determined based on data directly measured by the computer system.
8. The method of claim 7, wherein the data measured by the computer system includes product delivery time, product price, and number of products in stock.
9. The method of claim 1, includes
receiving feedback from the user regarding the determined vendor; and
updating the vendor profiles based on the received feedback.
10. The method of claim 1, wherein the computer system includes a product database, and the method further includes:
receiving a request to add a product to the product database, wherein the request includes a vendor associated with the product.
11. The method of claim 10, wherein the request to add a product to the product database is a recommendation from a user.
12. The method of claim 10, wherein the request to add a product to the product database is included in the purchase request.
13. The method of claim 1, further including:
prior to purchasing the requested product, sending a request to the user to confirm the determined vendor; and
receiving a response from the user confirming the determined vendor.
14. A server system for rewarding users in a social referral system, the server system comprising:
one or more processors and
memory storing one or more programs to be executed by the one or more processors;
the one or more programs comprising instructions for:
storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores;
receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased;
determining a vendor to supply the requested product based on the stored vendor profiles;
purchasing the requested product from the determined vendor; and
arranging for delivery of the purchased product or service.
15. The server system of claim 14, further including instructions for:
creating vendor profiles, wherein creating vendor profiles includes:
determining one or more vendor scoring categories
for one or more determined vendor categories, generating a vendor category score based on past vendor performance.
16. The server system of claim 14, further including instructions for:
receiving feedback from the user regarding the determined vendor; and
updating the vendor profiles based on the received feedback.
17. A non-transitory computer readable storage medium storing one or more programs configured for execution by an electronic device, the one or more programs comprising instructions for:
storing one or more vendor profiles, wherein each vendor profile is associated with a particular vendor and includes one or more vendor category scores;
receiving a purchase request from a user of the server system, wherein the purchase request includes a product or service to be purchased;
determining a vendor to supply the requested product based on the stored vendor profiles;
purchasing the requested product from the determined vendor; and
arranging for delivery of the purchased product or service.
18. The non-transitory computer readable storage medium of claim 14, further including instructions for:
creating vendor profiles, wherein creating vendor profiles includes:
determining one or more vendor scoring categories
for one or more determined vendor categories, generating a vendor category score based on past vendor performance.
19. The non-transitory computer readable storage medium of claim 14, further including instructions for:
receiving feedback from the user regarding the determined vendor; and
updating the vendor profiles based on the received feedback.
US13/986,612 2012-05-17 2013-05-16 Universal consumption service Abandoned US20130311337A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US13/986,612 US20130311337A1 (en) 2012-05-17 2013-05-16 Universal consumption service
PCT/US2013/041700 WO2013173788A1 (en) 2012-05-17 2013-05-17 Progressively asking for increasing amounts of user and network data
PCT/US2013/041702 WO2013173790A1 (en) 2012-05-17 2013-05-17 Trust graphs
PCT/US2013/041705 WO2013173792A1 (en) 2012-05-17 2013-05-17 Zero click commerce systems
PCT/US2013/041714 WO2013173799A1 (en) 2012-05-17 2013-05-17 Reward structures
US14/708,069 US10346895B2 (en) 2012-05-17 2015-05-08 Initiation of purchase transaction in response to a reply to a recommendation

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201261648569P 2012-05-17 2012-05-17
US201261648591P 2012-05-17 2012-05-17
US201261648582P 2012-05-17 2012-05-17
US201261648578P 2012-05-17 2012-05-17
US201261648588P 2012-05-17 2012-05-17
US201261648564P 2012-05-17 2012-05-17
US201261648566P 2012-05-17 2012-05-17
US201261688655P 2012-05-18 2012-05-18
US13/986,612 US20130311337A1 (en) 2012-05-17 2013-05-16 Universal consumption service

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US13/896,318 Continuation-In-Part US20130311260A1 (en) 2012-05-17 2013-05-16 Reward Structures

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/896,310 Continuation-In-Part US9799046B2 (en) 2012-05-17 2013-05-16 Zero click commerce systems

Publications (1)

Publication Number Publication Date
US20130311337A1 true US20130311337A1 (en) 2013-11-21

Family

ID=49582070

Family Applications (7)

Application Number Title Priority Date Filing Date
US13/986,608 Abandoned US20130311621A1 (en) 2012-05-17 2013-05-16 Universal Communications Infrastructure
US13/896,292 Active 2036-11-03 US10740779B2 (en) 2012-05-17 2013-05-16 Pre-establishing purchasing intent for computer based commerce systems
US13/896,318 Abandoned US20130311260A1 (en) 2012-05-17 2013-05-16 Reward Structures
US13/986,606 Abandoned US20130311573A1 (en) 2012-05-17 2013-05-16 Progressively asking for increasing amounts of user and network data
US13/986,612 Abandoned US20130311337A1 (en) 2012-05-17 2013-05-16 Universal consumption service
US13/986,607 Active 2035-07-20 US9875483B2 (en) 2012-05-17 2013-05-16 Conversational interfaces
US13/896,310 Active 2035-09-23 US9799046B2 (en) 2012-05-17 2013-05-16 Zero click commerce systems

Family Applications Before (4)

Application Number Title Priority Date Filing Date
US13/986,608 Abandoned US20130311621A1 (en) 2012-05-17 2013-05-16 Universal Communications Infrastructure
US13/896,292 Active 2036-11-03 US10740779B2 (en) 2012-05-17 2013-05-16 Pre-establishing purchasing intent for computer based commerce systems
US13/896,318 Abandoned US20130311260A1 (en) 2012-05-17 2013-05-16 Reward Structures
US13/986,606 Abandoned US20130311573A1 (en) 2012-05-17 2013-05-16 Progressively asking for increasing amounts of user and network data

Family Applications After (2)

Application Number Title Priority Date Filing Date
US13/986,607 Active 2035-07-20 US9875483B2 (en) 2012-05-17 2013-05-16 Conversational interfaces
US13/896,310 Active 2035-09-23 US9799046B2 (en) 2012-05-17 2013-05-16 Zero click commerce systems

Country Status (1)

Country Link
US (7) US20130311621A1 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130325625A1 (en) * 2012-06-04 2013-12-05 American Express Travel Related Services Company, Inc. Systems and Methods for Delivering Tailored Content Based Upon a Consumer Profile
US20140181068A1 (en) * 2006-12-08 2014-06-26 Microsoft Corporation Communication system
US20140279940A1 (en) * 2013-03-15 2014-09-18 Ebay Inc. Self-guided verification of an item
US9245250B2 (en) 2013-03-14 2016-01-26 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
WO2021062021A1 (en) * 2019-09-25 2021-04-01 MBP Insights, Inc. Systems and methods for assessing merchant performance using real-time consumer transaction feedback
US10970732B2 (en) 2019-06-14 2021-04-06 MBP Insights, Inc. System and method for receiving real-time consumer transactional feedback
US20210390482A1 (en) * 2020-04-28 2021-12-16 Peter L. Rex Smart service routing using machine learning
US20220172304A1 (en) * 2020-12-02 2022-06-02 Tran Woods System and method for real time social engagement

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8073681B2 (en) 2006-10-16 2011-12-06 Voicebox Technologies, Inc. System and method for a cooperative conversational voice user interface
US7818176B2 (en) 2007-02-06 2010-10-19 Voicebox Technologies, Inc. System and method for selecting and presenting advertisements based on natural language processing of voice-based input
US8140335B2 (en) 2007-12-11 2012-03-20 Voicebox Technologies, Inc. System and method for providing a natural language voice user interface in an integrated voice navigation services environment
US9305548B2 (en) 2008-05-27 2016-04-05 Voicebox Technologies Corporation System and method for an integrated, multi-modal, multi-device natural language voice services environment
US8326637B2 (en) 2009-02-20 2012-12-04 Voicebox Technologies, Inc. System and method for processing multi-modal device interactions in a natural language voice services environment
US20110196726A1 (en) * 2009-08-10 2011-08-11 Devi Poellnitz System of Artist Referral and Media Selling, Promoting and Networking
US10397162B2 (en) * 2012-12-14 2019-08-27 Facebook, Inc. Sending notifications to members of social group in a social networking system
US9094360B1 (en) * 2013-04-08 2015-07-28 Google Inc. Access right authorization
US9519928B2 (en) * 2013-07-29 2016-12-13 Bank Of American Corporation Product evaluation based on electronic receipt data
US9600839B2 (en) 2013-07-29 2017-03-21 Bank Of America Corporation Price evaluation based on electronic receipt data
US9280531B2 (en) 2013-11-25 2016-03-08 Mov Digital Media, Inc. Marketing to consumers using data obtained from abandoned electronic forms
US9324090B2 (en) * 2014-01-28 2016-04-26 Copernica, Inc. Method, system and apparatus for reinforcing desirable consumer behaviors with surprise rewards
WO2015145430A1 (en) 2014-03-23 2015-10-01 Melzer Roy S Instant messaging based financial transactions
US11080777B2 (en) 2014-03-31 2021-08-03 Monticello Enterprises LLC System and method for providing a social media shopping experience
WO2016044290A1 (en) 2014-09-16 2016-03-24 Kennewick Michael R Voice commerce
US9898459B2 (en) 2014-09-16 2018-02-20 Voicebox Technologies Corporation Integration of domain information into state transitions of a finite state transducer for natural language processing
WO2016046824A1 (en) * 2014-09-22 2016-03-31 Melzer Roy S Interactive user interface based on analysis of chat messages content
CN107003999B (en) 2014-10-15 2020-08-21 声钰科技 System and method for subsequent response to a user's prior natural language input
US20160110791A1 (en) * 2014-10-15 2016-04-21 Toshiba Global Commerce Solutions Holdings Corporation Method, computer program product, and system for providing a sensor-based environment
US10460351B2 (en) 2014-11-12 2019-10-29 International Business Machines Corporation Sales assistance based on purchasing prediction
US10431214B2 (en) 2014-11-26 2019-10-01 Voicebox Technologies Corporation System and method of determining a domain and/or an action related to a natural language input
US10614799B2 (en) 2014-11-26 2020-04-07 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance
US9443262B1 (en) * 2015-03-20 2016-09-13 Sears Brands, L.L.C. Merchandise reservation system, apparatus, and media
US10353542B2 (en) * 2015-04-02 2019-07-16 Facebook, Inc. Techniques for context sensitive illustrated graphical user interface elements
US20160314513A1 (en) * 2015-04-24 2016-10-27 Ebay Inc. Automatic negotiation using real time messaging
US10270730B1 (en) * 2015-06-15 2019-04-23 Amazon Technologies, Inc. Determining a dynamic data feed
US10073794B2 (en) 2015-10-16 2018-09-11 Sprinklr, Inc. Mobile application builder program and its functionality for application development, providing the user an improved search capability for an expanded generic search based on the user's search criteria
US11004096B2 (en) 2015-11-25 2021-05-11 Sprinklr, Inc. Buy intent estimation and its applications for social media data
US20170153905A1 (en) * 2015-11-30 2017-06-01 Microsoft Technology Licensing, Llc User quest-anchored active digital memory assistant
US20170193592A1 (en) * 2016-01-05 2017-07-06 Rhino Saas IP Holding Co, LLC Method, system, and computer-readable storage medium for facilitating recurring ordering, billing, and inventory updating
US20170221021A1 (en) * 2016-01-29 2017-08-03 Rafael Gazetov Method and system for digital currency creation and marketing
US20170256177A1 (en) * 2016-03-01 2017-09-07 International Business Machines Corporation Genealogy and hereditary based analytics and delivery
US10592959B2 (en) 2016-04-15 2020-03-17 Walmart Apollo, Llc Systems and methods for facilitating shopping in a physical retail facility
GB2564610A (en) 2016-04-15 2019-01-16 Walmart Apollo Llc Systems and methods for providing content-based product recommendations
CA3020974A1 (en) 2016-04-15 2017-10-19 Walmart Apollo, Llc Partiality vector refinement systems and methods through sample probing
US11010820B2 (en) * 2016-05-05 2021-05-18 Transform Sr Brands Llc Request fulfillment system, method, and media
US10373464B2 (en) 2016-07-07 2019-08-06 Walmart Apollo, Llc Apparatus and method for updating partiality vectors based on monitoring of person and his or her home
WO2018023106A1 (en) 2016-07-29 2018-02-01 Erik SWART System and method of disambiguating natural language processing requests
US10397326B2 (en) 2017-01-11 2019-08-27 Sprinklr, Inc. IRC-Infoid data standardization for use in a plurality of mobile applications
US20180213009A1 (en) * 2017-01-24 2018-07-26 Essential Products, Inc. Media and communications in a connected environment
WO2018191451A1 (en) 2017-04-13 2018-10-18 Walmart Apollo, Llc Systems and methods for receiving retail products at a delivery destination
US10613904B2 (en) * 2017-05-10 2020-04-07 International Business Machines Corporation Non-directional transmissible task
US10649417B2 (en) 2017-05-31 2020-05-12 Microsoft Technology Licensing, Llc Controlling tenant services based on tenant usage performance indicators
US10142222B1 (en) * 2017-06-13 2018-11-27 Uber Technologies, Inc. Customized communications for network systems
US10511692B2 (en) 2017-06-22 2019-12-17 Bank Of America Corporation Data transmission to a networked resource based on contextual information
US10313480B2 (en) 2017-06-22 2019-06-04 Bank Of America Corporation Data transmission between networked resources
US10524165B2 (en) 2017-06-22 2019-12-31 Bank Of America Corporation Dynamic utilization of alternative resources based on token association
US10616357B2 (en) * 2017-08-24 2020-04-07 Bank Of America Corporation Event tracking and notification based on sensed data
US10929892B2 (en) 2017-10-05 2021-02-23 Mov-Ology, Llc Marketing to consumers using data obtained from abandoned GPS searches
CN109767279A (en) * 2017-11-10 2019-05-17 阿里巴巴集团控股有限公司 Order processing method, system and equipment
CN108764985A (en) * 2018-05-17 2018-11-06 上海炫栎网络科技有限公司 Beat reward method, apparatus and system
US11488264B2 (en) * 2018-09-14 2022-11-01 Philippe Charles Laik Interaction recommendation engine
CN109741154B (en) * 2019-01-21 2021-03-19 长沙市力耀信息技术有限公司 Method for realizing social assistance payment and sharing shopping based on internet and shopping system
US11423491B1 (en) * 2019-08-01 2022-08-23 Block, Inc. Transacting via social media interactions
US11677694B2 (en) * 2021-06-02 2023-06-13 Microsoft Technology Licensing, Llc System and method for converting an email thread to an instant message group
WO2024013535A1 (en) * 2022-07-12 2024-01-18 Nielsen Consumer Llc Methods, systems, articles of manufacture and apparatus to facilitate participant connection

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046173A1 (en) * 2001-08-30 2003-03-06 Benjier James A. Store delivery of products ordered over a computer network
US20060047598A1 (en) * 2004-08-31 2006-03-02 E-Procure Solutions Corporation System and method for web-based procurement
US7302429B1 (en) * 1999-04-11 2007-11-27 William Paul Wanker Customizable electronic commerce comparison system and method
US7330895B1 (en) * 2001-03-15 2008-02-12 Microsoft Corporation Representation, decision models, and user interface for encoding managing preferences, and performing automated decision making about the timing and modalities of interpersonal communications
US20080065445A1 (en) * 2000-03-06 2008-03-13 Livesay Jeffrey A Method and process for providing relevant data, comparing proposal alternatives, and reconciling proposals, invoices, and purchase orders with actual costs in a workflow process
US20090228339A1 (en) * 2008-03-05 2009-09-10 David Wolf Method and system for revenue per reverse redirect
US20120109781A1 (en) * 2010-11-03 2012-05-03 Verizon Patent And Licensing, Inc. Passive shopping service optimization
US8224823B1 (en) * 2010-06-30 2012-07-17 A9.Com, Inc. Browsing history restoration

Family Cites Families (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5983004A (en) 1991-09-20 1999-11-09 Shaw; Venson M. Computer, memory, telephone, communications, and transportation system and methods
US5550576A (en) 1995-04-17 1996-08-27 Starsight Telecast Incorporated Method and apparatus for merging television program schedule information received from multiple television schedule information sources
US6487390B1 (en) 1996-12-18 2002-11-26 Clubcom, Inc. System and method for interactive on-demand information
US20030056216A1 (en) 1998-01-05 2003-03-20 Theodore D. Wugofski System for managing favorite channels
US6912588B1 (en) 1998-04-02 2005-06-28 Intel Corporation System and method for managing client requests in client-server networks
US6185221B1 (en) 1998-11-09 2001-02-06 Cabletron Systems, Inc. Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
US6370381B1 (en) 1999-01-29 2002-04-09 Siemens Transportation Systems, Inc. Multiple channel communications system
US20120197722A1 (en) * 2006-08-14 2012-08-02 Ewinwin, Inc. Group buying search
US7505941B2 (en) 1999-08-31 2009-03-17 American Express Travel Related Services Company, Inc. Methods and apparatus for conducting electronic transactions using biometrics
AU4308901A (en) 1999-12-06 2001-06-12 Webusiness Usa, Inc. E-commerce quotation management and automatic purchasing
KR100606064B1 (en) 2000-01-15 2006-07-26 삼성전자주식회사 Apparatus and method for assignmenting supplemental channel in mobile communication system
KR20010076971A (en) 2000-01-29 2001-08-17 박규헌 Electronic commerce system having a intelligence shopping basket
US20010011235A1 (en) 2000-01-29 2001-08-02 E-Net Co., Ltd. Apparatus for realizing personal shops in an electronic commerce business
GB0004993D0 (en) * 2000-03-01 2000-04-19 Moores Toby Interaction protocol
US6521152B1 (en) 2000-03-16 2003-02-18 Honeywell International Inc. Method for forming fiber reinforced composite parts
US20030054827A1 (en) 2000-09-11 2003-03-20 Schmidl Timothy M. Wireless communication channel selection using passive interference avoidance techniques
US20020052752A1 (en) * 2000-10-30 2002-05-02 Mark Landesmann Serious intent mechanism and method
AU2002239391A1 (en) 2000-11-30 2002-06-11 Message Machines, Inc. Systems and methods for routing messages to communications devices
US7092867B2 (en) 2000-12-18 2006-08-15 Bae Systems Land & Armaments L.P. Control system architecture for a multi-component armament system
US8677423B2 (en) 2000-12-28 2014-03-18 At&T Intellectual Property I, L. P. Digital residential entertainment system
US7092381B2 (en) * 2000-12-29 2006-08-15 Telefonaktiebolaget Lm Ericsson (Publ) Delivery of broadcast teleservice messages over packet data networks
US20030074253A1 (en) 2001-01-30 2003-04-17 Scheuring Sylvia Tidwell System and method for matching consumers with products
US20020120581A1 (en) 2001-02-26 2002-08-29 Schiavone Vincent J. Reply based electronic mail transactions
KR20020090816A (en) 2001-05-29 2002-12-05 (주)데카커뮤니케이션즈 The system and method of analyzing and managing the value of product to fit the customers' needs using the object-oriented theory
US7716704B2 (en) 2001-06-12 2010-05-11 Thomson Licensing Television program selection apparatus and method
EP1490820A4 (en) * 2002-03-18 2007-03-21 Merck & Co Inc Computer assisted and/or implemented process and system for managing and/or providing a medical information portal for healthcare providers
EP1349313B1 (en) * 2002-03-27 2012-04-18 Samsung Electronics Co., Ltd. Apparatus and method for receiving control information over a packet data control channel in a mobile communication system
US20030212617A1 (en) 2002-05-13 2003-11-13 Stone James S. Accounts payable process
US7444297B2 (en) 2002-06-13 2008-10-28 Aol Llc, A Delaware Limited Liability Company Method and medium for associating a wish list with buddy list screen name
KR100893070B1 (en) 2002-09-19 2009-04-17 엘지전자 주식회사 Method and apparatus for providing and receiving multicast service in a radio communication system
US7346587B2 (en) 2002-12-06 2008-03-18 Aol Llc Intelligent method of order completion in an e-commerce environment based on availability of stored billing information
US20040117482A1 (en) 2002-12-17 2004-06-17 International Business Machines Corporation Method, system, and program product for customizing an application
WO2004066103A2 (en) 2003-01-22 2004-08-05 Sharenet, Inc. System and method for compounded marketing
JP2004326634A (en) 2003-04-28 2004-11-18 Hitachi Ltd Recommended data selecting device using confidential relationship between users
CN1871439B (en) * 2003-09-22 2011-02-02 博施瑞克罗斯公司 Pressure vessel assembly for integrated pressurized fluid system
US7797196B1 (en) * 2003-10-20 2010-09-14 At&T Intellectual Property I, L.P. Method, system, and storage medium for providing automated purchasing and delivery services
US7092802B2 (en) * 2004-03-25 2006-08-15 General Motors Corporation Vehicle website audio/video communication link
US8612208B2 (en) 2004-04-07 2013-12-17 Oracle Otc Subsidiary Llc Ontology for use with a system, method, and computer readable medium for retrieving information and response to a query
US8170897B1 (en) 2004-11-16 2012-05-01 Amazon Technologies, Inc. Automated validation of results of human performance of tasks
WO2006096104A1 (en) 2005-03-07 2006-09-14 Telefonaktiebolaget Lm Ericsson (Publ) Multimedia channel switching
US20070043583A1 (en) 2005-03-11 2007-02-22 The Arizona Board Of Regents On Behalf Of Arizona State University Reward driven online system utilizing user-generated tags as a bridge to suggested links
US8318906B2 (en) * 2005-04-15 2012-11-27 The Regents Of The University Of California EMP2 antibodies and their therapeutic uses
US20060277591A1 (en) 2005-06-01 2006-12-07 Arnold William C System to establish trust between policy systems and users
US8181232B2 (en) * 2005-07-29 2012-05-15 Citicorp Development Center, Inc. Methods and systems for secure user authentication
US9184898B2 (en) 2005-08-01 2015-11-10 Google Technology Holdings LLC Channel quality indicator for time, frequency and spatial channel in terrestrial radio access network
US7643807B2 (en) 2005-12-15 2010-01-05 Sony Ericsson Mobile Communications Ab Methods for using broadcast media content information and related broadcast media receivers/playback devices
US9143735B2 (en) * 2006-02-17 2015-09-22 Verizon Patent And Licensing Inc. Systems and methods for providing a personal channel via television
US7904524B2 (en) * 2006-03-06 2011-03-08 Aggregate Knowledge Client recommendation mechanism
US7831439B1 (en) 2006-03-08 2010-11-09 Amazon Technologies, Inc. System and method for converting gifts
JP4841979B2 (en) 2006-03-17 2011-12-21 富士通株式会社 Fee optimization method and fee optimization program
US7996270B2 (en) * 2006-03-30 2011-08-09 Ebay Inc. Community based network shopping
WO2007127812A2 (en) 2006-04-25 2007-11-08 Pagebites Inc. Method for information gathering and dissemination in a social network
KR100807264B1 (en) 2006-04-29 2008-02-28 강찬구 System for online contents marketplace and the operation method thereof
US8184549B2 (en) 2006-06-30 2012-05-22 Embarq Holdings Company, LLP System and method for selecting network egress
US9094257B2 (en) 2006-06-30 2015-07-28 Centurylink Intellectual Property Llc System and method for selecting a content delivery network
US20110276377A1 (en) * 2006-07-17 2011-11-10 Next Jump, Inc. Communication system and method for narrowcasting
GB2440562A (en) * 2006-08-03 2008-02-06 Sony Uk Ltd Apparatus and method of data organisation
US8407765B2 (en) * 2006-08-22 2013-03-26 Centurylink Intellectual Property Llc System and method for restricting access to network performance information tables
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8064342B2 (en) * 2006-10-27 2011-11-22 Verizon Patent And Licensing Inc. Load balancing session initiation protocol (SIP) servers
WO2008099978A1 (en) 2007-02-14 2008-08-21 Won-Young Song Multiple network marketing on electronic commerce
WO2008108000A1 (en) 2007-03-08 2008-09-12 Chao Inc. Gratitude providing system and gratitude providing method
US8095521B2 (en) 2007-03-30 2012-01-10 Amazon Technologies, Inc. Recommendation system with cluster-based filtering of recommendations
US8782698B2 (en) 2007-04-30 2014-07-15 Google Inc. Customizable media channels
US20080300940A1 (en) 2007-05-31 2008-12-04 Gosakan Aravamudan Capturing Consumer Requirements
US9524502B2 (en) * 2007-06-20 2016-12-20 Qualcomm Incorporated Management of dynamic electronic coupons
KR101356163B1 (en) 2007-07-12 2014-01-24 엘지전자 주식회사 mobile terminal and it's channel and broadcast information indication method
US9596308B2 (en) * 2007-07-25 2017-03-14 Yahoo! Inc. Display of person based information including person notes
US20090106366A1 (en) * 2007-10-17 2009-04-23 Nokia Corporation System and method for visualizing threaded communication across multiple communication channels using a mobile web server
JP5108679B2 (en) 2007-10-22 2012-12-26 ヤフー株式会社 User recommendation system, user recommendation method, product information output system, product information output method and program
US8494978B2 (en) 2007-11-02 2013-07-23 Ebay Inc. Inferring user preferences from an internet based social interactive construct
US20090132366A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation Recognizing and crediting offline realization of online behavior
US20090171760A1 (en) 2007-12-31 2009-07-02 Nokia Corporation Systems and Methods for Facilitating Electronic Commerce
WO2009088937A2 (en) 2008-01-02 2009-07-16 Interdigital Technology Corporation Method and apparatus for cooperative wireless communications
US20110131106A1 (en) 2009-12-02 2011-06-02 George Eberstadt Using social network and transaction information
US20090190544A1 (en) 2008-01-25 2009-07-30 Qualcomm Incorporated Method and apparatus for channel identification in a wireless communication system
US8190494B2 (en) 2008-03-11 2012-05-29 International Business Machines Corporation Order processing analysis tool
US8224714B2 (en) 2008-05-01 2012-07-17 Microsoft Corporation Peer to peer network personal assistant
US20090319436A1 (en) 2008-06-18 2009-12-24 Delip Andra Method and system of opinion analysis and recommendations in social platform applications
US8066370B2 (en) * 2008-07-02 2011-11-29 Johnson & Johnson Vision Care, Inc. Tinted contact lenses with crescent patterns
WO2010017596A1 (en) 2008-08-15 2010-02-18 Posse Ip Pty Limited On-line advertising
US8412625B2 (en) 2008-08-25 2013-04-02 Bruno Pilo' & Associates, Llc System and methods for a multi-channel payment platform
US8001056B2 (en) * 2008-09-19 2011-08-16 Yahoo! Inc. Progressive capture of prospect information for user profiles
US20100088148A1 (en) * 2008-10-02 2010-04-08 Presswala Irfan System and methodology for recommending purchases for a shopping intent
JP5390642B2 (en) 2009-03-03 2014-01-15 グーグル・インコーポレーテッド Method and system for providing advertisements to social network users
US8023899B2 (en) 2009-04-30 2011-09-20 Bandspeed, Inc. Approach for selecting communications channels in communication systems to avoid interference
US8775529B2 (en) * 2009-05-08 2014-07-08 Raytheon Company Bridging communications between communication services using different protocols
US20110173056A1 (en) 2009-07-14 2011-07-14 D Alessio Dennis Computerized systems and processes for promoting businesses
US20110022465A1 (en) * 2009-07-24 2011-01-27 Prasannakumar Jobigenahally Malleshaiah System and Method for Managing Online Experiences Based on User Sentiment Characteristics and Publisher Targeting Goals
US20110106674A1 (en) 2009-10-29 2011-05-05 Jeffrey William Perlman Optimizing Transaction Scenarios With Automated Decision Making
US9514466B2 (en) * 2009-11-16 2016-12-06 Yahoo! Inc. Collecting and presenting data including links from communications sent to or from a user
US8671029B2 (en) 2010-01-11 2014-03-11 Ebay Inc. Method, medium, and system for managing recommendations in an online marketplace
CN102640432B (en) * 2010-01-26 2015-05-20 Lg电子株式会社 Station operation method and apparatus in TV whitespace
JP2011170471A (en) 2010-02-17 2011-09-01 Nippon Telegr & Teleph Corp <Ntt> Social graph generation method, social graph generation device and program
WO2011106897A1 (en) * 2010-03-05 2011-09-09 Chrapko Evan V Systems and methods for conducting more reliable assessments with connectivity statistics
US10074094B2 (en) 2010-03-09 2018-09-11 Excalibur Ip, Llc Generating a user profile based on self disclosed public status information
US9152969B2 (en) * 2010-04-07 2015-10-06 Rovi Technologies Corporation Recommendation ranking system with distrust
US8379584B2 (en) * 2010-04-15 2013-02-19 General Electric Company Generalized division free duplexing techniques for decreasing rendevous time
KR20110117475A (en) 2010-04-21 2011-10-27 중앙대학교 산학협력단 Apparatus and method for inferring trust and reputation in web-based social network
US9098808B1 (en) * 2010-04-22 2015-08-04 Google Inc. Social search engine
WO2011140263A1 (en) 2010-05-04 2011-11-10 Schmitt Steven J Systems and methods for accessing information from multiple networks, social graphs, and content sites
US8788583B2 (en) 2010-05-13 2014-07-22 International Business Machines Corporation Sharing form training result utilizing a social network
WO2011149961A2 (en) 2010-05-24 2011-12-01 Intersect Ptp, Inc. Systems and methods for identifying intersections using content metadata
US8620935B2 (en) 2011-06-24 2013-12-31 Yahoo! Inc. Personalizing an online service based on data collected for a user of a computing device
US20110320373A1 (en) 2010-06-25 2011-12-29 Microsoft Corporation Product conversations among social groups
US20130173712A1 (en) * 2010-06-30 2013-07-04 Universidad Politenica De Madrid Method for selectively distributing information in a computer or communication network, and physical entities therefor
US8204805B2 (en) * 2010-10-28 2012-06-19 Intuit Inc. Instant tax return preparation
US8635227B2 (en) 2010-07-31 2014-01-21 Viralheat, Inc. Discerning human intent based on user-generated metadata
KR20120026859A (en) 2010-09-10 2012-03-20 삼성전자주식회사 Method and system for providing social network service using mobile terminal
EP2628284A1 (en) 2010-10-11 2013-08-21 InterDigital Patent Holdings, Inc. Method and apparatus for bandwidth allocation for cognitive radio networks
WO2012051403A2 (en) 2010-10-15 2012-04-19 Currentchoice, Incorporated Electronic marketplace for energy
US20120095862A1 (en) * 2010-10-15 2012-04-19 Ness Computing, Inc. (a Delaware Corportaion) Computer system and method for analyzing data sets and generating personalized recommendations
US8863165B2 (en) 2010-11-01 2014-10-14 Gracenote, Inc. Method and system for presenting additional content at a media system
CN103403706A (en) 2010-11-18 2013-11-20 谷歌公司 Multi-mode web browsing
CN102741875B (en) 2010-11-30 2017-10-17 松下电器(美国)知识产权公司 Content management device, contents management method, content supervisor and integrated circuit
US20120203832A1 (en) * 2010-12-15 2012-08-09 Lou Vastardis Social network information system and method
US9691055B2 (en) 2010-12-17 2017-06-27 Google Inc. Digital wallet
US20120197979A1 (en) 2011-01-24 2012-08-02 Palm Leon G Web-wide content quality crowd sourcing
US20120284144A1 (en) 2011-02-04 2012-11-08 Nathan Herbst System and Method for Evaluating Computerized Product Customization Tool and Associated Database(s)
WO2012106655A2 (en) 2011-02-05 2012-08-09 Visa International Service Association Merchant-consumer bridging platform apparatuses, methods and systems
US9870424B2 (en) * 2011-02-10 2018-01-16 Microsoft Technology Licensing, Llc Social network based contextual ranking
US20120209839A1 (en) 2011-02-15 2012-08-16 Microsoft Corporation Providing applications with personalized and contextually relevant content
US8719213B2 (en) * 2011-03-29 2014-05-06 Manyworlds, Inc. Contextually transformed learning layer
US9858343B2 (en) * 2011-03-31 2018-01-02 Microsoft Technology Licensing Llc Personalization of queries, conversations, and searches
US20120278127A1 (en) 2011-04-28 2012-11-01 Rawllin International Inc. Generating product recommendations based on dynamic product context data and/or social activity data related to a product
US9369285B2 (en) 2011-04-28 2016-06-14 Qualcomm Incorporated Social network based PKI authentication
US20140108445A1 (en) * 2011-05-05 2014-04-17 Google Inc. System and Method for Personalizing Query Suggestions Based on User Interest Profile
US20120290374A1 (en) 2011-05-13 2012-11-15 Dell Products L.P. Social Marketplace Process and Architecture
US8626604B1 (en) 2011-05-19 2014-01-07 Google Inc. Aggregating product endorsement information
US8775517B1 (en) 2011-07-12 2014-07-08 Relationship Science LLC Viewing connectivity between user and entity of an information service
US20130054407A1 (en) 2011-08-30 2013-02-28 Google Inc. System and Method for Recommending Items to Users Based on Social Graph Information
US9928485B2 (en) 2011-09-07 2018-03-27 Elwha Llc Computational systems and methods for regulating information flow during interactions
US10546306B2 (en) * 2011-09-07 2020-01-28 Elwha Llc Computational systems and methods for regulating information flow during interactions
US8756500B2 (en) 2011-09-20 2014-06-17 Microsoft Corporation Dynamic content feed filtering
US20130091013A1 (en) * 2011-10-07 2013-04-11 Microsoft Corporation Presenting Targeted Social Advertisements
WO2013055818A1 (en) * 2011-10-11 2013-04-18 Applyrapid, Inc. Online system, apparatus, and method for obtaining or applying for information, programs, services and/or products
US20130097141A1 (en) 2011-10-12 2013-04-18 Microsoft Corporation Presenting search results annotated with social network connection information
US8948229B2 (en) 2011-10-13 2015-02-03 Cisco Technology, Inc. Dynamic hopping sequence computation in channel hopping communication networks
US20130097056A1 (en) * 2011-10-13 2013-04-18 Xerox Corporation Methods and systems for recommending services based on an electronic social media trust model
US20130124357A1 (en) 2011-11-16 2013-05-16 Zhijiang He System and method for online buying and selling goods and services within the context of social networking
US20130332308A1 (en) * 2011-11-21 2013-12-12 Facebook, Inc. Method for recommending a gift to a sender
US20130191316A1 (en) 2011-12-07 2013-07-25 Netauthority, Inc. Using the software and hardware configurations of a networked computer to infer the user's demographic
US20130173334A1 (en) * 2011-12-07 2013-07-04 Uniloc Luxembourg S.A. Inferring user demographics through network activity records
US8463295B1 (en) * 2011-12-07 2013-06-11 Ebay Inc. Systems and methods for generating location-based group recommendations
US8755830B2 (en) 2012-01-09 2014-06-17 Spectrum Bridge, Inc. System and method to facilitate time management for protected areas
US9547832B2 (en) 2012-01-10 2017-01-17 Oracle International Corporation Identifying individual intentions and determining responses to individual intentions
US8990898B2 (en) 2012-02-16 2015-03-24 Citrix Systems, Inc. Connection leasing for hosted services
US8898694B2 (en) * 2012-04-27 2014-11-25 United Video Properties, Inc. Systems and methods for indicating media asset access conflicts using a time bar

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302429B1 (en) * 1999-04-11 2007-11-27 William Paul Wanker Customizable electronic commerce comparison system and method
US20080065445A1 (en) * 2000-03-06 2008-03-13 Livesay Jeffrey A Method and process for providing relevant data, comparing proposal alternatives, and reconciling proposals, invoices, and purchase orders with actual costs in a workflow process
US7330895B1 (en) * 2001-03-15 2008-02-12 Microsoft Corporation Representation, decision models, and user interface for encoding managing preferences, and performing automated decision making about the timing and modalities of interpersonal communications
US20030046173A1 (en) * 2001-08-30 2003-03-06 Benjier James A. Store delivery of products ordered over a computer network
US20060047598A1 (en) * 2004-08-31 2006-03-02 E-Procure Solutions Corporation System and method for web-based procurement
US20090228339A1 (en) * 2008-03-05 2009-09-10 David Wolf Method and system for revenue per reverse redirect
US8224823B1 (en) * 2010-06-30 2012-07-17 A9.Com, Inc. Browsing history restoration
US20120109781A1 (en) * 2010-11-03 2012-05-03 Verizon Patent And Licensing, Inc. Passive shopping service optimization

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140181068A1 (en) * 2006-12-08 2014-06-26 Microsoft Corporation Communication system
US9489677B2 (en) 2012-06-04 2016-11-08 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US9940630B2 (en) 2012-06-04 2018-04-10 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US9928514B2 (en) 2012-06-04 2018-03-27 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US9760895B2 (en) 2012-06-04 2017-09-12 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US9754269B2 (en) 2012-06-04 2017-09-05 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US9514468B2 (en) * 2012-06-04 2016-12-06 American Express Travel Related Services Company, Inc. Systems and methods for delivering tailored content based upon a consumer profile
US20130325625A1 (en) * 2012-06-04 2013-12-05 American Express Travel Related Services Company, Inc. Systems and Methods for Delivering Tailored Content Based Upon a Consumer Profile
US9501787B2 (en) 2013-03-14 2016-11-22 American Express Travel Related Services Company, Inc. Delivering options for tailored content
US9286633B2 (en) 2013-03-14 2016-03-15 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9292817B2 (en) 2013-03-14 2016-03-22 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9324103B2 (en) 2013-03-14 2016-04-26 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9349137B2 (en) 2013-03-14 2016-05-24 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9355411B2 (en) 2013-03-14 2016-05-31 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9355378B2 (en) 2013-03-14 2016-05-31 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9292820B2 (en) 2013-03-14 2016-03-22 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9292818B2 (en) 2013-03-14 2016-03-22 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9501788B2 (en) 2013-03-14 2016-11-22 American Express Travel Related Services Company, Inc. Identifying and delivering tailored content with gift options
US9292819B2 (en) 2013-03-14 2016-03-22 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9721274B2 (en) 2013-03-14 2017-08-01 American Express Travel Related Services Company, Inc. Modifying tailored content based upon a service dialog
US9734516B2 (en) 2013-03-14 2017-08-15 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9292816B2 (en) 2013-03-14 2016-03-22 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US9256848B2 (en) 2013-03-14 2016-02-09 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US10643244B2 (en) 2013-03-14 2020-05-05 American Express Travel Related Services Company, Inc. Tailored content with tailored options related to reminders
US9846894B2 (en) 2013-03-14 2017-12-19 American Express Travel Related Services Company, Inc. Identifying and delivering tailored content based a reminder
US9245250B2 (en) 2013-03-14 2016-01-26 American Express Travel Related Services Company, Inc. Systems and methods for identifying and delivering tailored content based upon a service dialog
US20140279940A1 (en) * 2013-03-15 2014-09-18 Ebay Inc. Self-guided verification of an item
US20180157715A1 (en) * 2013-03-15 2018-06-07 Ebay Inc. Self-guided verification of an item
US9842142B2 (en) * 2013-03-15 2017-12-12 Ebay Inc. Self-guided verification of an item
US10650004B2 (en) * 2013-03-15 2020-05-12 Ebay Inc. Self-guided verification of an item
US10970732B2 (en) 2019-06-14 2021-04-06 MBP Insights, Inc. System and method for receiving real-time consumer transactional feedback
WO2021062021A1 (en) * 2019-09-25 2021-04-01 MBP Insights, Inc. Systems and methods for assessing merchant performance using real-time consumer transaction feedback
US20210390482A1 (en) * 2020-04-28 2021-12-16 Peter L. Rex Smart service routing using machine learning
US20220172304A1 (en) * 2020-12-02 2022-06-02 Tran Woods System and method for real time social engagement

Also Published As

Publication number Publication date
US9875483B2 (en) 2018-01-23
US20130311573A1 (en) 2013-11-21
US9799046B2 (en) 2017-10-24
US20130311260A1 (en) 2013-11-21
US10740779B2 (en) 2020-08-11
US20130311592A1 (en) 2013-11-21
US20130311324A1 (en) 2013-11-21
US20130311323A1 (en) 2013-11-21
US20130311621A1 (en) 2013-11-21

Similar Documents

Publication Publication Date Title
US20130311337A1 (en) Universal consumption service
US20230342830A1 (en) System and methods for personalization and enhancement of a marketplace
JP6273168B2 (en) Determination apparatus, determination method, and determination program
US20130317941A1 (en) Trust Graph
US20150278917A1 (en) Systems and methods for obtaining product recommendations
US7996270B2 (en) Community based network shopping
US20100005004A1 (en) System and method to guarantee a selling price of a product
US10176510B2 (en) System and method for item list creation and communication
US20150206155A1 (en) Systems And Methods For Private And Secure Collection And Management Of Personal Consumer Data
US20100088148A1 (en) System and methodology for recommending purchases for a shopping intent
JP6285515B2 (en) Determination apparatus, determination method, and determination program
US20120209713A1 (en) Electronic interpersonal advertising
US20160098767A1 (en) Using behavioral data in rating user reputation
US10580056B2 (en) System and method for providing a gift exchange
US10210559B2 (en) Systems and methods for recommendation scraping
US20150278919A1 (en) Systems and Methods for a Catalog of Trending and Trusted Items
US9836773B2 (en) Evaluation and selection of quotes of a commerce network
US20150206211A1 (en) Systems and Methods for Trusted Gifting
WO2013173790A1 (en) Trust graphs
US20110125611A1 (en) Optimized Electronic Commerce Transactions
JP4562205B2 (en) Transaction information brokerage system and brokerage apparatus
AU2012245584A1 (en) Method and apparatus for providing an electronic commerce platform
US10181147B2 (en) Methods and systems for arranging a webpage and purchasing products via a subscription mechanism
JP6644988B2 (en) System, program, method and computer readable medium
WO2013173794A1 (en) Universal consumption service

Legal Events

Date Code Title Description
AS Assignment

Owner name: LUVOCRACY INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:STOLL, NATHAN;ELLERHORST, ANDREW;REEL/FRAME:031066/0249

Effective date: 20130517

AS Assignment

Owner name: WAL-MART STORES, INC., ARKANSAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LUVOCRACY INC.;REEL/FRAME:035161/0350

Effective date: 20150312

AS Assignment

Owner name: WALMART APOLLO, LLC, ARKANSAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WAL-MART STORES, INC.;REEL/FRAME:045817/0115

Effective date: 20180131

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION