SHOPPING LIST SERVICE

An interface is rendered on a user-operated device. A shopping list of items defined by a user is obtained through the interface. A store associated with the items is identified and a tax jurisdiction for the store. Each item of the list is checked in inventory at the store, a set of substitute items are identified for each item, and available promotions are identified for each item and each substitute item. A total price for the list of the items that includes taxes in the jurisdiction of the store and includes any promotion pricing is provided to the user through the interface. The user can interact with the list through the interface to evaluate scenarios where the original list and/or a modified list meets a budget defined by the user or select an automatically determined list that identifies a lowest priced substitute for each item until the budget is met.

BACKGROUND

With the constantly increasing prices of every day items occurring due to unrestrained inflation, it is becoming more difficult for the typical consumer to afford their basic necessities. From toilet paper to milk, consumers are becoming more budget conscious in order to be able to buy the needs of their day-to-day lives. Often lower-price substitutes that offer similar quality at a lower price exist, however, the consumer does not know of these substitute items.

A budget conscious consumer often creates a shopping list for a particular store; sometimes, by using a third-party service, such as Freshop®. The individual base prices of any given item are known, and can be added up for an estimated total, however, this is not the actual price paid at the store by the consumer. Calculating promotion pricing, when promotions are available, requires specialized processing that is typically not available in the third-party services used by the consumers. The same is true with tax calculations on the items of the shopping list.

In fact, each state or county within a state has its own tax rate and tax rules. Some jurisdictions tax edible items and not inedible items; some tax all items; some only tax certain items, such as tobacco, alcohol, etc. Some consumers may live in an area that spans two or three different jurisdictions, such that only a few miles results in different tax rates and tax rules from where a given consumer lives or works.

Additionally, because of the supply-chain issues being experienced post-pandemic, inventory levels are spotty at best, which means that items a consumer desires have a good chance of being out of stock by the time the consumer goes to a store to fulfill their shopping list.

These issues are particularly problematic for consumers on strict budgets that they want to adhere to so that they can purchase other desired things, pay down existing debt, take a vacation, and/or save more.

SUMMARY

In various embodiments, methods and a system for providing a shopping list service are presented.

According to an aspect, a method for providing a shopping list service, is presented. A list of items and a budget price associated with a user are received and a store for the list of items is identified. A taxing jurisdiction for a geographical location of the store is identified and any promotions associated with any of the items at the store are obtained. In-store prices for each of the items are obtained. An actual total price for the list of items is calculated using the in-store prices, any promotion discounted price available for any of the items, and tax rates and tax rules associated with the taxing jurisdiction. The actual total price is provided to the user.

DETAILED DESCRIPTION

FIG.1is a diagram of a system100providing a shopping list service, according to an example embodiment. It is to be noted that the components are shown schematically in greatly simplified form, with only those components relevant to understanding of the embodiments being illustrated.

Furthermore, the various components (that are identified inFIG.1) are illustrated and the arrangement of the components is presented for purposes of illustration only. It is to be noted that other arrangements with more or less components are possible without departing from the teachings of providing a shopping list service as presented herein and below.

As will be discussed in the various embodiments that follow, the teachings provide techniques by which a user can use a shopping list via a mobile application (app) and a customer facing interface of the app to accurate calculate the actual cost of a shopping list, identify substitute items for shopping items that are out of stock, and allow the user to interactively try substitute items for items that may be in stock to see what cost savings may be achieved. A user may also set a budget and compare a current list's total cost against the budget, when the budget is exceeded by the calculated costs, the user can select an option within the user-facing interface of the app to allow automated substitution of items for any of the items in the list and allow the shopping service to find a combination of existing items in the list and substitute items that will meet the budgeted cost of the user.

As used herein, the terms “consumer,” “customer,” “user,” and/or “shopper” may be used interchangeably and synonymously herein and below. This refers to an individual that has a shopping list and a budget and wants to discover a scenario for the list that will meet the budget.

System100comprises a cloud/server110, a plurality of customer-operated devices120, one or more retail servers130, and a plurality of in-store transaction terminals140.

Cloud/Server110comprises at least one processor111and a non-transitory computer-readable storage medium112. Medium112comprises executable instructions for one or more tax calculators113, a pricing promotion manager114, a substitute manager115, and a list manager116. The executable instructions when executed by processor111from the medium112cause processor111to perform operations discussed herein and below with respect to113-116.

Each customer-operated device120comprises a processor121and a non-transitory computer-readable storage medium122. Medium122comprises executable instructions for a mobile app123. The executable instructions when executed by processor121from medium122cause processor121to perform operations discussed herein and below with respect to app123.

