A mobile app for a mobile device includes logic for an overlay for the UI of the mobile device, and a location on the UI where the overlay is to be displayed, as specified by the user. The mobile app also comprises a scanning layer to create a list of items to be located and acquired. Instructions for locating the items, and objectives for ordering the locations of the items on the overlay are received from the user. The objectives may be for a trip to acquire the items, such as total cost, time, number of stops, preferred establishments for acquiring the items, preferred brands of the items, and other bases. The locations of the items are identified and filtered in accordance with the instructions. The locations of the items are displayed on the overlay at the area of the user interface specified by the user, according to geographical location.
|
6. A computer implemented method comprising:
receiving, by a first mobile device application, via a wireless communication channel, at least one electronic message from a second mobile device;
determining, by the first mobile device application that received the at least one electronic message from the second mobile device, that the at least one electronic message has been received from a previously specified user associated with the second mobile device, the previously specified user having been specified by a user of the first mobile device application;
in response to determining, by the first mobile device application, that the at least one electronic message has been received from the previously specified user associated with the second mobile device, processing, by the first mobile device application, content of the at least one electronic message to extract data from the at least one electronic message;
determining, by the first mobile device application, that the extracted data identifies a tangible item and is associated with a stored shopping list;
responsive to determining that the extracted data identifies the tangible item and is associated with the stored shopping list and in response to determining that the at least one electronic message has been received from the previously specified user, adding, by the first mobile device application, the extracted data that identities the tangible item to the stored shopping list;
removing the data that identifies the tangible item from the shopping list in response to receiving an input based on a gesture from the user of the first mobile device application;
retrieving historical data associated with the user of the first mobile device application;
determining, based on the historical data, an amount of weight or bulk the user can carry based on demographic data of the user and physically identifying data of the user; and
optimizing the shopping list based on the determined amount of weight or bulk the user can carry.
11. A non-transitory computer readable medium comprising non-transitory computer readable instructions for performing operations when executed by one or more processors, the operations comprising:
receiving, by a first mobile device application, via a wireless communication channel, at least one electronic message from a second mobile device;
determining, by the first mobile device application that received the at least one electronic message from the second mobile device, that the at least one electronic message has been received from a previously specified user associated with the second mobile device, the previously specified user having been specified by a user of the first mobile device application;
in response to determining, by the first mobile device application, that the at least one electronic message has been received from the previously specified user associated with the second mobile device, processing, by the first mobile device application, content of the at least one electronic message to extract data from the at least one electronic message;
determining, by the first mobile device application, that the extracted data identifies a tangible item and is associated with a stored shopping list;
responsive to determining that the extracted data identifies the tangible item and is associated with the stored shopping list and in response to determining that the at least one electronic message has been received from the previously specified user, adding, by the first mobile device application, the extracted data that identifies the tangible item to the stored shopping list; and
removing the data that identifies the tangible item from the shopping list in response to receiving an input based on a gesture from the user of the first mobile device application;
retrieving historical data associated with the user of the first mobile device application;
determining, based on the historical data, an amount of weight or bulk the user can carry based on demographic data of the user and physically identifying data of the user; and
optimizing the shopping list based on the determined amount of weight or hulk the user can carry.
1. A system comprising:
at least one processor and instructions accessible on a computer-readable storage medium, the instructions causing the at least one processor to perform operations comprising:
receiving, by a first mobile device application, via a wireless communication channel, at least one electronic message from a second mobile device,
determining, by the first mobile device application that received the at least one electronic message from the second mobile device, that the at least one electronic message has been received from a previously specified user associated with the second mobile device, the previously specified user having been specified by a user of the first mobile device application;
in response to determining, by the first mobile device application, that the at least one electronic message has been received from the previously specified user associated with the second mobile device, processing, by the first mobile device application, content of the at least one electronic message to extract data from the at least one electronic message;
determining, by the first mobile device application, that the extracted data identifies a tangible item and is associated with a stored shopping list;
responsive to determining that the extracted data identifies the tangible item and is associated with the stored shopping list and in response to determining that the at least one electronic message has been received from the previously specified user, adding, by the first mobile device application, the extracted data that identifies the tangible item to the stored shopping list;
removing the data that identifies the tangible item from the shopping list in response to receiving an input based on a gesture from the user of the first mobile device application;
retrieving historical data associated with the user of the first mobile device application;
determining, based on the historical data, an amount of weight or bulk the user can carry based on demographic data of the user and physically identifying data of the user; and
optimizing the shopping list, based on the determined amount of weight or bulk the user can carry.
2. The system of
searching for a replacement item, corresponding to the tangible item on the shopping list:
determining whether a price of the replacement item is lower than a price of the tangible item by more than a threshold, the threshold being specified by the user;
prompting the user of the first mobile device application to purchase the replacement item instead of the tangible item in response to determining that the price of the replacement item is lower than the price of the tangible item by more than the threshold; and
updating the shopping list based on a response received from the user to the prompt.
3. The system of
receiving a receipt of purchased items with the first mobile device application; and
updating preferences for the user based on the received receipt.
4. The system of
capturing, by the first mobile device application, a photograph of a given item on the shopping list; and
in response to capturing the photograph of the given item, causing the given item to be checked off the shopping list.
5. The system of
in response to removing the data that identifies the tangible item from the shopping list, prompting the user of the first mobile device application to specify a type or brand of the tangible item; and
updating a shopping preference list for the user based on the specified type or brand input by the user.
7. The method of
searching for a replacement item, corresponding to the tangible item on the shopping list:
determining whether a price of the replacement item is lower than a price of the tangible item by more than a threshold, the threshold being specified by the user;
prompting the user of the first mobile device application to purchase the replacement item instead of the tangible item in response to determining that the price of the replacement item is lower than the price of the tangible item by more than the threshold; and
updating the shopping list based on a response received from the user to the prompt.
8. The method of
receiving a receipt of purchased items with the first mobile device application; and
updating preferences for the user based on the received receipt.
9. The method of
capturing, by the first mobile device application, a photograph of a given item on the shopping list; and
in response to capturing the photograph of the given item, causing the given item to be checked off the shopping list.
10. The method of
in response to removing the data that identifies the tangible item from the shopping list, prompting the user of the first mobile device application to specify a type or brand of the tangible item; and
updating a shopping preference list for the user based on the specified type or brand input by the user.
12. The non-transitory computer readable medium of
searching for a replacement item, corresponding to the tangible item on the shopping list;
determining whether a price of the replacement item is lower than a price of the tangible item by more than a threshold, the threshold being specified by the user;
prompting the user of the first mobile device application to purchase the replacement item instead of the tangible item in response to determining that the price of the replacement item is lower than the price of the tangible item by more than the threshold; and
updating the shopping list based on a response received from the user to the prompt.
13. The non-transitory computer read medium of
receiving a receipt of purchased items with the first mobile device application; and
updating preferences for the user based on the received receipt.
14. The non-transitory computer readable medium of
capturing, by the first mobile device application, a photograph of a given item on the shopping list; and
in response to capturing the photograph of the given item, causing the given item to be checked off the shopping list.
15. The non-transitory computer readable medium of
in response to removing the data that identifies the tangible item from the shopping list, prompting the user of the first mobile device application to specify a type or brand of the tangible item; and
updating a shopping preference list for the user based on the specified type or brand input by the user.
|
This application is a continuation of U.S. patent application Ser. No. 13/599,580, filed on Aug. 30, 2012, the benefit of priority of which is claimed hereby, and which is incorporated by reference herein in its entirety.
The present application relates generally to the technical field of user interface presentation and, in one embodiment, to customizing an overlay for a user interface in a way specified by the user.
When a user accesses a web site via a network, the user interface (UI) display that is presented by the web site may not be in an area of UI that is satisfactory to a user. It is therefore desirable to allow the user to specify an area of the UI for display of information presented to the user. Further, the format of the display may not be satisfactory to the user. It is therefore also desirable to provide an overlay for displayed information that presents the information on the UI in a layout format that is satisfactory to the user. Currently users also cannot create a list of items from items that arrive to a user device via online content such as an email. A computer layer that facilitates creation of a list of items received as content is also desirable.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings:
The present disclosure describes data processing techniques for creating and optimizing a shopping list to order the obtaining of products and/or services (hereinafter “items”) that are being offered via brick-and-mortar and/or online retail stores, and then present the optimized results in such a manner that conveys to the viewer in a simple and intuitive manner the distance and/or travel time between a location of the shopper, and one or more brick-and-mortar stores at which the items may be obtained, the optimization being based on a predetermined objective. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various aspects of different embodiments. It will be evident, however, to one skilled in the art, that the present embodiments may be practiced without all of the specific details.
Creating the List of Items
Embodiments are not limited to mobile devices but could be implemented partly on a mobile device and partly on a laptop or other stationary computing device. The shopping list creator and optimizer may recognize a list of shopping items on a mobile device, either within a mobile app provided by a publication system such as eBay, Inc.,® or in a separate app. The list may be imported into the eBay app if found within an external application. In one embodiment, the list may be created by a shopper using an input mechanism (e.g., keyboard, camera, voice input) and then imported into the app. In some embodiments the shopping list to be optimized may be created by the shopper at home, or at some other location, using a computer. The optimized shopping list may be returned to the computer for use when the shopper embarks on the shopping trip. However, in many embodiments, the list is created on, or imported to, the mobile device, either manually by the shopper or automatically as more fully described below, and returned to the mobile device in optimized format. Alternatively, the optimized list may be returned to both the home computer and the mobile device for use as the shopper desires.
In another embodiment, the list may be created by the shopper using any of a variety of applications, including a cell phone note pad application. In another embodiment, the user may execute a search (on a search engine, website, or within (or associated with) the mobile app, etc.) and select items for inclusion on the list such as, for example, by searching the shopper's email, text messages, voice mail, photos, and other suitable content and create the list from the content. As one example, the shopper's wife may text the shopper, “don't forget the milk, also buy bread.” The mobile app can be actuated and set to scan for a predetermined time period, a predetermined number of messages, or messages from a particular person, among other things, each of which may be set by the shopper, to determine relevant emails, texts (such as the above text message), voice mail, photos, instant chat messages, videos, and the like that are appropriately designated as including shopping list content. Recognition can be by appropriate reading technology for email and text, voice recognition for voice mails, and visual recognition for photos. The results of the scan may be sent to the publication system for use in conjunction with optimizing the list and detecting purchased items.
In some embodiments, a scanning layer or engine may be implemented, for example, just above the OS layer of the mobile device, and might be constantly or intermittently active for scanning the above emails, texts, chats, voice mails, photos, and the like for more efficiency for the shopper. For example, the scanning layer may execute in the background of the device and may activate itself upon detecting that a message is received by an account (e.g., email account, chat account, cellular account) associated with the mobile device. In either case, the layer or the app will extract out data such as the item names, quantities, brands, type, (e.g., organic) from the received message and add the extracted data to a shopping list. In some embodiments, the extracted data may include metadata accompanying the extracted data. Once a list is populated with one or more items extracted from a message, the scanning layer may return to a passive listening mode (to conserve device battery life, among other reasons) to await detection of another incoming message. In some embodiments, the scanning layer may be selectively enabled or disabled by the user to permit the user to exercise control over the privacy of the data contained on or received by the device. For ease of description, the app and the layer will be referred to collectively herein by the term “app” although one of ordinary skill in the art will readily recognize that either term could be used.
Optimizing the List of Items
Accordingly, the optimized shopping list may be provided to the shopper on the mobile phone, optionally with maps and directions. In some embodiments, the shopper location may be obtained automatically using a location system (e.g., GPS, triangulation, shopper input of location, wi-fi detection). Or the shopper may simply select a location on a map (using a pointing device, such as a mouse, or a finger or stylus with a touch screen display) to indicate a location at which the shopper will be at some future time and from which the distance or travel time to another locations such as stores for obtaining the items should be derived. With some embodiments, the shopper may define a circular region by simply dragging his or her finger or stylus (or taking a similar action with a pointing device) to specify a diameter, or radius, of a circle making up a circular region (see example illustrated in
In another embodiment a shopper that is using public transit may specify the number of the vehicle or transit route and the time of departure and the system, interacting with publically available route maps, may obtain the route of transit to be used to identify stores associated at which the items on the shopping list may be purchased, such that those stores closest in distance or travel time to any point along the route can be presented.
In other embodiments the app may take into account shopping objectives such as miles, minimum number of stops, bus or transit schedule, and routes. In one embodiment, if the shopper is traveling by public transit the stores searched may by definition be limited to those on or near the route of the particular public transit vehicle, and the app may also compute, using available historical data, how much an individual can carry by weight and bulk. In this regard, demographic data such the shopper's age and/or other physically identifying data (e.g., height, weight, gender) may be entered into the app to be factored in for optimizing, on the theory that older people may carry less than younger people. In other embodiments, a shopping objective may be meeting the shopper's preference history, such as the shopper's store preferences, shopper's brand preferences, and the shopper's item type preferences may be entered into the app and the shopping list optimized based on one or more of the objectives. For example, if the shopper's preference list indicates preference for Whole Foods® for groceries, Target® or Wal-Mart® for dry goods, and Home Depot® for building materials, the search may be limited to those stores. Of course, the above special price prompts may also be included.
With some embodiments, the optimized shopping list may be shown as a simple list, with each individual item entry including any one or more of: a price at which an item is being offered; a store name (virtual online, or physical, e.g., local brick and mortar); a brief description of the items being offered; a physical distance from a shopper's location to the store at which the items is being offered; a link to share the listing with someone; a link to a map showing directions from the shopper's current location, or some shopper-specified location, to the store; a travel time indicating how long (in time) it would take the shopper to travel via a particular mode, to the location of the store at which the product is being offered; and a quantity of a product being offered at the store. With some embodiments, search results for online virtual stores may be shown separate from the search results for locally available items, while in some embodiments, the search results are intermingled, and/or arranged according to some other specific aspect or attribute, such as price. With some embodiments, a shopper may filter the search results to only view items located at stores within a threshold distance; located at stores within a threshold travel time (where the mode of travel can be specified), that have prices that are less than, or exceed, some threshold price, and so forth.
The shopper may actuate the app to begin optimizing the shopping list. Alternatively any of a plurality of automatic actuations may be employed. For example, if the mobile device GPS system detects that the device is moving more than a predetermined distance, the system may assume the shopper is traveling to do the shopping indicated by the shopping list, and this may trigger the app or, in some embodiments, the scanning layer, to begin the scanning discussed above and assembling a list and begin the shopping optimization. The system would then run a search against retailers, taking into account factors such as loyalty cards, coupons, discounts offered by stores, and purchase history of the shopper, which narrows the list in order to optimize the shopping trip. Based on the foregoing, cost lookups and inventory data for each item on the list can be performed at nearby (or favorite) stores (using Milo®, or a similar service, for example). The optimizer may generate one or more lists with total costs or may divide the list among different nearby stores in an attempt to find the optimal set of stores from which to purchase the items. Such objectives may include price (factoring in on-sale items, the above-mentioned loyalty cards, coupons, discounts), the purchase preferences or history of the shopper), travel time, most efficient use of time, number of stops, transportation options, fuel costs, sufficiency of inventory for each individual item, the preferred brands or types in the shopper's preference list or history, or other predetermined objectives, which may be set by the shopper. Dividing purchase of the items among stores may be based on insufficient quantity at a single store, and may also be based on the above objectives. For example, one store may have the better price (factoring in on-sale items, the above-mentioned loyalty cards, coupons, discounts and the purchase history of the shopper) for some of the items and another store may have the better price for other items on the shopping list. As another example, one store may have the preferred brand for some of the items, and another store may have the preferred brand for other of the items.
Consistent with some embodiments, a web-based search engine cooperates with the mobile app to optimize a shopping list and return to a client computing device, either mobile, stationary, or to both a mobile device and to a stationary device, the shopping list organized based on predetermined objectives, as discussed above. In alternate embodiments, a shopper may enter one or more selections into the shopper's mobile device indicating the shopper's objectives. In one embodiment the shopper may select time, which would cause the system to generate a list with the shortest travel time. In another embodiment the shopper may select lowest cost. In another embodiment, the shopper could select brands and stores, in which case the optimization would be limited to the shopper's preferred store based on the shopper's preference list or purchase history (obtained as discussed below), and brands specified or, if not specified on the list, the preferred brands in the shopper's preference list or history. In another embodiment, a list may be generated based on one or more of the above selections, such as shortest travel time and preferred stores. In some instances a specific brand (brand X) of item is selected by the shopper, or entered from the shopper's preference list, and the system may search for brand X. The system may also search for alternate brands and find such a good price for the same item in brand Y, that the system may prompt the shopper as to whether brand Y at the given price might preferred. Likewise, the foregoing good price may be found online instead of at a bricks and mortar store and the shopper may be prompted as to whether to purchase the item online if the price can be obtained. The price trigger point for such prompts may be predetermined either by the system, or by the shopper, for example by entering percentage discounts that would cause the shopper to be prompted to determine whether the shopper prefers to depart from a stated preference.
The mobile device may also allow entry of preorder, reservation, or hold options to allow for the shopper to preorder an item such as take-out food or hold an item or quantity of item, and then execute the shopping list with time of the trip, including likely time at each store, factored into time of the trip, and the distances involved, including the distance from the final store to the restaurant to pick up the take-out order at the desired time.
With some embodiments, the shopper may toggle the presentation of the optimized list between distance and time, such that the search results can be ordered based on distance (e.g., the geodesic distance, or distance as the crow flies) or, the more practical and useful measure—the time required to travel between the location of the shopper and the location of the store offering the items presented in a search result. With some embodiments discussed above, the shopper can specify a mode of transportation (e.g., walking, biking, automobile, public transportation, etc.) and the travel time to obtain the items on the shopping list will be derived based on the routes available when travelling via the selected mode. With some embodiments, various filtering criteria may be applied. For example, the shopper may request that the shopping list be optimized with respect to one or more stores that are within a predefined travel time, or distance. Similarly, a shopper may indicate a preference for shopping only at specific stores (e.g., Apple® Store, Best Buy®, Wal-Mart®, and so forth) to obtain the shopping list organized by items being offered only by those stores.
With some embodiments, the shopping list may be organized by the shopper interacting with a map. In particular, with some embodiments, the shopper may interact with a map to specify anyone or more of: the starting location to be used for deriving the distance or travel time to the items associated with the individual search results; a specific geographical region of interest, from which to display search results; a corridor or commuting route—from which any point along the corridor can be used as the starting point to derive the distance to a store associated with a search result. The map may be presented as part of a web-based map application, a desktop computer application, or an application that is specific to a particular mobile computing platform (e.g., such as Apple's iOS, or Google's Android operating systems.)
Optimal lists may be presented to the shopper along with directions and/or a map to direct the shopper to the different stores. The optimization could also include accessing a shopper's purchase history or preferences, discussed above, via one or more retailers, online e-commerce providers (e.g., eBay), data recorded in the app, all coupons, discounts, in-store specials, and the like to aid in compiling the costs for the list of items. For example, if the list includes a generic term like “ground beef”, the list could be augmented and the costs could be made more accurate by recognizing from the shopper's purchase history the shopper prefers to purchase organic ground beef as the type preference. Also, optimized in-store directions could provide a specifically ordered shopping list to direct a shopper to the items within the store. The directions could specify an ordered path within a store for picking up items on the list. For example, the directions could tell a shopper to pick up items 2 and 4 from aisle 1, and then swing over to aisle 2 to pick up item 1, then aisle 3 for item 3, etc.
Shopping
As used herein, “shopping” may be viewed as executing the shopping list. The shopper obtains the list optimized by the system and enters into a bricks and mortar store. As the shopper picks up the various shopping items they may be checked off the list, either by shopper selection of a selectable icon or other indicator (e.g., image, text, button) on the mobile device or, in more efficient manner for the shopper, by gesture, by taking a photo, by scanning the item bar code, or other suitable action. The shopper may take a photograph of the items by the mobile device as the items are entered into the shopping cart or, in some instances, by taking a photograph of all items in the cart. As mentioned above, the items may be checked off the list by device gesture. A non-exhaustive list of device gestures may be seen in the Appendix. As items are checked off the list they may be transmitted wirelessly to the store's system which may then use the data to prepare a Point of Sale (POS) check-out list such that time waiting in line to check out and pay for the goods will be minimized. Gestures, which may entail turning on the device camera for gesture recognition, may not be capable of identifying the item picked up by the user. However, gestures could be function to identify the item picked up if the list were specifically ordered (e.g., #1 milk, #2 soap, #3 apples) as discussed above, and then when the user picks up the first item, he performs the gesture and the system interprets the gesture to mean that the user picked up milk. This would depend on the user following the list and picking up the items in the specified order. In general it might be easier to just perform a device gesture. For example, the device gesture could leverage an accelerometer of the device so that if the shopper “waves” the device over the item or shake the device or move the device some other way, the device (which is ordinarily not moving) records or detects a movement of the device and maps that movement to the recognized gesture of picking up an item.
Gestures are more of an intuitive way of crossing items off the list so that when the shopper looks at the list, he or she doesn't have to recount each item in the shopping basket and manually cross it off. Gestures may not be sufficient to determine specific brand or type of item purchased. To know what specific type of apple was purchased, the shopper may scan the barcode or enter the product code into the app or obtain a copy of the receipt of items purchased and map “apples” to “Fuji Apples, 2.3 lbs., $5.50” on the receipt.
In one embodiment, the system may also prompt the shopper after an item is checked off the list in order to update the shopper's preference list over time. For example, the system may tap into PayPal or a similar service to determine a list of the shopper's past preferences and determine that the shopper prefers Fuji apples to Granny Smith apples. For example, if during shopping the shopper checked off apples, the system may prompt, “Did you buy Fuji apples?” The reply may be used in continually updating of the shopper's preferences (purchase history). If the shopper over time begins buying Granny Smith more often than Fuji, the preference list will change the shopper's preference in apples to Granny Smith.
In another embodiment, purchase history (preference) list update may be accomplished automatically by entering the data on the POS check-out list if that data is available to the app and using the data to update preferences. The App may be designed to update the shopper's preferences at or after checkout, when the items are actually purchased. For example, the app could receive a receipt or detailed list of items purchased and could use that receipt/list to update user preferences with items actually purchased. This could be accomplished via a payment provider or point-of-sale provider hooking into the mobile app and providing a digital copy of the receipt. Or the receipt could be obtained from the retailer (via API call), especially if the retailer already lets the user link the retailer loyalty card into the app. For example, if the store or the payment provider has a system that is “open” it may allow the app to have access to the transaction data. In another embodiment, the credit card processor for the shopper's credit card may allow the shopper to have access to the transaction data. Alternatively, the user may take a photo of the paper receipt from the POS and scan/OCR the receipt and import it into the app to determine items purchased.
If the store won't expose transaction data, then coupons that are redeemed will be exposed since if a Campbell soup coupon is redeemed it shows that the shopper bought Campbell soup. For example, a mobile app may expose coupons to the shopper and allow the shopper to link/load coupons to the shopper's loyalty card account. When the shopper checks out at the retailer and signs in at the POS with the shopper's loyalty card (swipe, enter phone #) and buys the item having the associated coupon, the POS knows to apply the coupon to the purchase of the item. The mobile app will know the coupon is redeemed based on post-transaction processing (it knows the shopper bought the item and that the coupon was used), so if the shopper can get coupon redemption data from the retailer or from the coupon provider (e.g., the manufacturer, the distributor, the coupon company), that could be another way to determine what specific item is purchased by a user.
Example System
In an example, the merchant 130 can operate computer systems, such as an inventory system 132 or a POS system 134. The network-based publication system 120 can interact with any of the systems used by merchant 130 for operation of the merchant's retail or service business. In an example, the network-based publication system 120 can work with both POS system 134 and inventory system 132 to obtain access to inventory available at individual retail locations run by the merchant. This inventory information can be used in both generating items listings, and selecting and ordering search results served by the network-based publication system 120.
Example Operating Environment
With some embodiments, the shopper may explicitly indicate or specify his current location for use in deriving a distance or travel time to stores offering products/services. However, with some embodiments, location information of the shopper may be derived with a mobile computing device of the shopper.
For example, the connection 210 may be Code Division Multiple Access (CDMA) connection, a Global System for Mobile communications (GSM) connection, or other type of cellular connection. Such connection 210 may implement any of a variety of types of data transfer technology, such as Single Carrier Radio Transmission Technology (1×RTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, or other data transfer technology (e.g., fourth generation wireless, 4G networks). When such technology is employed, the communication network 220 may include a cellular network that has a plurality of cell sites of overlapping geographic coverage, interconnected by cellular telephone exchanges. These cellular telephone exchanges may be coupled to a network backbone (for example, the public switched telephone networks (PSTN), a packet-switched data network, or other types of networks).
In another example, the connection 210 may be Wireless Fidelity (Wi-Fi, IEEE 802.11x type) connection, a Worldwide Interoperability for Microwave Access (WiMAX) connection, or another type of wireless data connection. In such an embodiment, the communication network 220 may include one or more wireless access points coupled to a local area network (LAN), a wide area network (WAN), the Internet, or other packet-switched data network.
In yet another example, the connection 210 may be a wired connection, for example an Ethernet link, and the communication network may be a LAN, a WAN, the Internet, or other packet-switched data network. Accordingly, a variety of different configurations are expressly contemplated.
A plurality of servers 230 may be coupled via interfaces to the communication network 220, for example, via wired or wireless interfaces. These servers 230 may be configured to provide various types of services to the mobile device 115. For example, one or more servers 230 may execute location based service (LBS) applications 240, which interoperate with software executing on the mobile device 115, to provide LBSs to a shopper. LBSs can use knowledge of the device's location, and/or the location of other devices and/or retail stores, etc., to provide location-specific information, recommendations, notifications, interactive capabilities, and/or other functionality to a shopper. With some embodiments, the LBS operates in conjunction with the publication application 260 and search engine 261, in particular, do provide search results that are arranged based on the distance or travel time between a mobile device 115 (or other computer device) and a retail store. For example, an LBS application 240 can provide location data to a network-based publication system 120, which can then be used to arrange a set of search results, based on distance and/or travel time between two locations. Knowledge of the mobile device's location, and/or the location of other devices, may be obtained through interoperation of the mobile device 115 with a location determination application 250 executing on one or more of the servers 230. Location information may also be provided by the mobile device 115, without use of a location determination application, such as application 250. In certain examples, the mobile device 115 may have some limited location determination capabilities that are augmented by the location determination application 250.
Example Mobile Device
Additional detail regarding providing and receiving location-based services can be found in U.S. Pat. No. 7,848,765, titled “Location-Based Services,” granted to Phillips et al. and assigned to Where, Inc. of Boston, Mass., which is hereby incorporated by reference.
An example geo-location concept discussed within U.S. Pat. No. 7,848,765 is a geofence. A geofence can be defined as a perimeter or boundary around a physical location or mobile object (e.g., a shopper). A geofence can be as simple as a radius around a physical location defining a circular region around the location. However, a geofence can be any geometric shape or an arbitrary boundary drawn on a map. A geofence can be used to determine a geographical area of interest for the calculation of demographics, advertising, presenting search results, or similar purposes. Geofences can be used in conjunction with identifying and presenting search results, as described herein. For example, a geofence can be used to assist in determining whether a shopper (or mobile device associated with the shopper) is within a geographic area of a particular merchant. If the shopper is within a geofence established by the merchant or the publication system, the systems discussed herein can use that information to identify and present search results (e.g., via a mobile device associated with the shopper).
Example Platform Architecture
An Application Programming Interface (API) server 414 and a web server 416 are coupled to, and provide programmatic and web interfaces respectively to, one or more application servers 418. The application servers 418 host one or more publication modules 420 (in certain examples, these can also include search engine modules, commerce modules, advertising modules, and marketplace modules, to name a few), payment modules 422, and dynamic offer modules 432. The application servers 418 are, in turn, shown to be coupled to one or more database servers 424 that facilitate access to one or more databases 426. In some examples, the application server 418 can access the databases 426 directly without the need for a database server 424.
The publication modules 420 may provide a number of publication and search functions and services to shoppers that access the networked system 402. The payment modules 422 may likewise provide a number of payment services and functions to shoppers. The payment modules 422 may allow shoppers to accumulate value (e.g., in a commercial currency, such as the U.S. dollar, or a proprietary currency, such as “points”) in accounts, and then later to redeem the accumulated value for products (e.g., goods or services) that are advertised or made available via the various publication modules 420, within retail locations, or within external online retail venues. The payment modules 422 may also be configured to present or facilitate a redemption of offers, generated by the location-aware offer modules 432, to a shopper during checkout (or prior to checkout, while the shopper is still actively shopping). The offer modules 432 may provide dynamic context sensitive offers (e.g., coupons or immediate discount deals on targeted items) to shoppers of the networked system 402. The offer modules 432 can be configured to use all of the various communication mechanisms provided by the networked system 402 to present offer options to shoppers. The offer options can be personalized based on current location, time of day, shopper profile data, past purchase history, or recent physical or online behaviors recorded by the network-based system 400, among other things (e.g., context information). While the publication modules 420, payment modules 422, and offer modules 432 are shown in
Further, while the system 400 shown in
The web client 406 accesses the various publication modules 420, payment modules 422, and offer modules 432 via the web interface supported by the web server 416. Similarly, the programmatic client 408 accesses the various services and functions provided by the publication modules 420, payment modules 422, and offer modules 432 via the programmatic interface provided by the API server 414. The programmatic client 408 may, for example, be a smartphone application that enables shoppers to communicate search queries to the system while leveraging shopper profile data and current location information provided by the smartphone or accessed over the network 404.
Example Methods
With the shopping list organized, the shopper may complete the shopping trip.
At 770 a decision may be taken to determine whether there is more than one store on the optimized list. If Yes, the method repeats beginning at step 720. If No, the method ends at 780.
Example Overlay for User Interface
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 or objects that operate to perform one or more operations or functions. The modules and objects referred to herein may, in some example embodiments, comprise processor-implemented modules and/or objects.
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 more processors or processor-implemented modules. The performance of certain operations may be distributed among the one or more processors, not only residing within a single machine or computer, but deployed across a number of machines or computers. 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 at 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 within the context of “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), these operations being accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., Application Program Interfaces (APIs)).
The example computer system 900 includes a processor 902 (e.g., a central processing unit (CPU), a graphics processing unit (GPU) or both), a main memory 901 and a static memory 906, which communicate with each other via a bus 908. The computer system 900 may further include a display unit 910, an alphanumeric input device 917 (e.g., a keyboard), and a shopper interface (UI) navigation device 911 (e.g., a mouse). In one embodiment, the display, input device and cursor control device are a touch screen display. The computer system 900 may additionally include a machine-readable storage device 916 (e.g., drive unit), a signal generation device 918 (e.g., a speaker), a network interface device 920, and one or more sensors 921, such as a global positioning system sensor, compass, accelerometer, or other sensor.
The drive unit 916 includes a machine-readable medium 922 on which is stored one or more sets of instructions and data structures (e.g., software 923) embodying or utilized by any one or more of the methodologies or functions described herein. The software 923 may also reside, completely or at least partially, within the main memory 901 and/or within the processor 902 during execution thereof by the computer system 900, the main memory 901 and the processor 902 also constituting machine-readable media.
While the machine-readable medium 922 is illustrated 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. 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 embodiment, or that is capable of storing, encoding or carrying data structures utilized 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., EPROM, 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 software 923 may further be transmitted or received over a communications network 926 using a transmission medium via the network interface device 920 utilizing any one of a number of well-known transfer protocols (e.g., HTTP). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), the Internet, mobile telephone networks, Plain Old Telephone (POTS) networks, and wireless data networks (e.g., Wi-Fi® 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 medium to facilitate communication of such software.
Although specific example embodiments have been described herein, 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 utilized 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.
1. Mouse Click=Tap Event
A tap event acts the same way as a mouse click on the desktop:
2. Click/Drag=Touch Begin/End
When you're doing a click and drag on mobile consider using touch_begin and touch_end:
3. Long Tap
A long tap can be used to show a submenu on the image selected. For instance, a long tap on an image might activate a submenu allowing the shopper to save the photo. The functionality uses a timer that counts down one second before showing the menu.
4. Two-Finger Tap
A two-finger tap is another way to add additional functionality to an image. Two fingers can reveal a submenu.
5. Pinch to Zoom
Pinch to zoom in and out on such things as maps and photos.
6. Pan Event
If an image or list is larger than the screen size then use the pan event to reveal the additional content.
7. Rotate Event
Allows the shopper to use two fingers to rotate an item. Great for a game or even for any photos.
8. Swipe Up/Down/Left/Right
Allows shoppers to move through multiple screens or through long text fields.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
2465971, | |||
2931657, | |||
3252243, | |||
3675215, | |||
3717942, | |||
5408417, | May 28 1992 | Automated ticket sales and dispensing system | |
5605332, | Jan 19 1996 | Pixel Products Unlimited | Pixelated puzzle |
6134674, | Feb 28 1997 | Sony Corporation; Sony Trans Com, Inc.; SONY TRANS COM INC | Computer based test operating system |
6146721, | Dec 22 1997 | Device for presenting alternative facial expressions | |
6216134, | Jun 25 1998 | Microsoft Technology Licensing, LLC | Method and system for visualization of clusters and classifications |
6244926, | Oct 23 1995 | TPC ACQUISITION LLC | Realistic doll head system and method therefor |
6363388, | Oct 31 1998 | M A R C INC | Apparatus and system for an adaptive data management architecture |
6561417, | Dec 17 1998 | International Business Machines Corporation | Stock control computer system and method |
6567797, | Jan 26 1999 | GOOGLE LLC | System and method for providing recommendations based on multi-modal user clusters |
6714945, | Nov 17 1995 | SABRE GLBL INC | System, method, and article of manufacture for propagating transaction processing facility based data and for providing the propagated data to a variety of clients |
6804662, | Oct 27 2000 | Oracle International Corporation | Method and apparatus for query and analysis |
6970101, | Apr 21 2003 | Parking guidance method and system | |
7082365, | Aug 16 2001 | TELECOMMUNICATION SYSTEM, INC | Point of interest spatial rating search method and system |
7240025, | Jan 10 2000 | FUNCTION MEDIA LLC | Internet advertising system and method |
7363214, | Aug 08 2003 | CBS INTERACTIVE INC | System and method for determining quality of written product reviews in an automated manner |
7519562, | Mar 31 2005 | Amazon Technologies, Inc | Automatic identification of unreliable user ratings |
7568004, | Jun 20 2002 | SINOEAST CONCEPT LIMITED | Method and system for sharing brand information |
7587359, | Feb 29 2000 | PayPal, Inc | Method and system for harvesting feedback and comments regarding multiple items from users of a network-based transaction facility |
7689916, | Mar 27 2007 | AVAYA Inc | Automatically generating, and providing multiple levels of, tooltip information over time |
7752082, | Dec 23 2004 | CHEMTRON RESEARCH LLC | Social-network enabled review system with subject-owner controlled reviews |
7756757, | Mar 05 2008 | United Services Automobile Association (USAA) | Systems and methods for price searching and intelligent shopping lists on a mobile device |
7761339, | Feb 12 2004 | INTEGRAL REALITY LABS, INC | System and method for producing merchandise for a virtual environment |
7827074, | Jul 13 2006 | GoFigure Media, LLC | Method for placing products or services and facilitating purchase |
7848765, | May 27 2005 | PayPal, Inc | Location-based services |
7878891, | Jan 29 2007 | FUJIFILM Business Innovation Corp | Generating polyomino video game pieces and puzzle pieces from digital photos to create photominoes |
8127253, | Oct 05 2005 | Microsoft Technology Licensing, LLC | Predictive cursor interaction |
8166040, | Sep 16 2005 | SmartShopper Electronics, LLC | Handheld device and kiosk system for automated compiling and generating item list information |
8628087, | Jan 06 2009 | Personalized mosaic puzzle set | |
20020002504, | |||
20020027694, | |||
20020103647, | |||
20020174021, | |||
20020178014, | |||
20030004831, | |||
20030018652, | |||
20030028873, | |||
20030200159, | |||
20040153505, | |||
20040205394, | |||
20040243501, | |||
20050004850, | |||
20050050576, | |||
20050174591, | |||
20050222987, | |||
20060004850, | |||
20060058948, | |||
20060085270, | |||
20060113383, | |||
20060149625, | |||
20060190293, | |||
20060218153, | |||
20060265234, | |||
20070150369, | |||
20070198505, | |||
20070244758, | |||
20070290037, | |||
20080046956, | |||
20080059970, | |||
20080104054, | |||
20080114807, | |||
20080154710, | |||
20080163311, | |||
20080176545, | |||
20080186226, | |||
20080208852, | |||
20080285940, | |||
20090006208, | |||
20090012953, | |||
20090019487, | |||
20090055199, | |||
20090083096, | |||
20090144624, | |||
20090228342, | |||
20090258687, | |||
20090271293, | |||
20090299824, | |||
20090319373, | |||
20100049663, | |||
20100082447, | |||
20100153378, | |||
20100161605, | |||
20100198700, | |||
20100211900, | |||
20100257024, | |||
20100281029, | |||
20100332283, | |||
20110004517, | |||
20110040655, | |||
20110078305, | |||
20110144908, | |||
20110153614, | |||
20110173191, | |||
20110184780, | |||
20110187306, | |||
20110202394, | |||
20110238478, | |||
20120016678, | |||
20120054204, | |||
20120084812, | |||
20120123673, | |||
20120130792, | |||
20120150436, | |||
20120166322, | |||
20120185330, | |||
20120197764, | |||
20120203614, | |||
20120203639, | |||
20120235817, | |||
20120239513, | |||
20120253908, | |||
20120269116, | |||
20120303479, | |||
20120313969, | |||
20130030955, | |||
20130071816, | |||
20130086029, | |||
20130124189, | |||
20130132221, | |||
20130185679, | |||
20130191723, | |||
20130198002, | |||
20130244784, | |||
20130267253, | |||
20130297317, | |||
20130325839, | |||
20140006389, | |||
20140067564, | |||
20140095348, | |||
20140176565, | |||
20140213333, | |||
20150024840, | |||
20150052171, | |||
WO2012135293, | |||
WO2015023367, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Aug 30 2012 | YUAN, MARK DELUN | EBAY, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 036912 | /0976 | |
Aug 30 2012 | YUAN, MARK DELUN | eBay Inc | CORRECTIVE ASSIGNMENT TO CORRECT THE NAME OF RECEIVING PARTY TO EBAYINC PREVIOUSLY RECOREDED INCORRECTLY AS EBAY INC PREVIOUSLY RECORDED AT REEL: 036912 FRAME: 0976 ASSIGNOR S HEREBY CONFIRMS THE ASSIGNMENT | 052486 | /0741 | |
Oct 28 2015 | Ebay Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Nov 29 2023 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Jun 16 2023 | 4 years fee payment window open |
Dec 16 2023 | 6 months grace period start (w surcharge) |
Jun 16 2024 | patent expiry (for year 4) |
Jun 16 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jun 16 2027 | 8 years fee payment window open |
Dec 16 2027 | 6 months grace period start (w surcharge) |
Jun 16 2028 | patent expiry (for year 8) |
Jun 16 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jun 16 2031 | 12 years fee payment window open |
Dec 16 2031 | 6 months grace period start (w surcharge) |
Jun 16 2032 | patent expiry (for year 12) |
Jun 16 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |