Methods and Systems for Efficient Promotional Price Adjustment
Abstract
A promotion price adjustment system of the present application utilizes improved data definitions, caching, and a combination of online and offline processing to increase the efficiency and speed of applying promotional discounts in electronic retail systems. The system performs an offline batch process on a product catalog to generate a predetermined mapping between products in the catalog and candidate promotions. When checkout of a product in a virtual shopping cart is initiated, the product's candidate promotions are obtained from the predetermined mapping. Each of those candidate promotions is then evaluated against the properties of the virtual shopping cart to determine which of those candidate promotions are eligible for application. Any eligible promotions may serve as a basis for applying price discounts to the virtual shopping cart.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . A system for applying promotional price adjustments to a virtual shopping cart comprising:
a first server configured to maintain a catalog database that includes a plurality of products and a plurality of promotions, wherein data representative of each product includes product metadata defining one or more properties of that product, and wherein each promotion includes promotion metadata defining one or more purchase conditions; and a second server configured to provide an online shopping website over a wide area network, wherein the second server is communicatively coupled with the first server via the wide area network, wherein the first server is further configured to:
generate a mapping between the plurality of products and the plurality of promotions, wherein the mapping associates at least a first product with a first candidate promotion based on at least one of the one or more properties of the first product satisfying an item-specific purchase condition of the first candidate promotion; and
transmit, via the wide area network, the mapping to the second server, and wherein the second server is further configured to:
store, on a storage device of the second server, the generated mapping received from the first server;
receive, from a client device over the wide area network, a checkout request associated with a virtual shopping cart;
obtain cart data representative of the virtual shopping cart, wherein the cart data includes first product data representing the first product and cart metadata defining one or more properties of the virtual shopping cart;
determine, based on the stored mapping, that the first candidate promotion is a first eligible promotion based on the cart-specific purchase condition being satisfied by at least one of the one or more properties of the virtual shopping cart;
determine a first discounted price for the first product based on the product metadata of the first product and the first eligible promotion; and
transmit the first discounted price to the client device for displaying the first eligible promotion being applied to the virtual shopping cart.
2 . The system of claim 1 , wherein the mapping is a first mapping, wherein generating the mapping occurs at a first time, wherein the mapping between a first product with the first candidate promotion includes a first timestamp representative of the first time, and
wherein the first server is further configured to:
receive a request to modify the promotion metadata of the first candidate promotion;
generate, at a second time that occurs after the first time, a second mapping between the a first product with the first candidate promotion based on the modified promotion metadata and a second timestamp representative of the second time; and
transmit, to the second server, a message indicating that the second mapping is available, wherein the message includes the second timestamp,
wherein the second server is further configured to:
prior to determining that the first candidate promotion is a first eligible promotion, determine that the first mapping is invalid based on the second timestamp of the message occurring after the first timestamp;
retrieve, from the first server, the second mapping; and
determine that the first candidate promotion from the second mapping is a first eligible promotion based on the cart-specific purchase condition being satisfied by at least one of the one or more properties of the virtual shopping cart.
3 . The system of claim 1 , wherein the computing device is a first computing device, wherein the cart data is first cart data, wherein the virtual shopping cart is a first virtual shopping cart, wherein the checkout request is a first checkout request received at a first time, and
wherein the second server is further configured to:
upon receiving the mapping from the first server, storing the mapping on a storage device of the second server;
receive, from a second computing device over the wide area network, a second checkout request associated with a second virtual shopping cart, wherein the second checkout request is received at a second time that occurs after the first time;
obtain second cart data representative of the second virtual shopping cart, wherein the second cart data includes the first product and cart metadata defining one or more properties of the second virtual shopping cart;
determining that the mapping stored on the storage device of the second server is valid;
based on the determination that the mapping stored on the storage device of the second server is valid, determine that the first candidate promotion of the mapping is a first eligible promotion based on the cart-specific purchase condition being satisfied by at least one of the one or more properties of the virtual shopping cart;
determine a first discounted price for the first product based on the product metadata of the first product and the first eligible promotion; and
transmit the first discounted price to the second computing device for displaying the first eligible promotion being applied to the virtual shopping cart.
4 . The system of claim 1 , wherein generating the mapping comprises:
for each product of a plurality of products:
determining, for each promotion of the plurality of promotions, whether the promotion is a candidate promotion for the product based on the promotion metadata including an item-specific purchase condition that is satisfied by at least one of the one or more properties of the product; and
upon determining that at least one promotion of the plurality of promotions is a candidate promotion, storing, in a storage device of the first server, data indicative of the promotion metadata of the at least one candidate promotion within the product metadata of the product.
5 . In a server, a method for applying promotional price adjustments to a virtual shopping cart comprising:
obtaining, from a storage device, product data representative of a plurality of products, wherein the product data for each product includes product metadata defining one or more properties of that product; obtaining, from the storage device, promotion data representative of a plurality of promotions, wherein each promotion includes promotion metadata defining one or more purchase conditions; generating, by the server, a mapping between the plurality of products and the plurality of promotions, wherein the mapping associates at least a first product with a first candidate promotion, wherein the first candidate promotion includes an item-specific purchase condition and a cart-specific purchase condition, and wherein a given promotion is a candidate promotion for a given product if at least one of the purchase conditions of the given promotion is an item-specific purchase condition that is satisfied by at least one of the one or more properties of the product metadata of the given product; storing the mapping in the storage device; receiving, from a client device, cart data representative of the virtual shopping cart, wherein the cart data includes first product data representing the first product and cart metadata defining one or more properties of the virtual shopping cart; determining, by the server, that the first candidate promotion is a first eligible promotion based on the cart-specific purchase condition being satisfied by at least one of the one or more properties of the virtual shopping cart; determining, by the server, a first discounted price for the first product based on the product metadata of the first product and the first eligible promotion; and transmitting the first discounted price to the client device for application to the virtual shopping cart.
6 . The method of claim 5 , wherein generating the mapping comprises:
for each product of the plurality of products:
determining, for each promotion of the plurality of promotions, whether the promotion is a candidate promotion for the product based on the promotion metadata including an item-specific purchase condition that is satisfied by at least one of the one or more properties of the product; and
upon determining that at least one promotion of the plurality of promotions is a candidate promotion, storing, in the storage device, data indicative of the promotion metadata of the at least one candidate promotion within the product metadata of the product.
7 . The method of claim 5 , wherein the one or more properties of the first product includes a first product identifier, wherein the item-specific purchase condition of the first candidate promotion is a particular identifier requirement, and wherein the particular identifier requirement is satisfied by the first product identifier.
8 . The method of claim 5 , wherein the one or more properties of the first product includes a first product brand, wherein the item-specific purchase condition of the first candidate promotion is a brand requirement, and wherein the brand requirement is satisfied by the first product brand.
9 . The method of claim 5 , wherein the one or more properties of the first product includes a first product category, wherein the item-specific purchase condition of the first candidate promotion is a category requirement, and wherein the category requirement is satisfied by the first product category.
10 . The method of claim 5 , wherein the one or more properties of the cart metadata includes a cart price subtotal, wherein the cart-specific purchase condition is a maximum cart price subtotal threshold, and wherein the cart price subtotal is above the minimum cart price subtotal threshold.
11 . The method of claim 5 , wherein the one or more properties of the cart metadata includes a cart price subtotal, wherein the cart-specific purchase condition is a minimum cart price subtotal threshold, and wherein the cart price subtotal is below the minimum cart price subtotal threshold.
12 . The method of claim 5 , wherein the one or more properties of the cart metadata includes a quantity of the first product, wherein the cart-specific purchase condition is a minimum first product quantity threshold, and wherein the quantity of the first product is greater than or equal to the minimum first product quantity threshold.
13 . The method of claim 5 , wherein the one or more properties of the cart metadata includes a quantity of the first product, wherein the cart-specific purchase condition is a maximum first product quantity threshold, and wherein the quantity of the first product is less than or equal to the maximum first product quantity threshold.
14 . The method of claim 5 , wherein the promotion metadata of the candidate promotion further includes a starting date and an ending date that collectively define a period of time during which the candidate promotion is active, and wherein the method further comprises:
determining, by the server, a current date; and prior to the determination that the first candidate promotion is a first eligible promotion, determining, by the server, that the first candidate promotion is a first active promotion based on the current date being between the starting date and the ending date.
15 . The method of claim 1 , wherein the mapping is determined at a first time, and wherein the method further comprises:
upon receiving the cart data, retrieving, from the storage device, the mapping at a second time, wherein the second time occurs after the first time.
16 . The method of claim 5 , wherein the mapping further associates a second product with a second candidate promotion, wherein the second candidate promotion includes a cart-specific purchase condition that is eligible based on the virtual shopping cart including the first product, wherein the cart data further includes the second product, and wherein the method further comprises:
determining, by the server, that the second candidate promotion is a second eligible promotion based on the cart data including the first product; and determining, by the server, a second discounted price for at least the second product based on the product metadata of the second product and the second eligible promotion; and transmitting the second discounted price to the client device for application to the virtual shopping cart.
17 . In a server, a method for applying promotional price adjustments to a virtual shopping cart comprising:
obtaining, from a storage device, product data representative of a plurality of products, wherein the product data for each product includes product metadata defining one or more properties of that product; obtaining, from the storage device, promotion data representative of a plurality of promotions, wherein each promotion includes promotion metadata defining one or more purchase conditions; generating, by the server, a mapping between the plurality of products and the plurality of promotions, wherein the mapping associates at least a first product with one or more candidate promotions, wherein a given promotion is a candidate promotion for a given product if at least one of the purchase conditions of the given promotion is an item-specific purchase condition that is satisfied by at least one of the one or more properties of the product metadata of the given product; storing the mapping on the storage device; receiving, from a client device, cart data representative of the virtual shopping cart, wherein the cart data includes first product data representing the first product and cart metadata defining one or more properties of the virtual shopping cart; determining, for each of the one or more candidate promotions associated with the first product, whether that candidate promotion is an eligible promotion for application to the virtual shopping cart based on at least one cart-specific purchase condition associated with that candidate promotion being satisfied by at least one of the one or more properties of the virtual shopping cart; upon determining that at least one of the one or more candidate promotions is an eligible promotion, determining, by the server, a discounted price for the first product based on the product metadata of the first product and the at least one eligible promotion; and transmitting the discounted price to the client device for application to the virtual shopping cart.
18 . The method of claim 17 , wherein the at least one eligible promotion includes a first eligible promotion and a second eligible promotion, and wherein determining the discounted price comprises:
determining, by the server, that the first eligible promotion includes a cart-specific purchase condition prohibiting combination with the second eligible promotion; determining, by the server, a first potential discounted price based on the product metadata of the first product and the first eligible promotion; determining, by the server, a second potential discounted price based on the product metadata of the first product and the second eligible promotion; and determining, by the server, the discounted price as a lesser of the first potential discounted price and the second potential discounted price.
19 . The computer-implemented method of claim 17 , wherein the at least one eligible promotion includes a first eligible promotion and a second eligible promotion, and wherein determining the discounted price comprises:
determining, by the server, a first potential discounted price based on the product metadata of the first product and the first eligible promotion; determining, by the server, a second potential discounted price based on the product metadata of the first product and the second eligible promotion; and determining, by the server, the discounted price as a combination of the first potential discounted price and the second potential discounted price.Join the waitlist — get patent alerts
Track US2021090113A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.