Each retail server130comprises a processor131and a non-transitory computer-readable storage medium132. Medium132comprises executable instructions for a transaction/inventory system133and a promotion/loyalty system134. The executable instructions when executed by processor131from medium132cause processor131to perform operations discussed herein and below with respect to133and134.

Each third-party server140comprises a processor141and a non-transitory computer-readable storage medium142. Medium142comprises executable instructions for a list service143and an Application Programming Interface (API)144. The executable instructions when executed by processor141from medium142cause processor141to perform operations discussed herein and below with respect to143and144.

App123can be an existing third-party app associated with an existing list service143of an existing retailer-specific list service offered by a specific retailer. The existing app is enhanced as app123to interact with cloud/server110in the manners discussed herein and below. The enhancement includes new options to the user-facing interface of the existing app and an API to interact with cloud/server110when the new options are selected and interacted with by the user operating device120.

In an embodiment, app123is a newly provided app123and is not an enhanced version of an existing app.

It should be noted that app123may also be web-based and rendered through web pages rather that a device-specific app123(although app123can also be a device-specific app123). In fact, app123may be both accessible via device120as a standalone app120and also accessible via a web browser.

Initially, the user operates the user-facing interface of app123to create a shopping list of items. Before entering the shopping list or after entering the shopping list, the user-facing interface provides a budget total option from which the user can select and enter a total amount to be evaluated for the list of items. The user either before creating the list and the budget total or after, selects a specific store that the user will be using for the list of items. The list of items, the budget total, and a store identifier for the selected store are sent via an API from a backend of app123to list manager116.

List manager116uses the store identifier to identify the proper tax calculator for the jurisdiction of the store selected by the user. The list manager116passes the list of items and the store identifier to promotion pricing manager114. Manager114uses the store identifier identify a retailer associated with the store and uses an API to query the corresponding promotion/loyalty system134associated with that store identifier and each item of the list. Every available promotion for each item of the list is identified and associated with the corresponding items of the list.

List manager116also passes the list and the store identifier to substitution manager115. Manager115uses the store identifier and an API to interact with the corresponding retailer's inventory system133and identifies whether each item on the list is available in inventory at the selected store. For each item that is unavailable or available in inventory, manager115obtains one or a set of known substitute items for the corresponding unavailable item.

Next, substitution manager115may provide the list of substitute items per item (available or unavailable) back to promotion pricing manager114. Manager114searches promotion/loyalty system for any promotion that is available per substitute item for each set.

List manager116then receives a data structure for each item of the list that identifies whether the corresponding item is available in inventory, identifies each available substitute item, identifies any promotion per corresponding item of the list, and per each of the substitute items associated with the corresponding item.

Next, list manager116uses an API to obtain the current in-store price of each item of the list, each substitute item, and each substitute item after applying a given promotion. This pricing information is updated within the data structure for each item of the list.

At this point, list manager116is ready to calculate an actual price of the originally submitted list of items from the user via the app123using the list and the data structure associated with each item in the list.

Assuming all items of the list were in inventory and had no promotions associated with them, manager116obtains the current item price per item and the tax calculator for the jurisdiction associated with the selected store and calculates a total price for the list of items including tax. This total price is then compared against the user-supplied budgeted price. If the total calculated price is less than the user-supplied budget price, manager116sends and itemized item price for each item, the tax amount, and the total actual price to the backend of app123, which presents the corresponding pricing details to the user through the user-facing interface.

When the actual calculated total is over the budget price, the itemized and total price is sent to the backend of app123for viewing through the user-facing interface by the user along with additional user-interface options that allows the user to view substitute items and their pricing and promotions and how this affects the budget total. Since manager116retains the data structures that is associated with each item, as the user selects items to see substitute items and selects a substitute item, manager116can instantly adjust the actual total to show the user whether or not the budget price was met with the change. The user can select substitutes with promotions and the promotion pricing is applied by manager116and the current total for the list is updated accordingly within the user-facing interface of app123for the user to view.

When one or more items are not available in inventory (out of stock) at the selected store, the manager116attempts to select a replacement substitute item that will get the total cost closer to the budget of the user as possible. For example, selecting from the data structure associated with the out-of-stock item, a given substitute item with the lowest cost or one with a lowest cost following application of an available promotion. The list is returned with the selected substitute item along with a user-facing interface option to change the substitute item. The user can interactively view all substitute items for the out-of-stock item and override the manager116supplied substitute item. Manager116uses the data structure to automatically update the total price and itemized pricing based on the user override.

Because manager116has a list of initially supplied items for a given store and a data structure off of each item that identifies that item's promotions available, substitute items, and promotions available per substitute item, along with the pricing of all scenarios. The user can iteratively interact with manager116through the user-facing interface of app123to play out different scenarios until the budget for the items is met.

