A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings that form a part of this document: Copyright eBay, Inc., All Rights Reserved.
While technology has opened up new forms of commerce and provided customers with additional shopping options, it has not radically altered traditional shopping at traditional brick and mortar shops.
In the drawings, which are not necessarily drawn to scale, like numerals may describe similar components in different views. Like numerals having different letter suffixes may represent different instances of similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document.
Disclosed in some examples are methods, systems, and machine readable media which assist consumers in shopping for various items in physical stores. Various web and application interfaces may communicate with a shopping service over a network to facilitate the creation, editing, and viewing of a shopping list. The shopping list may assist the consumer by providing a graphical indication of items the consumer wishes to purchase and by showing an indication that the item was purchased or put in the consumer's shopping cart to purchase.
Creation, editing, and viewing of the shopping list may be done on a dedicated application executable on a computing device (such as a mobile computing device), or through a web interface on any computing device capable of supporting a web-interface. The shopping list may be created, viewed, and edited simultaneously in multiple locations. For example, the consumer's roommate may login to the shopping service using a web interface from a computing device as the consumer is shopping and viewing the list on their mobile device. Any changes to the list made by the roommate may show up automatically on the mobile device so that the consumer can see them.
Turning now to
In some examples, each item may have a series of properties. For example, each item may have a category property which describes a type of item. Thus milk would be in the dairy category. In some examples, the shopping list may be sorted based on category. Shown in
In other examples, the shopping system may order the tiles more precisely by store layout. For example, the consumer may inform the system about which store the consumer is shopping in, and the system may re-order the list so as to create the most efficient path for the consumer through the store. The shopping system may have a store layout database which may inform the shopping system about the layout of particular stores. Based upon the store layout and the items in the consumer's list, the shopping system may plan the optimal route through the store which minimizes time, distance, or both. In some examples, the consumer may add or edit a store layout if the shopping system does not have the layout for their particular store. In other examples, the consumer may set up the system such that the system orders the shopping list according to a preferred walking route through the store (the preferred route may not be the most efficient route, but may be desirable for the consumer for other reasons, e.g., perhaps the consumer likes to shop for meats before dairy, or perhaps wants to shop for foods requiring refrigeration last to avoid spoilage).
In yet other examples, the shopping system may order items based upon the order in which the consumer checked off particular items in the past. For example, if the consumer usually buys milk before bread, then the shopping system may order the milk before the bread. In some examples, the system may infer the layout of the store based upon the order in which items are checked off in the past. This analysis may be limited to individual users, but in other examples, the system may infer the layout of a particular store based on an aggregate of all or a large subset of users of the system. In some examples, the system may infer the layout of one store based on the order that items are checked off at similar stores. For example, chain stores often have similar store layouts and thus the order in which items are checked off at one store in a chain may be used to infer the layout of another store in the same chain of stores.
While the example screen shown in
In yet other examples, the shopping system may show quantity. The shopping system may link with a merchant's inventory system and deliver to the consumer how many items in a consumer's list the merchant has in stock.
The application may allow consumers to add and delete items from their shopping list from one of the shopping interfaces (i.e., a dedicated application or a web interface). To add items to the shopping list, the consumer may search for the item in a stock collection of items (either stored in the application itself or on the shopping service) based on a textual search, a scan of the item's bar code, a picture of the item, or the consumer may add their own items.
In the example screen of
Camera button 1025 may allow users to add an item to the shopping list based upon taking a picture of the item. The shopping system may utilize image recognition to determine the properties of the product automatically based on matching the photo taken of the product to photos of products in the item collection of the shopping system. In other examples, the system may take the user to the item properties screen shown in
The add new item button 1030 of
By double clicking on, double tapping on, or otherwise interacting with, one of the item tiles in the list, or by adding a new item, the item details page may be shown. Turning now to
Changing the category using button 5030 may pull up a category selection screen 6000 shown in
Turning now to
Turning back to
Turning back to
Turning now to
Service 10010 may provide one or more web-based, or other interfaces (e.g., through a dedicated application) across network 10050 to mobile devices (such as mobile device 10060) and other computing devices (such as computing device 10070). This interface may allow users to create lists, view lists, modify lists, delete lists, add items, view items, modify items, delete items, modify favorites, view favorites, view past purchase history, change account settings, or the like.
Network 10050 may be or include a Wide Area Network (WAN), a Local Area Network (LAN), a Cellular Network (such as a Long Term Evolution network), or the like. Network 10050 may be any network which may allow mobile computing device 10060 and computing device 10070 to communicate with the shopping service 10010.
Mobile computing device 10060 and/or computing device 10070 may access shopping service 10010 either through the web-based interface (e.g., through the use of a web browser which may access one or more web pages provided by the shopping service 10010) or may access the shopping service 10010 through an application executing on mobile computing device 10060 or an application executing on the computing device 10070.
In some examples, the application or web interface may communicate with the shopping service 10010 to retrieve shopping lists, information on items, past purchase history, favorite lists, or the like. The user may then update these items and save these changes back to the shopping service 10010. In some examples, one user may be making changes to the list, items, or the like while another user is viewing or modifying these items. In some examples, shopping service 10010 may push changes made by one user to other users who are currently viewing or editing information for that same account. Thus a user who is shopping may see his spouse's additions to the shopping list in near real time.
Other services, such as special offers and promotions service 10080 may provide users special offers or promotions based on their purchase histories. In some examples special offers and promotions service 10080 may communicate these offers to the shopping service 10010 where it may be added to the user's information stored in the database 10040 and later communicated to the user. In other examples, the special offers and promotions service 10080 may communicate these special offers and promotions to the user's mobile computing device 10060 or other computing device 10070. As shown in
Store and product information service 10090 may contain a list of stores, their layouts, their products, the prices of those products, and/or the in stock quantities of those products. While store and product information service 10090 is shown as a separate service from shopping service 10010, in other examples, store and product information service 10090 may be part of shopping service 10010. In some examples, the shopping service 10010 may use the store and product information provided by store and product information service 10090 to sort the item lists. For example, the system may sort the list so that the user may complete their shopping in the fastest possible time. In other examples, the system may sort their shopping list such that the consumer is routed past an area of the store which contains a sponsored product. For example, if the user has dairy items, produce items, and baked goods items, the user may be routed in such a way as to pass the meat department which may contain a sponsored brand of sausage. In yet other examples, the list may also be ordered based upon an ordering which maximizes the consumer's opportunity to see promotional items of potential interest at a store. This might be attractive as some shoppers like to see deals at a store. In still other examples, the list may be ordered based upon an ordering which maximizes the consumer's opportunity to see high margin items of potential interest at a store. Store owners may wish to have the list ordered this way so as to generate traffic past high margin items. In yet other examples, the system may order items to see both high margin and promotional items. As with the sponsored products, the system may do this by rearranging the order of the items in the list based on the store layout in order to take the user by certain areas of the store so the consumer may traverse areas of the store with promotional or high margin items regardless of whether or not they are on the consumer's shopping list. The system may also rearrange promotional items and/or high margin items that are already on the consumer's shopping list so that the consumer shops for those items first. This may ensure these items are visited or purchased as the consumer may be in a hurry and may not get to all items on the consumer's shopping list.
In yet other examples, the shopping service 10010 may use the data in store and product information service 10090 to select a particular store from a number of potential stores whose layout allows for the quickest shopping experience (e.g., the store is optimally laid out based on the consumer's list), or the store that provides the lowest price on the sum total of the items in the user's list. Travel time and expenses between the consumer's current location or their home and the store may be factored into the cost calculation. For example, if one store has a particular item for a fairly cheap price, but is far away, the cost of going to that store may be higher than just paying the higher price at a more convenient store.
In yet additional examples, the system may break the list into multiple stores based on potential savings. For example, if a first store has item A cheaper than a second store, and the second store has item B cheaper than the first store, the system may inform the user to purchase item A at the first store and item B at the second store. This analysis may factor in travel time and expense to produce a list directing the consumer to purchase the items on their list in such a way as to minimize costs (including travel time and expense). Travel costs and expenses may be based upon a number of factors including distance, gas, gas mileage of the consumer's vehicle, mass transit (e.g., bus) costs, or the like.
In yet other examples, the shopping system may allow users to have goods directly shipped to a particular location, such as their house. For example, the system may interface with an internet commerce service such as internet commerce service 10100. Internet commerce service may allow users to buy their items on-line and have them delivered. For example, Coborns™ Delivers.com, eBay™, Amazon.com™, or the like. In other examples internet commerce system 10100 may include a crowdsourcing application such as TaskRabbit. TaskRabbit allows you to post a task you need to perform (e.g., pickup the items on my shopping list at a store) and the price you are willing to pay. Various individuals bid on these tasks and the winner is assigned to run the task. Once the task is complete the person who completed the task is paid. Thus the shopping system may automatically interface with TaskRabbit to allow users to post their item lists to TaskRabbit along with the price they are willing to pay. The winning bidder on TaskRabbit then shops for the items. Payment and delivery may also be facilitated by the shopping system.
In some examples, the shopping system may be linked to an online payment transaction service such as Paypal™ which may coordinate automatic payment for the items. For example, a user may submit his or her list to a merchant such as Walmart™, Target™, Cub Foods™, or the like and the payment transaction service may process payment for the items. The user then either arranges shipping for the items, or goes to the store to pick up the items. The items may be pre-selected and pulled from the shelves ahead of time by store employees (wherein the user just has to pickup the items), or the items may need to be pulled by the customer.
As already noted, in some examples consumers may choose to link their shopping lists together. As such, a new form of shopping, “social shopping,” may be created. In these examples, one consumer may do the shopping for multiple consumers. The system may facilitate this interaction by allowing consumers who already have pre-existing relationships (e.g., family, or friends) to share their shopping lists with each other. In other examples, the system may facilitate the sharing of shopping lists between consumers with no pre-existing relationships. The system may present users with other consumers who live nearby, share common shopping items and/or interests, or the like. The system may further facilitate social shopping by processing payment for items purchased on behalf of another consumer on the site. In some examples, this may be done through the payment transaction service.
In yet other examples, where the system breaks a consumer's list into multiple stores based on cheapest price, the system may assign each consumer in a group of consumers a particular store or stores, thus eliminating or minimizing the costs of buying multiple items in a list from multiple stores. Thus if consumer A has items A and B on their list, and A is cheapest at store 1 and B is cheapest at store 2 and consumer B has items C and D and C is cheapest at store 1 and D is cheapest at store 2, consumer A would be assigned to shop at store 1 for items A and C and consumer B would be assigned to shop at store 2 for items B and D. The system may then also facilitate payment for the items between the parties and assist in setting up delivery between the parties.
While the above examples described item searching based on name or bar code, in other examples, the items may be selectable by color.
In some examples, the system may allow for selection of products by hue by preprocessing the product images to identify the hues that correspond to that product. For each product image the system may attempt to determine a predominant color in the image. This may involve pre-cropping the image, searching for the “interest rectangle” within the image, or the like. The system may then create a color histogram for the cropped area. If a predominant color band is found, extract the hue (often represented as a number from 0-360 degrees), and store that number in a database referencing the product. In some cases, not all products will have a predominant hue. In some examples, the database may be indexed via hue to allow fast access. When the application needs a set of products for a given hue the system may query the database for products with a hue in a range surrounding the hue specified by the user. For instance, if the user chooses the color yellow in the UI (hue value of approximately 60), the system might look for products with a value in the hue column between 50 and 70 and return those products to the client. The “fuzziness” (that is, the width of the range of hues that are considered a match) might be decided on the server side, or might be a user preference.
If the user updates any portion of the shopping information at operation 12030, this change may be communicated to the shopping service at operation 12040. This communication may be instantaneous, or the application or web interface may wait and communicate a batch of changes all at once.
If other users are making changes to the shopping information of this account (e.g., the other users are signed in from another computing device), any changes made by that user may be pushed by the shopping service to the user's computing device at operation 12050—allowing the user to see the changes in real time (or near real time). In other examples, the application or web interface may periodically poll the shopping service for any changes in the shopping information.
In some examples, the notifications of updates to the list may be done even if the application or web interface is not presently executing on the mobile device. For example, mobile devices allow notifications to applications that are not currently executing.
The present application may use the term “service” to denote an electronic service which provides information to a client utilizing the service. The service may include any number of physical servers, databases, and other computing devices. The physical components of the service may be local to each other, or may be distributed across a wide area network (such as the Internet).
Certain embodiments are described herein as including logic or a number of components, modules, or mechanisms. Modules may constitute either software modules (e.g., code embodied on a machine-readable medium or in a transmission signal) or hardware modules. A hardware module is a tangible unit capable of performing certain operations and may be configured or arranged in a certain manner. In example embodiments, one or more computer systems (e.g., a standalone, client or server computer system) or one or more hardware modules of a computer system (e.g., a processor or a group of processors) may be configured by software (e.g., an application or application portion) as a hardware module that operates to perform certain operations as described herein.
In various embodiments, a hardware module may be implemented mechanically or electronically. For example, a hardware module may comprise dedicated circuitry or logic that is permanently configured (e.g., as a special-purpose processor, such as a field programmable gate array (FPGA) or an application-specific integrated circuit (ASIC)) to perform certain operations. A hardware module may also comprise programmable logic or circuitry (e.g., as encompassed within a general-purpose processor or other programmable processor) that is temporarily configured by software to perform certain operations. It will be appreciated that the decision to implement a hardware module mechanically, in dedicated and permanently configured circuitry, or in temporarily configured circuitry (e.g., configured by software) may be driven by cost and time considerations.
Accordingly, the term “hardware module” should be understood to encompass a tangible entity, be that an entity that is physically constructed, permanently configured (e.g., hardwired) or temporarily configured (e.g., programmed) to operate in a certain manner and/or to perform certain operations described herein. Considering embodiments in which hardware modules are temporarily configured (e.g., programmed), each of the hardware modules need not be configured or instantiated at any one instance in time. For example, where the hardware modules comprise a general-purpose processor configured using software, the general-purpose processor may be configured as respective different hardware modules at different times. Software may accordingly configure a processor, for example, to constitute a particular hardware module at one instance of time and to constitute a different hardware module at a different instance of time.
Hardware modules can provide information to, and receive information from, other hardware modules. Accordingly, the described hardware modules may be regarded as being communicatively coupled. Where multiple of such hardware modules exist contemporaneously, communications may be achieved through signal transmission (e.g., over appropriate circuits and buses) that connect the hardware modules. In embodiments in which multiple hardware modules are configured or instantiated at different times, communications between such hardware modules may be achieved, for example, through the storage and retrieval of information in memory structures to which the multiple hardware modules have access. For example, one hardware module may perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. A further hardware module may then, at a later time, access the memory device to retrieve and process the stored output. Hardware modules may also initiate communications with input or output devices, and can operate on a resource (e.g., a collection of information).
The various operations of example methods described herein may be performed, at least partially, by one or more processors that are temporarily configured (e.g., by software) or permanently configured to perform the relevant operations. Whether temporarily or permanently configured, such processors may constitute processor-implemented modules that operate to perform one or more operations or functions. The modules referred to herein may, in some example embodiments, comprise processor-implemented modules.
Similarly, the methods described herein may be at least partially processor-implemented. For example, at least some of the operations of a method may be performed by one or processors or processor-implemented modules. The performance of certain of the operations may be distributed among the one or more processors, not only residing within a single machine, but deployed across a number of machines. In some example embodiments, the processor or processors may be located in a single location (e.g., within a home environment, an office environment or as a server farm), while in other embodiments the processors may be distributed across a number of locations.
The one or more processors may also operate to support performance of the relevant operations in a “cloud computing” environment or as a “software as a service” (SaaS). For example, at least some of the operations may be performed by a group of computers (as examples of machines including processors), with these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs).
Example embodiments may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Example embodiments may be implemented using a computer program product, for example, a computer program tangibly embodied in an information carrier, for example, in a machine-readable medium for execution by, or to control the operation of, data processing apparatus, for example, a programmable processor, a computer, or multiple computers.
A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
In example embodiments, operations may be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output. Method operations can also be performed by, and apparatus of example embodiments may be implemented as, special purpose logic circuitry (e.g., a FPGA or an ASIC).
The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In embodiments deploying a programmable computing system, it will be appreciated that both hardware and software architectures require consideration. Specifically, it will be appreciated that the choice of whether to implement certain functionality in permanently configured hardware (e.g., an ASIC), in temporarily configured hardware (e.g., a combination of software and a programmable processor), or a combination of permanently and temporarily configured hardware may be a design choice. Below are set out hardware (e.g., machine) and software architectures that may be deployed, in various example embodiments.
The example computer system 15000 includes a processor 15002 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 15004 and a static memory 15006, which communicate with each other via a bus 15008. The computer system 15000 may further include a video display unit 15010 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 15000 also includes an alphanumeric input device 15012 (e.g., a keyboard), a user interface (UI) navigation device 15014 (e.g., a mouse), a disk drive unit 15016, a signal generation device 15018 (e.g., a speaker) and a network interface device 15020.
The disk drive unit 15016 includes a machine-readable medium 15022 on which is stored one or more sets of instructions and data structures (e.g., software) 15024 embodying or used by any one or more of the methodologies or functions described herein. The instructions 15024 may also reside, completely or at least partially, within the main memory 15004, static memory 15006, and/or within the processor 15002 during execution thereof by the computer system 15000, the main memory 15004 and the processor 15002 also constituting machine-readable media.
While the machine-readable medium 15022 is shown in an example embodiment to be a single medium, the term “machine-readable medium” may include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more instructions or data structures. The term “machine-readable medium” shall also be taken to include any tangible medium that is capable of storing, encoding or carrying instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention, or that is capable of storing, encoding or carrying data structures used by or associated with such instructions. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, and optical and magnetic media. Specific examples of machine-readable media include non-volatile memory, including by way of example, semiconductor memory devices (e.g., Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable Programmable Read-Only Memory (EEPROM)) and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
The instructions 15024 may further be transmitted or received over a communications network 15026 using a transmission medium. The instructions 15024 may be transmitted using the network interface device 15020 and any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a LAN, a WAN, the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., WiFi and WiMax networks). The term “transmission medium” shall be taken to include any intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible media to facilitate communication of such software.
Although the present invention has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
Although an embodiment has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The accompanying drawings that form a part hereof, show by way of illustration, and not of limitation, specific embodiments in which the subject matter may be practiced. The embodiments illustrated are described in sufficient detail to enable those skilled in the art to practice the teachings disclosed herein. Other embodiments may be used and derived therefrom, such that structural and logical substitutions and changes may be made without departing from the scope of this disclosure. This Detailed Description, therefore, is not to be taken in a limiting sense, and the scope of various embodiments is defined only by the appended claims, along with the full range of equivalents to which such claims are entitled.
Such embodiments of the inventive subject matter may be referred to herein, individually and/or collectively, by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. Thus, although specific embodiments have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific embodiments shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments. Combinations of the above embodiments, and other embodiments not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description.
In this document, the terms “a” or “an” are used, as is common in patent documents, to include one or more than one, independent of any other instances or usages of “at least one” or “one or more.” In this document, the term “or” is used to refer to a nonexclusive or, such that “A or B” includes “A but not B,” “B but not A,” and “A and B,” unless otherwise indicated. In the appended claims, the terms “including” and “in which” are used as the plain-English equivalents of the respective terms “comprising” and “wherein.” Also, in the following claims, the terms “including” and “comprising” are open-ended; that is, a system, device, article, or process that includes elements in addition to those listed after such a term in a claim are still deemed to fall within the scope of that claim. Moreover, in the following claims, the terms “first,” “second,” and “third,” and so forth are used merely as labels, and are not intended to impose numerical requirements on their objects.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. §1.72(b), requiring an abstract that will allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.
This patent application claims the benefit of priority, under 35 U.S.C. Section 119(e), to U.S. Provisional Patent Application Ser. No. 61/684,407, entitled “System and Method for Interactive and Social Shopping,” filed on Aug. 17, 2012, which is hereby incorporated by reference herein in its entirety.
Number | Date | Country | |
---|---|---|---|
61684407 | Aug 2012 | US |