The user may also elect to let the manager116find a scenario of substitute items and available promotions that will meet the budget price. Manager116iterates the list and the data structures to find the scenarios where the budget can be met and returns each scenario as an option for the user to either select or modify.

This iterative cycle can be repeated as many times as is desired by the user through the user-facing interface of app123interacting with manager116.

In an embodiment, each item in an original list of items includes an option for the user to select through the user-facing interface of app123to directly engage manager116with the item selected. Manager116asks substitute manager115to determine if the item is in stock and generate the list of available substitute items for the item whether it is in stock or not. The list of available substitute items and the item are passed to promotion pricing manager114and manager114engages promotion system134to obtain any available promotions associated with the item and each of the substitute items. Manager116interacts with transaction system133and obtains the current in-store price for the item, price with any available promotion, and price with or without any available promotions for the substitute items. This information is saved in a data structure for the selected user item. The user can then view the in-store price of the item, promotion price after applying a promotion, and each of the available substitute items and their in-store prices with or without any available promotions. Optionally, manager116may engage the corresponding tax manager113to present the prices for the item and the scenarios as an after-tax price or this may be an option for the user to select within the user-facing interface of app123.

In an embodiment, the user can override the list of available substitute items for any given item that is in stock or out of stock and enter their own item in place of that item on the list. This engages manager116to engage managers115,114, and the corresponding tax calculator113to generate a total price for that item after any promotion is applied and to update the current actual total and true price of the list of items after the user manually overrides a particular item with a user-determined item.

In an embodiment, app123provides a user-identifier or a user-loyalty number for the user to manager116, this is used by promotion pricing manager114to obtain loyalty member pricing with the items on the list even before any available promotion price is determined for an available promotion.

In an embodiment, manager116determines that a given user is not a loyalty member of a selected store and displays within the user-facing interface of app123the difference in each item's price and the total true price for the list to the user versus the loyalty member price. In an embodiment, manager116uses an API to interact with a given user and register the user with a given retailer's loyalty system134.

In an embodiment, manager116lets the user through the user-facing interface select multiple stores and performs the analysis discussed above for each store, such that the user can determine the lowest price store for the list of items.

In an embodiment, manager116obtains the list of the user through a third-party list service143which is linked to the user of all 123 or which the user identifies through a user identifier associated with the list service143and which the user provides through the user-facing interface of app123.

It is noted that a variety of different features are possible to the user through user-facing interface of app123via cloud/server110based on obtaining in-store inventory, in-store pricing, in-store substitute items, and in-store available loyalty and/or promotion pricing. Thus, all such features that can be supported by this real-time acquired information and by applying a jurisdiction-based tax calculator113for a chosen store are intended to be included in the embodiments presented herein.

One now appreciates, how an interactive app123associated with cloud/server110can provide interactive and iterative actual true pricing to a budget conscious user for a given shopping list at a given store within a given known tax jurisdiction. Any user chosen scenario with the list can be simulated, manager116can auto-determine a set of items (substitute and/or user provided) that meet or are below a budget set price by the user.

The above-referenced embodiments and other embodiments are now discussed with reference toFIGS.2-3.

FIG.2is a diagram of a method200for providing a shopping list service, according to an example embodiment. The software module(s) that implements the method200is referred to as a “shopping list cost analyzer.” The shopping list cost analyzer is implemented as executable instructions programmed and residing within memory and/or a non-transitory computer-readable (processor-readable) storage medium and executed by one or more processors of one or more devices. The processor(s) of the device(s) that executes the shopping list cost analyzer are specifically configured and programmed to process the shopping list cost analyzer. The shopping list cost analyzer has access to one or more network connections during its processing. The connections can be wired, wireless, or a combination of wired and wireless.

In an embodiment, the device that executes the shopping list cost analyzer is cloud110. In an embodiment, the device that executes is server110.

In an embodiment, the device that executes the shopping list cost analyzer is retail server130.

In an embodiment, the device that executes the shopping list cost analyzer is server140associated with a third-party list service143.

In an embodiment, the shopping list cost analyzer is all of, or some combination of model(s)113,114,115, and/or116.

In an embodiment,113-116is processed as a cloud-based Software-as-a-Service (SaaS) to the app123.

At210, shopping list cost analyzer receives a list of items and a budget price associated with a user.

In an embodiment, at211, the shopping list cost analyzer obtains the list from a third-party list service143where the user has made and stored the list.

In an embodiment of221and at222, the shopping list cost analyzer receives the budget price through a user-facing interface of a mobile application123operated by the user.

At220, the shopping list cost analyzer identifies a store for the list of items.

At230, the shopping list cost analyzer identifies a tax jurisdiction from the store.

In an embodiment of212and230, at231, the shopping list cost analyzer identifies the tax jurisdiction based on a known geographical location of the store.

At240, the shopping list cost analyzer obtains any promotions associated with any of the items available at the store.

In an embodiment, at241, the shopping list cost analyzer interacts with an inventory system133of the store to identify any items that are out-of-stock items at the store.

In an embodiment of241and at242, the shopping list cost analyzer identifies a set of substitute items for each item and for each out-of-stock item.

In an embodiment of242and at243, the shopping list cost analyzer searches a promotion system134of the store with identifiers from each item and each of the substitute items and identifies the promotions.

At250, the shopping list cost analyzer obtains in-store prices for each of the items.

In an embodiment of243and250, at251, the shopping list cost analyzer searches a transaction system133of the store with the identifiers to obtain the in-store prices for each item of the list and each substitute item.

At260, the shopping list cost analyzer calculates an actual total price for the list of items by using the in-store prices, any actual promotion discounted price available for any of the items, and tax rates and tax rules associated with the tax jurisdiction of the store.

In an embodiment of251and260, at261, the shopping list cost analyzer forms different sets of the list of items that comprise different combinations of the substitute items and calculates an additional actual total price for each set of the lists.

In an embodiment of261and at262, the shopping list cost analyzer finds an optimal set of the lists that has the lowest actual total price relative to the budget price.

At270, the shopping list cost analyzer provides the actual total price to the user.

In an embodiment, at280, the shopping list cost analyzer interacts with the user through a user-facing interface of a mobile application123.

In an embodiment of280, at290, the shopping list cost analyzer processes scenarios with available promotions of the store and with substitute items for each of the items in order to find a given actual total price equal to or less than the budget price.

FIG.3is a diagram of another method300for providing a shopping list service, according to an example embodiment. The software module(s) that implements the method300is referred to as a “shopping list app.” The shopping list app is implemented as executable instructions programmed and residing within memory and/or a non-transitory computer-readable (processor-readable) storage medium and executed by one or more processors of one or more devices. The processor(s) of the device(s) that executes the shopping list app are specifically configured and programmed to process the shopping list app. The shopping list app has access to one or more network connections during its processing. The network connections can be wired, wireless, or a combination of wired and wireless.

In an embodiment, the device that executes the shopping list app is user-operated device120. In an embodiment, the device120is a phone, a laptop, a watch, a tablet, or glasses.

In an embodiment, cloud110hosts shopping list app via a web-browser processing on user-operated device120.

In an embodiment, the shopping list app is app123.

The shopping list app interacts with list manager115and/or method200.

At310, the shopping list app sends a list of items identified through a user-facing interface by a user to a list cost analyzer116and/or method200.

In an embodiment, at311, the shopping list app obtains the list from a third-party list service143associated with the user.

At320, the shopping list app sends a budget price entered by the user through the user-facing interface.

At330, the shopping list app provides a store identifier for a store identified by the user through the user-facing interface.

In an embodiment, at331, the shopping list app presents a list of available stores to the user through the user-facing interface based on a current geographical location of a user-operated device120and the shopping list app receives a selection from the user associated with the store identifier.

At340, the shopping list app receives an actual price per item of the list for the store that includes any available promotions and includes any tax associated with the store from the list cost analyzer116and/or method200.

At350, the shopping list app presents selectable options next to each item in the list within the user-facing interface along with the actual price per item.

In an embodiment, at351, the shopping list app receives a selection for a particular item within the list from the user. The shopping list app sends an item identifier for the particular item to the list cost analyzer116and/or method200. The shopping list app obtains a second list of substitute items available for the particular item and any associated promotions associated with each substitute item from the list cost analyzer116and/or method200. The shopping list app presents the substitute items and the associated promotions to the user within the user-facing interface.

In an embodiment of351and at352, the shopping list app presents an additional option next to each substitute item within the user-facing interface for the user to replace the particular item with a selected substitute item within the list of items. The shopping list app sends any selected substitute item received from the user through the user-facing interface to the list cost analyzer116and/or method200. The shopping list app receives an updated value for a total actual price from the list cost analyzer116and/or method200.

At360, the shopping list app presents the budget price and a total actual price for the list of items within the user-facing interface as a sum of the individual actual prices for the items of the list.

In an embodiment, at370, the shopping list app sends an auto-list option request to the list cost analyzer116and/or method200based on a user selection of an auto-list option within the user-facing interface. The shopping list app receives a modified list of items from the list cost analyzer116and/or method200. The modified list of items comprising one or more substituted items and one or more applied promotions and new total actual price that is at or below the budget price. The shopping list app presents the modified list of items and the new total actual price within the user-facing interface to the user.