US20230103580A1 - Server-Based Product Substantiation with Local Filtering System and Method - Google Patents
Server-Based Product Substantiation with Local Filtering System and Method Download PDFInfo
- Publication number
- US20230103580A1 US20230103580A1 US17/961,162 US202217961162A US2023103580A1 US 20230103580 A1 US20230103580 A1 US 20230103580A1 US 202217961162 A US202217961162 A US 202217961162A US 2023103580 A1 US2023103580 A1 US 2023103580A1
- Authority
- US
- United States
- Prior art keywords
- promotions
- promotion
- product
- list
- apl
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000001914 filtration Methods 0.000 title description 9
- 230000008901 benefit Effects 0.000 abstract description 37
- 208000036762 Acute promyelocytic leukaemia Diseases 0.000 description 17
- 238000004891 communication Methods 0.000 description 14
- 235000013311 vegetables Nutrition 0.000 description 8
- 235000013339 cereals Nutrition 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 239000000796 flavoring agent Substances 0.000 description 4
- 235000019634 flavors Nutrition 0.000 description 4
- 235000012055 fruits and vegetables Nutrition 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000036541 health Effects 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 235000021022 fresh fruits Nutrition 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 238000005096 rolling process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 229940088594 vitamin Drugs 0.000 description 2
- 229930003231 vitamin Natural products 0.000 description 2
- 235000013343 vitamin Nutrition 0.000 description 2
- 239000011782 vitamin Substances 0.000 description 2
- 235000020985 whole grains Nutrition 0.000 description 2
- 241001137251 Corvidae Species 0.000 description 1
- 235000009967 Erodium cicutarium Nutrition 0.000 description 1
- 244000141359 Malus pumila Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 235000021016 apples Nutrition 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 235000013405 beer Nutrition 0.000 description 1
- 235000013402 health food Nutrition 0.000 description 1
- 235000001497 healthy food Nutrition 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 235000013348 organic food Nutrition 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 150000003722 vitamin derivatives Chemical class 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0238—Discounts or incentives, e.g. coupons or rebates at point-of-sale [POS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
- G06Q30/0222—During e-commerce, i.e. online transactions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0259—Targeted advertisements based on store location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0241—Advertisements
- G06Q30/0251—Targeted advertisements
- G06Q30/0269—Targeted advertisements based on user profile or attribute
Definitions
- the present application relates to the field of product promotions. More particularly, the described embodiments relate to a system and method for substantiated product purchases made during promotion redemption using a remote server and an approved product list.
- FIG. 1 is a system diagram showing the primary components of one embodiment of the present invention.
- FIG. 2 is a flow chart showing a method to perform one embodiment of the present invention.
- FIG. 3 is a table showing the components of an approved product list.
- FIG. 4 is a schematic diagram, divided into FIG. 4 a and FIG. 4 b , showing the process of filtering purchased products using an approved product list and rolling up products within a group.
- FIG. 5 is a flow chart showing a method to perform an embodiment of the present invention.
- FIG. 6 is a system diagram showing the components of one embodiment of a server computer including the content of the data maintained by the server.
- FIG. 7 is a schematic diagram showing the relationship between multiple programs, groups, and promotions.
- FIG. 8 is a schematic diagram showing the transmission of retailer specific approved product lists to retailer store systems for two different retailers.
- FIG. 9 is a flow chart showing a method of updating an approved product list at a store controller.
- FIG. 10 is a flow chart showing a method for implementing an approved product list.
- FIG. 11 is a table showing the components of one embodiment of a promotion.
- FIG. 1 shows a promotion management system 10 in which a server system 100 communicates with a retail store system 130 over a network connection 160 .
- the server system 100 is shown consisting of an approved product list (or “APL”) server 110 and a promotion analysis server 120 , each of which may take the form of one or more computer systems.
- the retail store system 130 traditionally takes the form at least one store terminal 140 and a store controller 150 .
- the terminal 140 may be a point of sale or electronic cash register (POS/ECR) computer system that processes products or other items 142 provided for purchase by a consumer.
- the store controller 150 communicates with each of the terminals 140 within a retail store environment, and may also be responsible for managing external communication such as over network 160 .
- POS/ECR electronic cash register
- the APL server 110 is responsible for developing a list of approved products for which promotions are managed by the server system 100 . This list is preferably created with help of a database 115 .
- the approved product list (APL) is then transmitted to the retail store system 130 over the network 160 and saved as APL 152 .
- a user presents their selected products 142 for purchase at the terminal, and also presents a user card 144 .
- the retail store system 130 determines which products in the APL 152 are relevant for the consumer presenting the card 144 .
- the products 142 presented for purchase are then compared against this portion of the APL 152 to create a filtered list of products being purchased that are potentially eligible for discounts.
- This list is then sent by the retail store system 130 along with a user identifier (such as a card ID found on the user card 144 ) to the promotion analysis server 120 .
- the promotion analysis server 120 then examines the database 115 to determine the benefits that are still available for that identified user. If benefits remain for the products purchased 142 , the promotional analysis server will calculate the available discounts and update the available benefits in the database 115 . The calculated discounts are then transmitted over the network 160 to the retail store system 130 , where they are then applied to the purchase price of the products 142 . The server system 100 then uses the discount calculated to debit accounts owned by the sponsors of the promotions, and credit the account of the retailer that owns the retail store system 130 . In one embodiment, either or both of the credit and debit transactions can take place over the ACH network 122 accessed by the server system 100 . Note that the actions of the APL server 110 and the promotion analysis server 120 need not be performed on physically distinct computer systems, nor need the terminal 140 and store controller 150 be physically distinct systems.
- FIG. 2 Overall Method
- FIG. 2 shows a method 200 that can be used to manage promotions and programs using system 10 .
- a promotion generally takes the form of a discount on an item.
- Some example promotions that can be supported by the system 10 include:
- a program is a set of promotions provided to users. A fuller description of programs is provided below in connection with FIG. 7 .
- an employer may provide employees with a promotion to promote healthy eating by creating a program with a variety of promotions for healthy foods. The employer can fund some of these promotions, and then seek partners to pay for others of the promotions in the program (or the administrator of the system 100 could assist in finding partners).
- a health food brand may agree to pay for a 5% discount on all of their products, while a vitamin brand may agree to provide $1 off any purchase of at least $10 of their vitamins.
- the employer would provide a card for this promotion to their employees that they can use at a variety of retail stores.
- the employer may be able to convince one or more of the retailers to add their own promotion to the program. For instance, a first retailer may agree to provide an additional 5% off of fruits and vegetables, while a second retailer may agree to a $5 discount off of any purchase made from their organic food department that exceed $50. A third retailer may refuse to participate in the program at any level.
- Approved product lists are generated on a retailer-by-retailer basis. This means that in order to generate an APL in method 200 , the APL server 110 must identify all of the general promotions that make up a program in step 202 , and then identify any retailer-specific promotions that the retailer has agreed to add to this program in step 204 . Once all the general and retailer-specific promotions are identified for a program, the APL server 110 will generate a list of products that are covered by these promotions. This list of products is the approved product list for that program, and is created in step 206 . In the preferred embodiment, the server system 100 can handle a plurality of programs created by a plurality of program sponsors.
- step 208 the method returns to step 202 for the next program. If the approved product lists for all programs have been created, then these APLs are combined in step 210 and sent to the retailer store system 130 in step 212 . Of course, because this combined APL includes products covered by retailer specific promotions in the programs, a different APL will be sent out to different retailers. More detail on the content and format of an APL is described below in connection with FIGS. 3 and 8 .
- Step 220 is shown on the right side of FIG. 2 , as are steps 222 - 230 and steps 260 - 262 , which indicates that in one embodiment these steps take place on the retail store system 130 .
- Steps 202 - 212 and 240 - 248 are on the left side of FIG. 2 , and in this embodiment are performed on the server system 100 .
- the terminal 140 reads a user card 144 .
- the terminal 140 will verify that the card 144 is valid, such as by comparing expiration data found on the card 144 with the current date maintained by the terminal 140 .
- the terminal 140 reads both a user identifier and a program identifier from the card 144 .
- the program identifier is read at step 222 , and is used to identify at step 224 those products on the APL received by the retail store system 130 that are applicable to the program of which the user is a member.
- the APL could be formatted in a binary-keyed format.
- the APL could reside on the controller 150 in ASCII format.
- the terminal 130 examines the products 142 being purchased by the user, and then filters those products against the relevant product identifiers in the APL for the user's program.
- a primary lookup is performed based on a Universal Product Code (UPC) or Price Lookup Code (PLU) that identifies a particular product.
- UPC Universal Product Code
- PLU Price Lookup Code
- the filtering step 226 allow through only the product identifier for the granola. If the promotion applies to an entire department as opposed to a particular product, a secondary lookup is performed based on the indicated department.
- the APL for a program may include product groups, which are explained in more detail below in connection with FIG. 4 . If some of the products purchased by the user and filtered in step 226 are part of a product group in the APL, those products will be totaled together as a single item in the filtered list of products in step 228 . This filtered list of products is then submitted along with the user ID by the controller 150 over the network 160 to the promotion analysis server 120 . In some cases, the program ID may also be transmitted.
- a particular program may be divided into groups. If the program identified by the card 144 is divided into groups, the user identifier received along with the filtered product list will be used to identify which group in the program is assigned to the user. This is done because some groups in a program have specific promotions assigned to it that are not assigned to other groups in the same program.
- the applicable promotions for the user are determined in step 242 .
- This step 242 involves two steps. First, the relevant promotion or promotions for each item in the filtered list received from the retail store system 130 must be identified. In the second step, the database 115 is referenced to determine whether or not the user has benefits available to him or her for each promotion.
- a promotion may provide for 20% off of fruits and vegetables, with a maximum discount of $10 in any calendar month.
- the database 115 will track how much of this $10 maximum discount is left for this user in this month. If only $2 remain of this maximum, the method 200 will only grant the user at most $2 for this promotion. This particular benefit would then be automatically reset at the beginning of the next month.
- those promotions that are available to the user are then applied to the filtered product list and discounts for each promotion are calculated. If more than one promotion applies to a particular product on the filtered product list, the promotion analysis server 120 will use a consistent rule set to determine the order in which the promotion is applied. For instance, a percentage discount may be applied first, then a buy-one, get-one discount, and then a stored value credit would be applied.
- a multi-pass discount rule is applied in step 244 .
- a particular product is allowed to receive only one discount per pass, but may receive a separate discount in each pass, if available.
- standard discounts available at the product level and department level are calculated.
- a maximum available discount is applied to each item. For example, if a single product is eligible to receive either $1.00 off the product or 10% off the product, the greater discount will be applied.
- special department-level discounts may be applied. For example, an additional discount on all products in a selected product group could be applied.
- discounts that apply to fresh fruits and vegetables as a department are applied on the second pass.
- special department-level rewards are applied.
- These rewards may stored-value rewards, in which a user can spend up to a monthly limit on a particular department of goods. This third pass can again be limited to a particular department, such as fresh fruits and vegetables. On a fourth pass, standard stored-value rewards can applied that relate to all purchases and not just the special department singled out for the third pass. It is within the scope of the current disclosure to use alternative discount rules as required for different business processes.
- the discounts applied are then saved in the database 115 at step 246 , thereby updating the benefits available to the user for the next purchase transaction.
- the various discounts (promotions) that have been applied to the filtered product list are then returned to the retail store system 130 in step 248 .
- the store controller 150 or terminal 140 then applies the discounts to the purchase transaction and updates the total amount due for the purchase in step 260 .
- the discounts and how they were applied are printed on the customer receipt in step 262 .
- FIG. 3 APL Contents
- FIG. 3 shows the contents of an approved product list 300 in the form of a table.
- the APL 300 contains a plurality of records, starting with a header record and ending with a trailer record with a plurality of detail records in between.
- Each record consists of several fields that vary depending on the record type.
- the detail records contain the actual list of approved products, and are therefore described in more detail herein—one of skill in the art could easily identify the contents and purposes of the fields in the header and trailer records.
- a detail record identifies itself as a detail record in the record type field, and maintains a count of detail records in the record sequence field.
- Each detail record will identify a product or retailer department as belonging to a particular program. Consequently, each detail record contains a program code field to identify a program, and a product code data field to identify a particular product or department.
- the first digit of the product code identifies whether the product code contains a universal product code (UPC or Price Lookup Code (PLU) (when the first digit is a 0), or a department code (when the first digit is a 2).
- UPC universal product code
- PLU Price Lookup Code
- Each retailer uses different codes to identify their departments.
- one retailer may identify fruits and vegetables as department 10001, and deli items as department 10002, while another retailer may use a different numbering scheme.
- This means that the server system 100 must have knowledge of the actual department numbering scheme used by the retailers that support the system 10 in order to provide department level promotions.
- the product group code field if used in a record, identifies a particular product as belonging to a product group.
- the product group code can be used to consolidate multiple different products into a single entry in the filtered list provided by the retail store system 130 .
- the type code field identifies a particular product as belonging to a special select product group.
- the type code field is used to help the server system 100 apply special additional discounts and rewards.
- the type code is used to indicate that the second and third pass of the multi-pass discount rule applies to this product.
- the type code is included with the filtered product list that is sent from the retail store system 130 to the server system 100 .
- a single product may have both a product group code and a type code.
- the authorization type field allows for partial functionality of the server system 100 (such as substantiation only and no discount calculation at the server system 100 ), while the settlement code field allows for communication from the server system 100 to the retail store system 130 concerning how payment for each discount will be handled.
- FIG. 4 Filtering Example
- FIG. 4 provides an example how an approved product list 420 can be used to filter product purchase data 440 into a filtered product list 460 and eventually a filtered product list with group rollup 480 .
- a user card 400 is presented that contains a program ID of “001”.
- the APL 420 received by the retail store system 130 from the server system 100 is consulted to identify those data records that relate to this program 001.
- data records 000001 to 000011 relate to program 001
- data records 000011 to 000016 relate to program 002.
- the identification of relevant promotions in the APL 420 based on the program ID on the card 400 can be referred to as the program match, as indicated by arrow 410 .
- data records 000001-000010 relate to particular product UPC or PLU codes and not departments, as in each case the product code field starts with the numeral 0.
- Data record 000011 relates to a department code, because the product code field starts with the numeral 2.
- the department product code after the numeral 2 (and after the leading zeros) is “D06.”
- This data record 000011 also designates that group code as D06.
- Four of the product codes are part of group F11001.
- three of the codes have a type code value of FPF and one has a type code value of RWD.
- the type code values FPF and RWD indicate that the corresponding products belong to a special select product group that may be eligible for special additional discounts.
- the eleven relevant promotions in the APL 420 are then used to filter all of the items purchased by the user.
- the scanned UPCs for purchased products 142 are shown in table 440 , which includes a product identifier (UPC or PLU), a department code, a quantity, a purchase price, and a discount that has already been applied to this product by the terminal 140 .
- UPC or PLU product identifier
- These already-applied discounts are not related to promotions managed by system 10 , and may include, for example, paper coupons presented by the user at the terminal 140 .
- the product codes of the relevant promotions in APL 420 are matched against the scanned product codes in transaction product data table 440 .
- Product data filtering occurs at product-level filtering 450 and department-level filtering 455 .
- the primary product-level filtering 450 matches scanned UPCs in table 440 to product codes in APL 420 .
- the secondary department-level filtering 455 matches a department code in table 440 to a department product code in APL 420 .
- the resulting filtered product list 460 indicates those products that were purchased by the consumer for which promotions are being maintained by the system 10 for program 001.
- the list 460 includes not only the product identifiers, but also the department code, purchase price, purchase quantity, and the previously-applied discounts.
- the process 450 includes rolling up multiple entries of a single product identifier in the transaction product data 440 into a single row of the filtered product list 460 , which indicates the total quantity and price paid for all of the items.
- Two of the products in the filtered products list 460 are part of group F11001. These group members are combined in group rollup step 470 , and put into a single entry discount request table 480 having the group identifier F11001 as the product code.
- the department rollup 475 combines the filtered department 06 group members into a single entry in table 480 .
- the discount request table 480 contains a product or group code, a type code, a purchase price, a purchase quantity, and previously-applied discounts.
- the discount request data table 480 is sent to the server system in step 230 , described above.
- the filtered product list 480 is the complete set of information that is shared with the server system 100 .
- the transaction product data 440 containing a record of all products purchased in the transaction, is not passed to the server system 100 . This is advantageous for retailers who wish to keep secret the valuable business analytic data from customer transactions.
- the server system 100 receives the table 480 and performs the processes described in connection with steps 240 - 248 in FIG. 2 .
- the table 490 of FIG. 4 represents the data that the server 100 sends back to the retail store system 130 in step 248 .
- the discount response table includes the product or group code, a product type, the purchase price, the purchase quantity, a total discount, a discount type (P, T, X, or Y), and an abbreviated description of the discount applied.
- the “FPF” entry in the product code column of table 490 indicates that a special additional discount was applied. These discounts are then used by the retailer to calculate the total price for the purchase.
- Discount types X and Y represent discounts sponsored by the retailer processing the transaction.
- Discount types P and T refer to discounts sponsored by outside sources such as product manufacturers, employers, insurance companies, or other entities providing discounts.
- the retailer-sponsored discounts X and Y are treated as a price reduction, but the outside discounts P and T are treated as tender.
- the X and Y discounts are not taxed, but the P and T discounts are taxed. In this way, the burden of determining taxable and non-taxable discounts is shifted from the retailer to the system server 100 .
- FIG. 5 Alternative Method Description
- the method 500 of FIG. 5 presents an alternative understanding of one embodiment of the present invention.
- steps on the left hand side are performed at or for the retail store server 130
- steps on the right hand side are performed at or for the server system 100 .
- the method 500 starts at step 502 with the reading of a bar code presented by the user. It is highly preferable to read a bar code at a retail store terminal 140 rather than a magnetic stripe, as almost all retailers provide only a single magnetic stripe reader at a terminal.
- This terminal is generally configured to read credit card and debit card numbers from the mag stripe on credit or debit cards, and to send transaction and card number information into proprietary, third party payment networks. It is exceedingly difficult to program additional functionality into magnetic stripe readers given the relatively closed nature of the system.
- the bar code could be found on a program card, such as card 144 .
- an app is provided to a user smart phone that allows users to view and maintain some of the information about them and their benefits saved in the data 115 maintained by server system 100 .
- This app is preferably configured to display a bar code on the screen of the smart phone that can be read by the bar code reader attached to the terminal 140 .
- a wireless transmitter (such as an NFC or RFID transmitter) on the smart phone will transmit to a receiver on the terminal 140 the same information that is provided via the bar code.
- the bar code or wirelessly transmitted information should provide at least a user identifier, but it may also provide a program identifier.
- the retail store system 130 creates a list of purchased products, and then sends that information to the server system 100 in step 506 along with the user ID. It may not be necessary to filter the purchased products using an approved product list if the communication speed over the network is sufficiently fast. In one embodiment, all purchase data is transmitted to the server system 100 . Because the magnetic stripe reader is not utilized, it is not necessary to send this information over a dedicated payment network. In one embodiment, a virtual private network between the server system 100 and the retail store system 130 is created over the Internet 160 to ensure fast, direct, and secure communications between these systems 100 , 130 .
- the server system 100 identifies promotions available for the user based on the transmitted user identifier.
- the server system 100 may also use an identifier of the retail store system 130 sent at step 506 to identify promotions that are available only at that retailer. Those promotions are then matched up against the purchased products in step 522 .
- the server system 100 also determines whether or not the user has benefits available under each promotion. For instance, a buy one/get one promotion may be usable only once per calendar month, and the server system 100 will determine whether the user has taken advantage of the promotion in the current month before applying the promotion to the purchased products.
- the server system 100 determines that a particular promotion has a purchase requirement, such as buying all three flavors of a product before offering $2.00 off on a new flavor.
- all purchases of these products are tracked by the server system 100 . This allows purchases made in previous transactions, even transactions made on a different date, to be used by the server system 100 to determine whether the reward discount has been earned. In one embodiment, these purchases can even be made at different, unrelated retailers, allowing a customer to earn a reward by purchasing products at one retailer, and then redeeming the promotional reward as part of a purchase at another retailer.
- the server system 100 identifies a plurality of promotions that are available to the user for a purchase of a single product in a transaction. For instance, an employer could offer a 10% discount on all whole grain cereals, while the cereal manufacturer may provide a buy one box, get a second box free promotion on their whole grain cereals.
- the server system 100 uses a rule set to determine the order in which the promotions are applied and then applies both promotions to the purchase. In this case, the promotions are provided by different sponsors (the employer and the cereal manufacturer), both of who will reimburse the retailer for providing the discount to the user.
- the method 500 provides a very powerful way to apply multiple promotions, because multiple discounts of different types (percent discount vs. buy one/get one vs. dollar discounts vs.
- step 526 the server system 100 executes a rule set with multi-pass discounts as described above in relation to step 244 of FIG. 2 .
- step 528 all discounts that apply to the purchased products are calculated and identified in a communication to the retail store system 130 .
- the store system 130 applies the discount to the purchased products 540 .
- a verification signal is sent to the server system 100 at step 542 to indicate that the transaction is complete and the discounts have been given to the user.
- This communication informs the server system 100 that reimbursement for the discount should be provided to the retailer.
- This confirmation message 542 is required because it is always possible that the user will cancel part or all of the purchase transaction after the discount has been calculated and sent by the server system 100 at step 528 . If the user cancels the transaction, then it is inappropriate to reimburse the retailer for the discount provided.
- the server system 100 receives this verification, the data concerning the provided discounts are saved in the database 115 at step 560 so that the user cannot reuse promotions beyond what was intended.
- the server system 100 determines the sponsor for each of the promotions applied to this transaction, and also determines a financial account for each transaction.
- the employer is the sponsor for the 10% discount promotion; while the cereal manufacturer is the sponsor for the buy one, get one promotion.
- an account for the sponsor of each of the applied promotions is debited to pay for the discount provided to the user.
- the system 10 can be designed to have sponsors establish a financial account that contains funds that are used to pay for the promotions that they are sponsoring. As a result, the system 10 can be assured that the money to pay for the promotions is immediately available upon debiting the account at step 564 .
- the server system 100 provides a credit for a retailer account equal to the provided discounts. This credit could be provided by submitting a request for payment to the retailer account from a promotion sponsor account managed by the system 10 through the ACH network 122 .
- a promotion is sponsored by the retailer itself, no payment needs to be made to the retailer for that promotion. Instead, an accounting of all redeemed retailer-sponsored promotions is provided to the retailer.
- the retailer can use this data to charge the promotion to a particular department (e.g., to charge a discount on apples to the produce department).
- the retailer can also use the promotion use data for business analytics.
- the system 10 can be designed to automatically provide reimbursement to the retailer once the discounts are sent to the retail store system 100 in step 528 .
- the retail store server 130 would be responsible for sending a cancel message if the user canceled the transaction before being granted the discount. If the cancel message were to be received, the automatic reimbursement transfer would have to be reversed.
- steps 564 and 568 By delaying steps 564 and 568 for a predetermined time period after sending the discount information in step 528 , it should be possible to greatly reduce the number of financial transfers that would have to be reversed. The same could be done with the database update in step 560 , although reversing a database change would involve fewer difficulties than reversing financial transactions.
- steps found in method 500 can be added to method 200 , and vice versa, as desired.
- steps 524 , 526 , 542 , and 560 - 568 could be added to method 200 without difficulty.
- FIG. 6 Computing Configuration and Database
- FIG. 6 shows an embodiment of the server system 100 in which a single server computer 600 operates as both the APL server 110 and the promotion analysis server 120 .
- the server computer 600 includes a network interface 610 designed to provide communications with remote devices over a network 612 .
- the network 612 is the Internet
- the network interface 610 includes TCP/IP protocol stacks for communicating over the network 612 .
- the network interface 610 may connect to the network 612 wirelessly or through a physical wired connection.
- the server computer 600 further includes a programmable digital processor 620 designed to operate programming code stored on a memory 630 .
- the processor 620 is preferably a general purpose CPU such as those manufactured by Intel Corporation (Mountain View, Calif.) or Advanced Micro Devices, Inc.
- Memory 630 preferably includes a non-volatile, non-transitory, computer readable medium such as a hard drive or flash memory device.
- Software instructions 632 , 634 , and 636 found on the memory 630 instruct the processor 620 how to perform the methods of the present invention, including the methods 200 , 500 set forth in FIGS. 2 and 5 above. More specifically, the operating system instructions 632 perform OS management functions that allow the server computer 600 to operate while the APL generation software 634 allows the server computer 600 to operate as the APL server 110 . Similarly, the promotion analysis software 636 allows the server computer 600 to operate as the promotion analysis server 120 .
- each device contains a processor 620 and programming instructions 632 - 636 on memory 630 that instruct the processor 620 on how to perform the methods of the present invention.
- any of these devices 110 , 120 , 140 , 150 , 600 could easily be implemented as multiple physical computing devices operating together to perform the functions provided in the software.
- the data used by the server computer 600 is stored in a database 640 managed by processor 620 under software programming instructions 634 , 636 .
- the database 640 can store data in pre-defined fields in a database table or as database objects in an object-oriented database environment.
- FIG. 6 shows the database 640 with tables or objects for programs 642 , promotions 644 , products 646 , sponsors 648 , groups 650 , households 652 , benefits 654 , members 656 , cards 658 , transactions 660 , transaction items 662 , retailer locations 664 , and retailers 666 .
- the database 640 tracks relationships between each of the data entities 642 - 666 , which are shown using crow's foot notation between the entities in FIG. 6 .
- FIG. 6 shows that a single program 642 can be associated with a plurality of promotions 644 .
- promotions 644 for a plurality of products 646 .
- a promotion could provide $4 of frozen vegetables of an identified brand every month. This would constitute a single promotion 644 , but could apply to a great many products 646 .
- the products 646 to which the promotions 644 apply can be defined by a product number, but can also be defined by a department number, in which case all products in the particular department are included in the promotion 644 . Once the promotion 644 was used on any of those products 646 , it would be unavailable for any of the products 646 until the next month.
- Each promotion 646 defines a specific discount, such as 10% off an item. Each promotion 646 also includes the purchase requirements that must be met for the promotion 646 to be applied. Promotions 646 can also define a date range during which the promotion 646 is valid. FIG. 11 , described below, shows one embodiment for defining discounts for the promotion 646 .
- each program 642 is associated with one or more groups 650 , which are described in more detail in connection with FIG. 7 .
- the promotions 644 are associated directly with a program 642 , but it is possible to assign promotions 644 directly to a group 650 as shown by the dotted crows foot notation 670 .
- Households 652 are assigned directly to groups 650 , with each household 652 being assigned to a single group 650 in a program 642 .
- Benefits 654 are tracked at the household level 652 and are associated with promotions 644 . When a household 652 uses a promotion 644 , such as $4 of frozen vegetables every month, the benefit table or object 654 tracks this use.
- step 242 determines available promotions for the user in method 200
- the benefits 654 for the user's household 652 are consulted along with the available promotions 644 for the user's group 650 and program 642 . It is possible to implement the benefit table 654 with effective start and end dates. To determine whether the user has used up an available promotion for the current time period, the start and end dates will be examined. For example, a user may wish to take advantage of the $4 of free frozen vegetables. If they had not used this promotion this month, no benefit record 654 would have been created for the promotion 644 that is relevant to the current time period. This would indicate that the user has used none of the benefit 654 .
- a benefit record 654 can then be created with the appropriate start and end date (such as the beginning and end of the current month), and the record can indicate the total quantity available for this promotion (such as 4 for four dollars). If the user purchased only $2.39 of frozen vegetables, the benefit record 654 would record that usage. If another attempt to purchase frozen vegetables were made that month, the benefit record 654 would be recalled, and the vegetables could then be discounted the $1.61 remaining in the promotion for this month. The benefit record 654 would then be updated to indicate that the user had used the entire $4.
- Benefits 654 are tracked at a household level 652 , which may include multiple (family) members 656 . Each member 656 would typically be issued a single card 658 , although the issuance of replacement cards 658 would mean that multiple cards 658 could be associated in the database 640 with each member 656 . This organization of the database 640 allows the purchasing behavior of each family member 656 to be tracked while ensuring that promotions 644 in the program 642 are provided on a household-by-household basis.
- a new transaction record 660 is created.
- the transaction record 660 indicates when (date and time) and where (retail location 664 and terminal identifier) the transaction took place.
- the transaction record 660 also indicates which card 658 was used in the transaction to allow easy identification of the member 656 and household 652 that made the transaction.
- a plurality of transaction items 662 are associated with each transaction 660 , with each transaction item 662 tracking the purchase of a product 646 under a promotion 644 .
- the transaction item 662 is also associated with a single benefit 654 record, indicating that the benefit record 654 was created or modified as a result of this transaction item 662 (or that the benefit was used up and no discount was provided for this transaction item 662 ).
- the receipt of a filtered list with four entries (such as list 480 ) by the server system 100 would trigger the creation of one transaction record 660 and a plurality of transaction items 662 (assuming the user was otherwise eligible for all four promotions). Some entries in the list may create zero transaction item records 662 (where the user was not eligible for any promotion on that product), while other entries may create one or more transaction item records 662 (depending on the number of eligible promotions that apply to that product).
- Each retailer location 664 is likely associated with a plurality of transactions 660 but only a single retailer 666 . While some retailers 666 have an only a single location 664 , the database 640 allows multiple retailer locations 664 to be identified as belonging to a single retailer 666 . As described above, it is possible that some promotions 664 are defined to be associated with only a single retailer 666 . This is shown in FIG. 6 as dotted association 672 , and described in more detail below.
- FIG. 6 should not be taken to indicate that the data entities 642 - 666 in system database 640 need to be implemented exactly as shown, with each entity 642 - 666 in the Figure implemented as a single database table or object. Rather, FIG. 6 merely indicates that one or more database entities are created within database 640 to track this information. It is well within the scope of the prior art to implement this type of data using a variety of entity architectures.
- FIGS. 7 and 8 Structure of Programs and Groups, and Retailer Specific APLs
- FIG. 7 shows schematically the relationship between programs 642 , promotions 644 , and groups 650 .
- the first program 700 is designed to provide a plurality of promotions to users.
- the first program 700 might be created by a large entity, such as a health insurance provider, and the users of the program might be insureds that receive insurance from that provider.
- the health insurance provider agrees to provide a set of promotions 710 in its program 700 to its insureds.
- the insurance company then encourages each of the employers that provide the health insurance to their employees to add additional benefits to the plan. Each different employer would create a different group within the first program 700 and provide additional promotions to its employees.
- FIG. 1 shows schematically the relationship between programs 642 , promotions 644 , and groups 650 .
- the first program 700 is designed to provide a plurality of promotions to users.
- the first program 700 might be created by a large entity, such as a health insurance provider, and the users of the program might be insureds that receive insurance from that provider.
- the health insurance provider agrees
- a first employer creates a first group 730 and establishes first group promotions 732 for its employees
- a second employer creates a second group 740 and establishes second group promotions 742 for its employees.
- the insurance company may approach a variety of retailers to see if they wish to encourage use of these promotions at their retail establishment by providing their own promotions.
- one retailer has agreed to sponsor multiple retailer specific promotions 720 .
- Another entity could establish a second program 750 with second program promotions 760 , and then establish a third group 770 with third group promotions and a fourth group 780 with fourth group promotions 782 .
- Some of the users of the second program 750 do not qualify for any additional programs other than the second program promotions 760 .
- a fifth group 790 is established that has no group specific promotions 644 .
- All of the insureds of the insurance company that established the first program 700 would receive identification (such as cards 144 , 400 or a mobile device app) that identifies the first program 700 to the retail store system 130 .
- identification such as cards 144 , 400 or a mobile device app
- the list of promotions in the APL 300 may include promotions for all groups 730 , 740 in the first program 700 even though the user belongs only to a single group.
- the server system 100 would identify which group 730 , 740 is associated with the user by determining the household 652 and group 650 in the database 640 , and then identify all the promotions currently available for the user.
- a user in the first group 730 would be eligible for the first program promotions 710 and the first group promotions 732 but not the second group promotions 742 or any of the promotions 760 , 772 , 782 associated with the second program 750 . If this user shops at the correct retailer, they would also be eligible for the retailer specific promotions 720 .
- All of the non-retailer specific promotions 710 , 732 , 742 , 760 , 772 , 782 in all of the programs 700 , 750 are provided to all retailers participating in the system 10 in a single approved product list 300 . Any retailer that has retailer specific promotions 720 in any of the programs 700 , 750 will receive a customized approved product list 300 that includes their retailer specific promotions 720 in the programs 700 , 750 . This is seen in FIG. 8 , where a server 800 provides a first version of an APL 840 for a first retailer 820 , and a second version of an APL 860 to a second retailer 830 .
- the server 800 may also provide the retailers 820 and 830 with additional APLs 841 , 861 to be implemented by the retailers 820 , 830 on a predetermined future date.
- the APL 840 for the first retailer 820 includes promotions 842 specific to the first retailer 820 as well as the promotions in the first program 850 and the second program 852 .
- the APL for the second retailer 860 includes promotions 862 specific to the second retailer 830 as well as the promotions in the first program 850 and the second program 852 .
- the APL 840 for the first retailer 820 is provided to all the retail store systems 822 , 824 , 826 operated by the first retailer 820
- the APL 860 for the second retailer 830 is provided to all the retail store systems 832 , 834 , 836 operated by the second retailer 830 .
- One embodiment of the present invention requires the communications from the first retailer 820 to include a first merchant identifier and communications from the second retailer 830 to include a second merchant identifier. These merchant identifiers allow the server system 800 to identify the retailer 820 , 830 from which it is receiving the communication. This allows the server system 800 to provide the correct APLs 840 , 841 or 860 , 861 to the retailer's store systems 822 , 824 , 826 and 832 , 834 , 836 .
- FIG. 9 Method for Updating APLs
- the APLs 840 , 841 and 860 , 861 are provided to the retail store systems 822 - 826 and 832 - 836 in a regular manner, such as by the method 900 set forth in FIG. 9 .
- the steps that appear on the left side of the page indicate that the steps are performed at a retail store system such as retail store system 822 .
- the steps that appear on the right side of the page indicate that the steps are performed at the server system 800 .
- the method 900 can be used at any of the retail store systems of FIG. 8 .
- a “Current List” refers to APL 840 , which is actively used by retail system 822 between a particular start date and end date.
- a “Next List” refers to APL 841 , which is saved at the retail system 822 to be implemented at a predetermined future start date.
- Each APL in the system of FIG. 8 has a version designation containing information regarding an implementation date and a version number for that particular APL.
- the date and version number are presented as a combined a 3-digit date (day-in-the-year) and a 3-digit sequence number, starting at 001.
- a version designation for an APL implemented on January 31 would be designated “031001.” If an APL for January 31 needs to be updated, for example if an error needs to be corrected or new promotions added, a new version of the APL would be designated “031002.”
- “Current Version” refers to the version designation data of APL 840
- “Next Version” refers to the version designation data of APL 841 .
- a connection between retail system 822 and server system 800 can be made through a VPN connection over the Internet.
- the retail system 822 downloads at least two APLs to be used for transactions at the retail system 822 . If the APLs are updated daily, then it will be necessary to generate all APLs at least two days in advance so that the next two APLs will be ready for downloading when requested by the retail system 822 .
- a retail system 822 receives a Current List 840 , a Next List 841 , or both from the server system 800 .
- the retail system 822 then saves the lists 840 , 841 locally.
- List 840 will be used for current transactions, while the list 841 will be saved and implemented on a future date indicated by the version designation data of list 841 .
- the retail system 822 sends includes the Current Version data for APL 840 and Next Version data for APL 841 (e.g., “031001” and “038001”) in a message communication to the server 800 .
- the Current Version and Next Version may be included in a data field of the message header.
- the messages of step 920 may be communications to the server 800 for discount authorization, confirmation, or cancellation.
- the message may also be a “heartbeat” message sent from the retail system 822 to the server system 800 every 10 minutes if no other communications occur.
- step 930 the server system 800 receives the message and reads the Current Version and Next Version. If there have been no changes to the APLs 840 , 841 , the server 800 does not take any additional action.
- the message headers for communications sent from the server system 800 to the retail store 820 could also contain Current Version and Next Version data, which would act as a confirmation of the Current Version and Next Version data.
- the Next Version data will change when the server system 800 generates a new APL to be implemented in the future. This will preferably occur during off-peak hours, such as between midnight and 3:00 AM.
- the server system 800 If the server system 800 has made any changes in the APL 840 or the APL 841 , the updated APLs will have new version designations. In this case, in step 940 the server system 800 will send the correct Current Version and Next Version data to the retail system 822 . In step 950 the retail system 822 receives the corrected Current Version and Next Version data and stores the data.
- step 960 based on the corrected Current Version and Next Version data, the retail system 822 determines that one or both of the APLs 840 , 841 are out of date. The retail system 822 then sends a request to download the new APL. For example, if the APL 840 Current Version data is updated from “031001” to “031002,” the retail system 822 will request the server system 800 to send an updated APL version 031002, which will be saved as the Current List 840 . In step 970 the server system 800 sends the requested list or lists to the retail system 822 . After step 970 , the method 900 returns to step 910 , where the updated Current List 840 and Next List 841 are saved at the retail system 822 . The method 900 continues as a loop, with the retail system 822 sending the Current Version and Next Version data to the server system 800 to continually verify that the APLs 840 , 841 are the correct versions.
- Method 900 allows the retail store system 822 to operate with the correct APL even when a network connection cannot be established. It would be a simple matter to alter method 900 to allow three APLs to be downloaded at each connection to allow the retail store system 822 to survive two missed updates.
- FIG. 10 Method for Choosing APL Version
- a method 1000 is presented for determining an APL version for a retail store system 822 .
- the method can be performed entirely at the retail store system 822 .
- the retail system 822 preferably has a current APL 840 and a next APL 841 saved at the retailer system 822 .
- Each APL 840 , 841 contains data indicating a time period during which the promotions in the APL 840 , 841 are valid.
- the APL 840 is the Current List of promotions
- the APL 841 is the Next List, to be implemented at a future date.
- the system determines whether the Next List 841 should be implemented.
- the retail system 822 could use the dates in Current Version and Next Version data for the APLs 840 , 841 to determine whether to implement the Next List.
- the Next List 841 may be implemented at midnight on a date specified by the Next Version data.
- step 1020 the Next List is redefined to become the Current List.
- the APL 841 becomes the Current List and the APL 840 becomes an expired list that will no longer be used by the retail system 822 . If the retail system 822 does not have any additional stored APLs, there will not be a Next List. In this case, the Next List is set to null at step 1030 . In one embodiment, after step 1030 the retail system 822 may send a request to the server system 800 to download a Next List, if such a list is available.
- FIG. 11 shows a table 1100 of data defining different promotions for a program.
- the promotion definitions 644 may be stored in a database 640 .
- Each individual promotion 644 contains detailed information about the promotion.
- an individual promotion record 644 contains information about the product or department to which the promotion applies, activation and expiration dates, the discount type, discount value, purchase requirements, the program or group receiving the promotion, the promotion sponsor, the retailers that will accept the promotion, and other such information as will be described.
- Each promotion 644 will be applied to at least one program 642 .
- a promotion 644 may apply to all members 646 in a program 642 , or the promotion 644 may only be available to members 646 who belong to a particular group 650 within the program 642 .
- the promotion 644 must have a discount type, which may be either a percent discount or cents off discount.
- the discount type is associated with a discount value, such as 10% or $0.50.
- a percentage discount type may also have an associated NTE (“not to exceed”) value that caps the dollar amount that the promotion 644 can provide to the member 656 .
- the discount may also be associated with a maximum product price or “copay.” For example, the promotion 644 may offer a particular product 646 for $0.99. This “copay” is the maximum amount that the member 656 will be charged for the product 646 .
- Each promotion 644 is defines the benefits available for this promotion.
- the available benefits are defined by a benefit type (e.g., units or dollars) and a value that indicates either how many units the discount can apply to (e.g., discount can be used on up to three units of a product), or a maximum dollar amount to apply (e.g., up to $5.00).
- the benefit available data also includes a duration, which may either be a single transaction (i.e., the discount can only be used once), or a time period during which the promotion 644 can be used many times. If the benefit is available for a specified time period, the promotion 644 can be used across multiple retailers 666 accepting the program 642 .
- the duration may also be a multiple number of uses, such as that the particular promotion 644 can be used three times.
- this use is stored in the benefit database entity 654 and compared with the benefits available for the promotion 644 to see if the customer still applies for the promotion 644
- the promotion 644 also includes purchase requirements that must be met to qualify for the promotion 644 .
- the purchase requirements will include a product identifier or department identifier.
- a purchase requirement type such as number of units or dollars is associated with a purchase requirement value, for example 3 units, or $10.00.
- a purchase requirement duration specifies the timing in which the promotion 644 is available. For example, if the purchase requirement duration is equal to “transaction,” the member 644 must fulfill all of the purchase requirements in a single transaction in order to receive the promotion discount.
- the purchase duration could be a time period, which aligns with the assigned activation and expiration dates for the promotion 644 . In this case, a member 646 could fulfill a purchase requirement over the time period and still receive the discount.
- each product 646 associated with a promotion 644 is identified as a primary product or secondary product. This categorization is used if a promotion 644 has a purchase requirement such as buying one type of item and receiving another type of item for free.
- a “secondary” product is defined as the product that must be purchased.
- a promotion 644 could support a “mix ‘n’ match” promotion where a member 656 must buy a certain number of “secondary” products, after which the member 656 can receive a discount on a different “primary” product.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Engineering & Computer Science (AREA)
- Development Economics (AREA)
- Strategic Management (AREA)
- Game Theory and Decision Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Marketing (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
A system and method is presented for product substantiation and promotion redemption. A purchased product list is transmitted from a retail store system to a promotion analysis server along with a user identifier. The promotion analysis server identifies promotions available to the user, and then considers whether the benefits under the promotions are still available to the user. Discounts for available promotions related to the purchased product list are calculated and transmitted to the retail store system for deduction from the transactions. An approved product list can be provided that filters the purchased product list before transmittal. The approved product list can include promotions from a plurality of programs.
Description
- This application is a continuation of U.S. patent application Ser. No. 16/776,752, filed Jan. 30, 2020, and issued as U.S. Pat. No. 11,468,469 on Oct. 11, 2022 (the '752 application). The '752 application is a continuation of U.S. patent application Ser. No. 15/834,176, filed Dec. 7, 2017, and issued as U.S. Pat. No. 10,685,369 on Jun. 16, 2020 (the '176 application). The '176 application was a continuation of U.S. patent application Ser. No. 14/173,385, filed Feb. 5, 2014, which was a continuation of U.S. patent application Ser. No. 13/835,372, filed Mar. 15, 2013, which in turn claimed the benefit of Provisional Application No. 61/763,462, filed Feb. 11, 2013. All of these related applications are hereby incorporated by reference in their entireties.
- The present application relates to the field of product promotions. More particularly, the described embodiments relate to a system and method for substantiated product purchases made during promotion redemption using a remote server and an approved product list.
-
FIG. 1 is a system diagram showing the primary components of one embodiment of the present invention. -
FIG. 2 is a flow chart showing a method to perform one embodiment of the present invention. -
FIG. 3 is a table showing the components of an approved product list. -
FIG. 4 is a schematic diagram, divided intoFIG. 4 a andFIG. 4 b , showing the process of filtering purchased products using an approved product list and rolling up products within a group. -
FIG. 5 is a flow chart showing a method to perform an embodiment of the present invention. -
FIG. 6 is a system diagram showing the components of one embodiment of a server computer including the content of the data maintained by the server. -
FIG. 7 is a schematic diagram showing the relationship between multiple programs, groups, and promotions. -
FIG. 8 is a schematic diagram showing the transmission of retailer specific approved product lists to retailer store systems for two different retailers. -
FIG. 9 is a flow chart showing a method of updating an approved product list at a store controller. -
FIG. 10 is a flow chart showing a method for implementing an approved product list. -
FIG. 11 is a table showing the components of one embodiment of a promotion. -
FIG. 1 shows apromotion management system 10 in which aserver system 100 communicates with aretail store system 130 over anetwork connection 160. Theserver system 100 is shown consisting of an approved product list (or “APL”)server 110 and apromotion analysis server 120, each of which may take the form of one or more computer systems. Similarly, theretail store system 130 traditionally takes the form at least onestore terminal 140 and astore controller 150. The terminal 140 may be a point of sale or electronic cash register (POS/ECR) computer system that processes products orother items 142 provided for purchase by a consumer. Thestore controller 150 communicates with each of theterminals 140 within a retail store environment, and may also be responsible for managing external communication such as overnetwork 160. - In the
system 10, theAPL server 110 is responsible for developing a list of approved products for which promotions are managed by theserver system 100. This list is preferably created with help of adatabase 115. The approved product list (APL) is then transmitted to theretail store system 130 over thenetwork 160 and saved asAPL 152. A user presents their selectedproducts 142 for purchase at the terminal, and also presents auser card 144. Based on an identifier on theuser card 144, the retail store system 130 (in either the terminal 140 or the store controller 150) determines which products in theAPL 152 are relevant for the consumer presenting thecard 144. Theproducts 142 presented for purchase are then compared against this portion of theAPL 152 to create a filtered list of products being purchased that are potentially eligible for discounts. This list is then sent by theretail store system 130 along with a user identifier (such as a card ID found on the user card 144) to thepromotion analysis server 120. - The
promotion analysis server 120 then examines thedatabase 115 to determine the benefits that are still available for that identified user. If benefits remain for the products purchased 142, the promotional analysis server will calculate the available discounts and update the available benefits in thedatabase 115. The calculated discounts are then transmitted over thenetwork 160 to theretail store system 130, where they are then applied to the purchase price of theproducts 142. Theserver system 100 then uses the discount calculated to debit accounts owned by the sponsors of the promotions, and credit the account of the retailer that owns theretail store system 130. In one embodiment, either or both of the credit and debit transactions can take place over theACH network 122 accessed by theserver system 100. Note that the actions of theAPL server 110 and thepromotion analysis server 120 need not be performed on physically distinct computer systems, nor need the terminal 140 andstore controller 150 be physically distinct systems. -
FIG. 2 shows amethod 200 that can be used to manage promotions andprograms using system 10. A promotion generally takes the form of a discount on an item. Some example promotions that can be supported by thesystem 10 include: -
- 1) $1.00 off a particular product,
- 2) 20% off of any product sold under a common brand,
- 3) a buy one get one free promotion for a product,
- 4) $5.00 stored value credit for any product in a particular category or product group (such as fruits and vegetables), or
- 5) 25% off any item in a product group, up to a maximum benefit of $50 per month.
More detail on the possible promotions can be found in Table I of this disclosure.
- A program is a set of promotions provided to users. A fuller description of programs is provided below in connection with
FIG. 7 . For example, an employer may provide employees with a promotion to promote healthy eating by creating a program with a variety of promotions for healthy foods. The employer can fund some of these promotions, and then seek partners to pay for others of the promotions in the program (or the administrator of thesystem 100 could assist in finding partners). A health food brand may agree to pay for a 5% discount on all of their products, while a vitamin brand may agree to provide $1 off any purchase of at least $10 of their vitamins. The employer would provide a card for this promotion to their employees that they can use at a variety of retail stores. - While the card is accepted and redeemable at many different retailers, the employer may be able to convince one or more of the retailers to add their own promotion to the program. For instance, a first retailer may agree to provide an additional 5% off of fruits and vegetables, while a second retailer may agree to a $5 discount off of any purchase made from their organic food department that exceed $50. A third retailer may refuse to participate in the program at any level.
- Approved product lists are generated on a retailer-by-retailer basis. This means that in order to generate an APL in
method 200, theAPL server 110 must identify all of the general promotions that make up a program instep 202, and then identify any retailer-specific promotions that the retailer has agreed to add to this program instep 204. Once all the general and retailer-specific promotions are identified for a program, theAPL server 110 will generate a list of products that are covered by these promotions. This list of products is the approved product list for that program, and is created instep 206. In the preferred embodiment, theserver system 100 can handle a plurality of programs created by a plurality of program sponsors. If additional approved product lists need to be created for additional programs, as determined bystep 208, the method returns to step 202 for the next program. If the approved product lists for all programs have been created, then these APLs are combined instep 210 and sent to theretailer store system 130 instep 212. Of course, because this combined APL includes products covered by retailer specific promotions in the programs, a different APL will be sent out to different retailers. More detail on the content and format of an APL is described below in connection withFIGS. 3 and 8 . - Step 220 is shown on the right side of
FIG. 2 , as are steps 222-230 and steps 260-262, which indicates that in one embodiment these steps take place on theretail store system 130. Steps 202-212 and 240-248 are on the left side ofFIG. 2 , and in this embodiment are performed on theserver system 100. Atstep 220, the terminal 140 reads auser card 144. In some embodiments, the terminal 140 will verify that thecard 144 is valid, such as by comparing expiration data found on thecard 144 with the current date maintained by theterminal 140. In the preferred embodiment, the terminal 140 reads both a user identifier and a program identifier from thecard 144. The program identifier is read atstep 222, and is used to identify atstep 224 those products on the APL received by theretail store system 130 that are applicable to the program of which the user is a member. To speed up this process, the APL could be formatted in a binary-keyed format. Alternatively, the APL could reside on thecontroller 150 in ASCII format. Atstep 226, the terminal 130 examines theproducts 142 being purchased by the user, and then filters those products against the relevant product identifiers in the APL for the user's program. A primary lookup is performed based on a Universal Product Code (UPC) or Price Lookup Code (PLU) that identifies a particular product. In other words, if a user purchased wine, beer, and organic granola, and the promotions in the program only apply to the organic granola, thefiltering step 226 allow through only the product identifier for the granola. If the promotion applies to an entire department as opposed to a particular product, a secondary lookup is performed based on the indicated department. - In some cases, the APL for a program may include product groups, which are explained in more detail below in connection with
FIG. 4 . If some of the products purchased by the user and filtered instep 226 are part of a product group in the APL, those products will be totaled together as a single item in the filtered list of products instep 228. This filtered list of products is then submitted along with the user ID by thecontroller 150 over thenetwork 160 to thepromotion analysis server 120. In some cases, the program ID may also be transmitted. - As described below in connection with
FIG. 7 , a particular program may be divided into groups. If the program identified by thecard 144 is divided into groups, the user identifier received along with the filtered product list will be used to identify which group in the program is assigned to the user. This is done because some groups in a program have specific promotions assigned to it that are not assigned to other groups in the same program. Once the group is identified instep 240, the applicable promotions for the user are determined instep 242. Thisstep 242 involves two steps. First, the relevant promotion or promotions for each item in the filtered list received from theretail store system 130 must be identified. In the second step, thedatabase 115 is referenced to determine whether or not the user has benefits available to him or her for each promotion. For example, a promotion may provide for 20% off of fruits and vegetables, with a maximum discount of $10 in any calendar month. Thedatabase 115 will track how much of this $10 maximum discount is left for this user in this month. If only $2 remain of this maximum, themethod 200 will only grant the user at most $2 for this promotion. This particular benefit would then be automatically reset at the beginning of the next month. - At
step 244, those promotions that are available to the user are then applied to the filtered product list and discounts for each promotion are calculated. If more than one promotion applies to a particular product on the filtered product list, thepromotion analysis server 120 will use a consistent rule set to determine the order in which the promotion is applied. For instance, a percentage discount may be applied first, then a buy-one, get-one discount, and then a stored value credit would be applied. - In one embodiment, a multi-pass discount rule is applied in
step 244. In this exemplary embodiment, a particular product is allowed to receive only one discount per pass, but may receive a separate discount in each pass, if available. On the first pass, standard discounts available at the product level and department level are calculated. A maximum available discount is applied to each item. For example, if a single product is eligible to receive either $1.00 off the product or 10% off the product, the greater discount will be applied. On the second pass, special department-level discounts may be applied. For example, an additional discount on all products in a selected product group could be applied. In one embodiment, discounts that apply to fresh fruits and vegetables as a department are applied on the second pass. On the third pass, special department-level rewards are applied. These rewards may stored-value rewards, in which a user can spend up to a monthly limit on a particular department of goods. This third pass can again be limited to a particular department, such as fresh fruits and vegetables. On a fourth pass, standard stored-value rewards can applied that relate to all purchases and not just the special department singled out for the third pass. It is within the scope of the current disclosure to use alternative discount rules as required for different business processes. - The discounts applied are then saved in the
database 115 atstep 246, thereby updating the benefits available to the user for the next purchase transaction. The various discounts (promotions) that have been applied to the filtered product list are then returned to theretail store system 130 instep 248. - At
step 260, thestore controller 150 or terminal 140 then applies the discounts to the purchase transaction and updates the total amount due for the purchase instep 260. Preferably, the discounts and how they were applied are printed on the customer receipt instep 262. -
FIG. 3 shows the contents of an approvedproduct list 300 in the form of a table. TheAPL 300 contains a plurality of records, starting with a header record and ending with a trailer record with a plurality of detail records in between. Each record consists of several fields that vary depending on the record type. The detail records contain the actual list of approved products, and are therefore described in more detail herein—one of skill in the art could easily identify the contents and purposes of the fields in the header and trailer records. - A detail record identifies itself as a detail record in the record type field, and maintains a count of detail records in the record sequence field. Each detail record will identify a product or retailer department as belonging to a particular program. Consequently, each detail record contains a program code field to identify a program, and a product code data field to identify a particular product or department. As shown in
FIG. 3 , the first digit of the product code identifies whether the product code contains a universal product code (UPC or Price Lookup Code (PLU) (when the first digit is a 0), or a department code (when the first digit is a 2). Each retailer uses different codes to identify their departments. For example, one retailer may identify fruits and vegetables as department 10001, and deli items as department 10002, while another retailer may use a different numbering scheme. This means that theserver system 100 must have knowledge of the actual department numbering scheme used by the retailers that support thesystem 10 in order to provide department level promotions. - The product group code field, if used in a record, identifies a particular product as belonging to a product group. The product group code can be used to consolidate multiple different products into a single entry in the filtered list provided by the
retail store system 130. The type code field identifies a particular product as belonging to a special select product group. The type code field is used to help theserver system 100 apply special additional discounts and rewards. In one embodiment, the type code is used to indicate that the second and third pass of the multi-pass discount rule applies to this product. The type code is included with the filtered product list that is sent from theretail store system 130 to theserver system 100. A single product may have both a product group code and a type code. The authorization type field allows for partial functionality of the server system 100 (such as substantiation only and no discount calculation at the server system 100), while the settlement code field allows for communication from theserver system 100 to theretail store system 130 concerning how payment for each discount will be handled. -
FIG. 4 provides an example how an approvedproduct list 420 can be used to filterproduct purchase data 440 into a filteredproduct list 460 and eventually a filtered product list withgroup rollup 480. In this example, auser card 400 is presented that contains a program ID of “001”. TheAPL 420 received by theretail store system 130 from theserver system 100 is consulted to identify those data records that relate to thisprogram 001. InFIG. 4 ,data records 000001 to 000011 relate toprogram 001, whiledata records 000011 to 000016 relate toprogram 002. The identification of relevant promotions in theAPL 420 based on the program ID on thecard 400 can be referred to as the program match, as indicated byarrow 410. Note that data records 000001-000010 relate to particular product UPC or PLU codes and not departments, as in each case the product code field starts with thenumeral 0.Data record 000011 relates to a department code, because the product code field starts with thenumeral 2. The department product code after the numeral 2 (and after the leading zeros) is “D06.” Thisdata record 000011 also designates that group code as D06. Four of the product codes are part of group F11001. In addition, three of the codes have a type code value of FPF and one has a type code value of RWD. The type code values FPF and RWD indicate that the corresponding products belong to a special select product group that may be eligible for special additional discounts. - The eleven relevant promotions in the
APL 420 are then used to filter all of the items purchased by the user. The scanned UPCs for purchasedproducts 142 are shown in table 440, which includes a product identifier (UPC or PLU), a department code, a quantity, a purchase price, and a discount that has already been applied to this product by theterminal 140. These already-applied discounts are not related to promotions managed bysystem 10, and may include, for example, paper coupons presented by the user at the terminal 140. Instep 430 the product codes of the relevant promotions inAPL 420 are matched against the scanned product codes in transaction product data table 440. Product data filtering occurs at product-level filtering 450 and department-level filtering 455. The primary product-level filtering 450 matches scanned UPCs in table 440 to product codes inAPL 420. The secondary department-level filtering 455 matches a department code in table 440 to a department product code inAPL 420. The resulting filteredproduct list 460 indicates those products that were purchased by the consumer for which promotions are being maintained by thesystem 10 forprogram 001. Thelist 460 includes not only the product identifiers, but also the department code, purchase price, purchase quantity, and the previously-applied discounts. Theprocess 450 includes rolling up multiple entries of a single product identifier in thetransaction product data 440 into a single row of the filteredproduct list 460, which indicates the total quantity and price paid for all of the items. - Two of the products in the filtered products list 460 are part of group F11001. These group members are combined in
group rollup step 470, and put into a single entry discount request table 480 having the group identifier F11001 as the product code. Thedepartment rollup 475 combines the filtereddepartment 06 group members into a single entry in table 480. The discount request table 480 contains a product or group code, a type code, a purchase price, a purchase quantity, and previously-applied discounts. The discount request data table 480 is sent to the server system instep 230, described above. - Notably, the filtered
product list 480 is the complete set of information that is shared with theserver system 100. Thetransaction product data 440, containing a record of all products purchased in the transaction, is not passed to theserver system 100. This is advantageous for retailers who wish to keep secret the valuable business analytic data from customer transactions. - The
server system 100 receives the table 480 and performs the processes described in connection with steps 240-248 inFIG. 2 . The table 490 ofFIG. 4 represents the data that theserver 100 sends back to theretail store system 130 instep 248. The discount response table includes the product or group code, a product type, the purchase price, the purchase quantity, a total discount, a discount type (P, T, X, or Y), and an abbreviated description of the discount applied. The “FPF” entry in the product code column of table 490 indicates that a special additional discount was applied. These discounts are then used by the retailer to calculate the total price for the purchase. - The discount types X and Y represent discounts sponsored by the retailer processing the transaction. Discount types P and T refer to discounts sponsored by outside sources such as product manufacturers, employers, insurance companies, or other entities providing discounts. When calculating sales tax on a customer's purchase, the retailer-sponsored discounts X and Y are treated as a price reduction, but the outside discounts P and T are treated as tender. The X and Y discounts are not taxed, but the P and T discounts are taxed. In this way, the burden of determining taxable and non-taxable discounts is shifted from the retailer to the
system server 100. - The
method 500 ofFIG. 5 presents an alternative understanding of one embodiment of the present invention. InFIG. 5 , steps on the left hand side are performed at or for theretail store server 130, and steps on the right hand side are performed at or for theserver system 100. Themethod 500 starts atstep 502 with the reading of a bar code presented by the user. It is highly preferable to read a bar code at aretail store terminal 140 rather than a magnetic stripe, as almost all retailers provide only a single magnetic stripe reader at a terminal. This terminal is generally configured to read credit card and debit card numbers from the mag stripe on credit or debit cards, and to send transaction and card number information into proprietary, third party payment networks. It is exceedingly difficult to program additional functionality into magnetic stripe readers given the relatively closed nature of the system. Furthermore, it is very difficult to use data from the magnetic stripe readers outside of the third party payment networks, which typically will charge other parties a per-transaction fee to receive and send data through their network. By optically reading a bar code provided by the user, these difficulties can generally be avoided. - Note that the bar code could be found on a program card, such as
card 144. In other embodiments, an app is provided to a user smart phone that allows users to view and maintain some of the information about them and their benefits saved in thedata 115 maintained byserver system 100. This app is preferably configured to display a bar code on the screen of the smart phone that can be read by the bar code reader attached to the terminal 140. In other embodiments, a wireless transmitter (such as an NFC or RFID transmitter) on the smart phone will transmit to a receiver on the terminal 140 the same information that is provided via the bar code. In particular, the bar code or wirelessly transmitted information should provide at least a user identifier, but it may also provide a program identifier. - At
step 504, theretail store system 130 creates a list of purchased products, and then sends that information to theserver system 100 instep 506 along with the user ID. It may not be necessary to filter the purchased products using an approved product list if the communication speed over the network is sufficiently fast. In one embodiment, all purchase data is transmitted to theserver system 100. Because the magnetic stripe reader is not utilized, it is not necessary to send this information over a dedicated payment network. In one embodiment, a virtual private network between theserver system 100 and theretail store system 130 is created over theInternet 160 to ensure fast, direct, and secure communications between thesesystems - At
step 520, theserver system 100 identifies promotions available for the user based on the transmitted user identifier. Theserver system 100 may also use an identifier of theretail store system 130 sent atstep 506 to identify promotions that are available only at that retailer. Those promotions are then matched up against the purchased products instep 522. Theserver system 100 also determines whether or not the user has benefits available under each promotion. For instance, a buy one/get one promotion may be usable only once per calendar month, and theserver system 100 will determine whether the user has taken advantage of the promotion in the current month before applying the promotion to the purchased products. Instep 524, theserver system 100 determines that a particular promotion has a purchase requirement, such as buying all three flavors of a product before offering $2.00 off on a new flavor. In the current system, all purchases of these products, including both the triggering flavors and the discounted new flavor, are tracked by theserver system 100. This allows purchases made in previous transactions, even transactions made on a different date, to be used by theserver system 100 to determine whether the reward discount has been earned. In one embodiment, these purchases can even be made at different, unrelated retailers, allowing a customer to earn a reward by purchasing products at one retailer, and then redeeming the promotional reward as part of a purchase at another retailer. - At
step 526, theserver system 100 identifies a plurality of promotions that are available to the user for a purchase of a single product in a transaction. For instance, an employer could offer a 10% discount on all whole grain cereals, while the cereal manufacturer may provide a buy one box, get a second box free promotion on their whole grain cereals. Theserver system 100 uses a rule set to determine the order in which the promotions are applied and then applies both promotions to the purchase. In this case, the promotions are provided by different sponsors (the employer and the cereal manufacturer), both of who will reimburse the retailer for providing the discount to the user. Themethod 500 provides a very powerful way to apply multiple promotions, because multiple discounts of different types (percent discount vs. buy one/get one vs. dollar discounts vs. reward discounts for past behaviors) can be applied to a single purchase, even where those different discounts have completely different paying sponsors. In one embodiment, instep 526 theserver system 100 executes a rule set with multi-pass discounts as described above in relation to step 244 ofFIG. 2 . - At
step 528, all discounts that apply to the purchased products are calculated and identified in a communication to theretail store system 130. Atstep 540, thestore system 130 applies the discount to the purchasedproducts 540. In one embodiment, once the transaction is complete a verification signal is sent to theserver system 100 atstep 542 to indicate that the transaction is complete and the discounts have been given to the user. This communication informs theserver system 100 that reimbursement for the discount should be provided to the retailer. Thisconfirmation message 542 is required because it is always possible that the user will cancel part or all of the purchase transaction after the discount has been calculated and sent by theserver system 100 atstep 528. If the user cancels the transaction, then it is inappropriate to reimburse the retailer for the discount provided. When theserver system 100 receives this verification, the data concerning the provided discounts are saved in thedatabase 115 atstep 560 so that the user cannot reuse promotions beyond what was intended. - At
step 562, theserver system 100 determines the sponsor for each of the promotions applied to this transaction, and also determines a financial account for each transaction. In the example above, the employer is the sponsor for the 10% discount promotion; while the cereal manufacturer is the sponsor for the buy one, get one promotion. Instep 564, an account for the sponsor of each of the applied promotions is debited to pay for the discount provided to the user. As indicated atstep 566, thesystem 10 can be designed to have sponsors establish a financial account that contains funds that are used to pay for the promotions that they are sponsoring. As a result, thesystem 10 can be assured that the money to pay for the promotions is immediately available upon debiting the account atstep 564. Atstep 568, theserver system 100 provides a credit for a retailer account equal to the provided discounts. This credit could be provided by submitting a request for payment to the retailer account from a promotion sponsor account managed by thesystem 10 through theACH network 122. - If a promotion is sponsored by the retailer itself, no payment needs to be made to the retailer for that promotion. Instead, an accounting of all redeemed retailer-sponsored promotions is provided to the retailer. The retailer can use this data to charge the promotion to a particular department (e.g., to charge a discount on apples to the produce department). The retailer can also use the promotion use data for business analytics.
- As an alternative to the
verification transmission 542, thesystem 10 can be designed to automatically provide reimbursement to the retailer once the discounts are sent to theretail store system 100 instep 528. In this alternatively embodiment, theretail store server 130 would be responsible for sending a cancel message if the user canceled the transaction before being granted the discount. If the cancel message were to be received, the automatic reimbursement transfer would have to be reversed. By delayingsteps step 528, it should be possible to greatly reduce the number of financial transfers that would have to be reversed. The same could be done with the database update instep 560, although reversing a database change would involve fewer difficulties than reversing financial transactions. - Note that steps found in
method 500 can be added tomethod 200, and vice versa, as desired. For instance, it is contemplated thatsteps method 200 without difficulty. -
FIG. 6 shows an embodiment of theserver system 100 in which asingle server computer 600 operates as both theAPL server 110 and thepromotion analysis server 120. Theserver computer 600 includes anetwork interface 610 designed to provide communications with remote devices over anetwork 612. In one embodiment, thenetwork 612 is the Internet, and thenetwork interface 610 includes TCP/IP protocol stacks for communicating over thenetwork 612. Thenetwork interface 610 may connect to thenetwork 612 wirelessly or through a physical wired connection. Theserver computer 600 further includes a programmabledigital processor 620 designed to operate programming code stored on amemory 630. Theprocessor 620 is preferably a general purpose CPU such as those manufactured by Intel Corporation (Mountain View, Calif.) or Advanced Micro Devices, Inc. (Sunnyvale, Calif.).Memory 630 preferably includes a non-volatile, non-transitory, computer readable medium such as a hard drive or flash memory device.Software instructions memory 630 instruct theprocessor 620 how to perform the methods of the present invention, including themethods FIGS. 2 and 5 above. More specifically, theoperating system instructions 632 perform OS management functions that allow theserver computer 600 to operate while theAPL generation software 634 allows theserver computer 600 to operate as theAPL server 110. Similarly, thepromotion analysis software 636 allows theserver computer 600 to operate as thepromotion analysis server 120. To improve efficiency, theprocessor 620 may loadsoftware instructions memory 120 into a faster but volatile RAM portion of thememory 120.Data 640 operated upon by theprocessor 620 can also be stored in non-volatile memory and retrieved into RAM for analysis, recording, and reporting. - The construction of the terminal 140 and
store controller 150 is similar to theserver computer 600 in that each device contains aprocessor 620 and programming instructions 632-636 onmemory 630 that instruct theprocessor 620 on how to perform the methods of the present invention. As explained above, any of thesedevices - In the preferred embodiment, the data used by the
server computer 600 is stored in adatabase 640 managed byprocessor 620 undersoftware programming instructions database 640 can store data in pre-defined fields in a database table or as database objects in an object-oriented database environment.FIG. 6 shows thedatabase 640 with tables or objects forprograms 642,promotions 644,products 646,sponsors 648,groups 650,households 652,benefits 654,members 656,cards 658,transactions 660,transaction items 662,retailer locations 664, andretailers 666. Thedatabase 640 tracks relationships between each of the data entities 642-666, which are shown using crow's foot notation between the entities inFIG. 6 . For instance,FIG. 6 shows that asingle program 642 can be associated with a plurality ofpromotions 644. As shown inFIG. 6 , it is possible to definepromotions 644 for a plurality ofproducts 646. For example, a promotion could provide $4 of frozen vegetables of an identified brand every month. This would constitute asingle promotion 644, but could apply to a greatmany products 646. Theproducts 646 to which thepromotions 644 apply can be defined by a product number, but can also be defined by a department number, in which case all products in the particular department are included in thepromotion 644. Once thepromotion 644 was used on any of thoseproducts 646, it would be unavailable for any of theproducts 646 until the next month. Eachpromotion 646 defines a specific discount, such as 10% off an item. Eachpromotion 646 also includes the purchase requirements that must be met for thepromotion 646 to be applied.Promotions 646 can also define a date range during which thepromotion 646 is valid.FIG. 11 , described below, shows one embodiment for defining discounts for thepromotion 646. - In
FIG. 6 , eachprogram 642 is associated with one ormore groups 650, which are described in more detail in connection withFIG. 7 . In many cases, thepromotions 644 are associated directly with aprogram 642, but it is possible to assignpromotions 644 directly to agroup 650 as shown by the dottedcrows foot notation 670.Households 652 are assigned directly togroups 650, with eachhousehold 652 being assigned to asingle group 650 in aprogram 642.Benefits 654 are tracked at thehousehold level 652 and are associated withpromotions 644. When ahousehold 652 uses apromotion 644, such as $4 of frozen vegetables every month, the benefit table or object 654 tracks this use. Whenstep 242 determines available promotions for the user inmethod 200, thebenefits 654 for the user'shousehold 652 are consulted along with theavailable promotions 644 for the user'sgroup 650 andprogram 642. It is possible to implement the benefit table 654 with effective start and end dates. To determine whether the user has used up an available promotion for the current time period, the start and end dates will be examined. For example, a user may wish to take advantage of the $4 of free frozen vegetables. If they had not used this promotion this month, nobenefit record 654 would have been created for thepromotion 644 that is relevant to the current time period. This would indicate that the user has used none of thebenefit 654. Abenefit record 654 can then be created with the appropriate start and end date (such as the beginning and end of the current month), and the record can indicate the total quantity available for this promotion (such as 4 for four dollars). If the user purchased only $2.39 of frozen vegetables, thebenefit record 654 would record that usage. If another attempt to purchase frozen vegetables were made that month, thebenefit record 654 would be recalled, and the vegetables could then be discounted the $1.61 remaining in the promotion for this month. Thebenefit record 654 would then be updated to indicate that the user had used the entire $4. -
Benefits 654 are tracked at ahousehold level 652, which may include multiple (family)members 656. Eachmember 656 would typically be issued asingle card 658, although the issuance ofreplacement cards 658 would mean thatmultiple cards 658 could be associated in thedatabase 640 with eachmember 656. This organization of thedatabase 640 allows the purchasing behavior of eachfamily member 656 to be tracked while ensuring thatpromotions 644 in theprogram 642 are provided on a household-by-household basis. - When a
retail store system 130 submits a list of purchased products to the server system 100 (step 230 or 506), anew transaction record 660 is created. Thetransaction record 660 indicates when (date and time) and where (retail location 664 and terminal identifier) the transaction took place. Thetransaction record 660 also indicates whichcard 658 was used in the transaction to allow easy identification of themember 656 andhousehold 652 that made the transaction. A plurality oftransaction items 662 are associated with eachtransaction 660, with eachtransaction item 662 tracking the purchase of aproduct 646 under apromotion 644. Thetransaction item 662 is also associated with asingle benefit 654 record, indicating that thebenefit record 654 was created or modified as a result of this transaction item 662 (or that the benefit was used up and no discount was provided for this transaction item 662). In one embodiment, the receipt of a filtered list with four entries (such as list 480) by theserver system 100 would trigger the creation of onetransaction record 660 and a plurality of transaction items 662 (assuming the user was otherwise eligible for all four promotions). Some entries in the list may create zero transaction item records 662 (where the user was not eligible for any promotion on that product), while other entries may create one or more transaction item records 662 (depending on the number of eligible promotions that apply to that product). - Each
retailer location 664 is likely associated with a plurality oftransactions 660 but only asingle retailer 666. While someretailers 666 have an only asingle location 664, thedatabase 640 allowsmultiple retailer locations 664 to be identified as belonging to asingle retailer 666. As described above, it is possible that somepromotions 664 are defined to be associated with only asingle retailer 666. This is shown inFIG. 6 as dottedassociation 672, and described in more detail below. -
FIG. 6 should not be taken to indicate that the data entities 642-666 insystem database 640 need to be implemented exactly as shown, with each entity 642-666 in the Figure implemented as a single database table or object. Rather,FIG. 6 merely indicates that one or more database entities are created withindatabase 640 to track this information. It is well within the scope of the prior art to implement this type of data using a variety of entity architectures. -
FIG. 7 shows schematically the relationship betweenprograms 642,promotions 644, andgroups 650. Thefirst program 700 is designed to provide a plurality of promotions to users. Thefirst program 700 might be created by a large entity, such as a health insurance provider, and the users of the program might be insureds that receive insurance from that provider. The health insurance provider agrees to provide a set ofpromotions 710 in itsprogram 700 to its insureds. The insurance company then encourages each of the employers that provide the health insurance to their employees to add additional benefits to the plan. Each different employer would create a different group within thefirst program 700 and provide additional promotions to its employees. InFIG. 7 , a first employer creates afirst group 730 and establishesfirst group promotions 732 for its employees, while a second employer creates asecond group 740 and establishessecond group promotions 742 for its employees. In addition, the insurance company may approach a variety of retailers to see if they wish to encourage use of these promotions at their retail establishment by providing their own promotions. InFIG. 7 , one retailer has agreed to sponsor multiple retailerspecific promotions 720. - Another entity (such as a government agency providing benefits to citizens) could establish a
second program 750 withsecond program promotions 760, and then establish athird group 770 with third group promotions and afourth group 780 withfourth group promotions 782. Some of the users of thesecond program 750 do not qualify for any additional programs other than thesecond program promotions 760. To ensure that all users are assigned to agroup 650 within aprogram 642 indatabase 640, afifth group 790 is established that has no groupspecific promotions 644. - Users are associated with one of the
groups first program 700 would receive identification (such ascards first program 700 to theretail store system 130. This allows theretail store system 130 to identify which promotions on anAPL 300 might relate to the user. The list of promotions in theAPL 300 may include promotions for allgroups first program 700 even though the user belongs only to a single group. Theserver system 100 would identify whichgroup household 652 andgroup 650 in thedatabase 640, and then identify all the promotions currently available for the user. For example, a user in thefirst group 730 would be eligible for thefirst program promotions 710 and thefirst group promotions 732 but not thesecond group promotions 742 or any of thepromotions second program 750. If this user shops at the correct retailer, they would also be eligible for the retailerspecific promotions 720. - All of the non-retailer
specific promotions programs system 10 in a singleapproved product list 300. Any retailer that has retailerspecific promotions 720 in any of theprograms product list 300 that includes their retailerspecific promotions 720 in theprograms FIG. 8 , where aserver 800 provides a first version of anAPL 840 for afirst retailer 820, and a second version of anAPL 860 to asecond retailer 830. Theserver 800 may also provide theretailers additional APLs retailers APL 840 for thefirst retailer 820 includespromotions 842 specific to thefirst retailer 820 as well as the promotions in thefirst program 850 and thesecond program 852. The APL for thesecond retailer 860 includespromotions 862 specific to thesecond retailer 830 as well as the promotions in thefirst program 850 and thesecond program 852. Furthermore, theAPL 840 for thefirst retailer 820 is provided to all theretail store systems first retailer 820, while theAPL 860 for thesecond retailer 830 is provided to all theretail store systems second retailer 830. - One embodiment of the present invention requires the communications from the
first retailer 820 to include a first merchant identifier and communications from thesecond retailer 830 to include a second merchant identifier. These merchant identifiers allow theserver system 800 to identify theretailer server system 800 to provide thecorrect APLs store systems - In the preferred embodiment, the
APLs method 900 set forth inFIG. 9 . InFIG. 9 , the steps that appear on the left side of the page indicate that the steps are performed at a retail store system such asretail store system 822. The steps that appear on the right side of the page indicate that the steps are performed at theserver system 800. Themethod 900 can be used at any of the retail store systems ofFIG. 8 . - In the flow chart of
FIG. 9 , a “Current List” refers toAPL 840, which is actively used byretail system 822 between a particular start date and end date. A “Next List” refers toAPL 841, which is saved at theretail system 822 to be implemented at a predetermined future start date. - Each APL in the system of
FIG. 8 has a version designation containing information regarding an implementation date and a version number for that particular APL. In one embodiment, the date and version number are presented as a combined a 3-digit date (day-in-the-year) and a 3-digit sequence number, starting at 001. Thus, a version designation for an APL implemented on January 31 would be designated “031001.” If an APL for January 31 needs to be updated, for example if an error needs to be corrected or new promotions added, a new version of the APL would be designated “031002.” InFIG. 9 , “Current Version” refers to the version designation data ofAPL 840, and “Next Version” refers to the version designation data ofAPL 841. - As explained above, a connection between
retail system 822 andserver system 800 can be made through a VPN connection over the Internet. Rather than just downloading the current APL, theretail system 822 downloads at least two APLs to be used for transactions at theretail system 822. If the APLs are updated daily, then it will be necessary to generate all APLs at least two days in advance so that the next two APLs will be ready for downloading when requested by theretail system 822. - In
step 910, aretail system 822 receives aCurrent List 840, aNext List 841, or both from theserver system 800. Theretail system 822 then saves thelists List 840 will be used for current transactions, while thelist 841 will be saved and implemented on a future date indicated by the version designation data oflist 841. - In
step 920, theretail system 822 sends includes the Current Version data forAPL 840 and Next Version data for APL 841 (e.g., “031001” and “038001”) in a message communication to theserver 800. The Current Version and Next Version may be included in a data field of the message header. For example, the messages ofstep 920 may be communications to theserver 800 for discount authorization, confirmation, or cancellation. The message may also be a “heartbeat” message sent from theretail system 822 to theserver system 800 every 10 minutes if no other communications occur. - In
step 930 theserver system 800 receives the message and reads the Current Version and Next Version. If there have been no changes to theAPLs server 800 does not take any additional action. In one embodiment, the message headers for communications sent from theserver system 800 to theretail store 820 could also contain Current Version and Next Version data, which would act as a confirmation of the Current Version and Next Version data. Most frequently, the Next Version data will change when theserver system 800 generates a new APL to be implemented in the future. This will preferably occur during off-peak hours, such as between midnight and 3:00 AM. - If the
server system 800 has made any changes in theAPL 840 or theAPL 841, the updated APLs will have new version designations. In this case, instep 940 theserver system 800 will send the correct Current Version and Next Version data to theretail system 822. Instep 950 theretail system 822 receives the corrected Current Version and Next Version data and stores the data. - In
step 960, based on the corrected Current Version and Next Version data, theretail system 822 determines that one or both of theAPLs retail system 822 then sends a request to download the new APL. For example, if theAPL 840 Current Version data is updated from “031001” to “031002,” theretail system 822 will request theserver system 800 to send an updated APL version 031002, which will be saved as theCurrent List 840. Instep 970 theserver system 800 sends the requested list or lists to theretail system 822. Afterstep 970, themethod 900 returns to step 910, where the updatedCurrent List 840 andNext List 841 are saved at theretail system 822. Themethod 900 continues as a loop, with theretail system 822 sending the Current Version and Next Version data to theserver system 800 to continually verify that theAPLs -
Method 900 allows theretail store system 822 to operate with the correct APL even when a network connection cannot be established. It would be a simple matter to altermethod 900 to allow three APLs to be downloaded at each connection to allow theretail store system 822 to survive two missed updates. - In
FIG. 10 , amethod 1000 is presented for determining an APL version for aretail store system 822. The method can be performed entirely at theretail store system 822. Theretail system 822 preferably has acurrent APL 840 and anext APL 841 saved at theretailer system 822. EachAPL APL APL 840 is the Current List of promotions, and theAPL 841 is the Next List, to be implemented at a future date. Instep 1010, the system determines whether theNext List 841 should be implemented. This could be accomplished by reading expiration date information from theAPL 840, or by reading start date information from theAPL 841. In one embodiment, theretail system 822 could use the dates in Current Version and Next Version data for theAPLs Next List 841 may be implemented at midnight on a date specified by the Next Version data. - After
step 1010, instep 1020 the Next List is redefined to become the Current List. TheAPL 841 becomes the Current List and theAPL 840 becomes an expired list that will no longer be used by theretail system 822. If theretail system 822 does not have any additional stored APLs, there will not be a Next List. In this case, the Next List is set to null atstep 1030. In one embodiment, afterstep 1030 theretail system 822 may send a request to theserver system 800 to download a Next List, if such a list is available. -
FIG. 11 shows a table 1100 of data defining different promotions for a program. With reference toFIG. 6 , thepromotion definitions 644 may be stored in adatabase 640. Eachindividual promotion 644 contains detailed information about the promotion. For example, anindividual promotion record 644 contains information about the product or department to which the promotion applies, activation and expiration dates, the discount type, discount value, purchase requirements, the program or group receiving the promotion, the promotion sponsor, the retailers that will accept the promotion, and other such information as will be described. - Each
promotion 644 will be applied to at least oneprogram 642. Apromotion 644 may apply to allmembers 646 in aprogram 642, or thepromotion 644 may only be available tomembers 646 who belong to aparticular group 650 within theprogram 642. - The
promotion 644 must have a discount type, which may be either a percent discount or cents off discount. The discount type is associated with a discount value, such as 10% or $0.50. A percentage discount type may also have an associated NTE (“not to exceed”) value that caps the dollar amount that thepromotion 644 can provide to themember 656. The discount may also be associated with a maximum product price or “copay.” For example, thepromotion 644 may offer aparticular product 646 for $0.99. This “copay” is the maximum amount that themember 656 will be charged for theproduct 646. - Each
promotion 644 is defines the benefits available for this promotion. The available benefits are defined by a benefit type (e.g., units or dollars) and a value that indicates either how many units the discount can apply to (e.g., discount can be used on up to three units of a product), or a maximum dollar amount to apply (e.g., up to $5.00). The benefit available data also includes a duration, which may either be a single transaction (i.e., the discount can only be used once), or a time period during which thepromotion 644 can be used many times. If the benefit is available for a specified time period, thepromotion 644 can be used acrossmultiple retailers 666 accepting theprogram 642. The duration may also be a multiple number of uses, such as that theparticular promotion 644 can be used three times. When a customer uses apromotion 644, this use is stored in thebenefit database entity 654 and compared with the benefits available for thepromotion 644 to see if the customer still applies for thepromotion 644 - The
promotion 644 also includes purchase requirements that must be met to qualify for thepromotion 644. The purchase requirements will include a product identifier or department identifier. A purchase requirement type such as number of units or dollars is associated with a purchase requirement value, for example 3 units, or $10.00. A purchase requirement duration specifies the timing in which thepromotion 644 is available. For example, if the purchase requirement duration is equal to “transaction,” themember 644 must fulfill all of the purchase requirements in a single transaction in order to receive the promotion discount. Alternatively, the purchase duration could be a time period, which aligns with the assigned activation and expiration dates for thepromotion 644. In this case, amember 646 could fulfill a purchase requirement over the time period and still receive the discount. - In one embodiment of the system, each
product 646 associated with apromotion 644 is identified as a primary product or secondary product. This categorization is used if apromotion 644 has a purchase requirement such as buying one type of item and receiving another type of item for free. In this embodiment, a “secondary” product is defined as the product that must be purchased. For example, apromotion 644 could support a “mix ‘n’ match” promotion where amember 656 must buy a certain number of “secondary” products, after which themember 656 can receive a discount on a different “primary” product. For example, this could be implemented in apromotion 644 in which amember 656 must buy three boxes of a particular brand of cereal (i.e., “secondary” products), after which themember 656 receives a gallon of milk (i.e., a “primary” product) for free. If the purchase duration requirement is a time period, themember 656 may buy the secondary products during a first transaction, and receive the discount on the primary product during a subsequent transaction, which could be at the same retailer or a different retailer. - The system and methods described above are exemplary and are not the exclusive techniques for using the disclosed embodiments. Numerous modifications and variations will readily occur to those skilled in the art. Because such modifications are possible, the invention is not to be limited to the exact construction and operation illustrated and described. Rather, the present invention should be limited only by the following claims.
Claims (1)
1. A method of substantiating product purchases during promotion redemption comprising:
a) at a server system, transmitting a first list of approved products to a first retail store system, the list of approved products containing identifiers for products for which promotions are currently active;
b) at the server system, receiving from the first retail store system a first list of purchased products that has been filtered by the first retail store system according to the first list of approved products previously sent by the server system to the first retail store system;
c) at the server system, receiving from the first retail store system a first user identifier associated with the first list of purchased products;
d) at the server system, determining available promotions available for the first user identifier;
e) at the server system, calculating discounts for the first list of purchased products based on the available promotions;
f) at the server system, transmitting the calculated discounts to the first retail store system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/961,162 US20230103580A1 (en) | 2013-02-11 | 2022-10-06 | Server-Based Product Substantiation with Local Filtering System and Method |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361763462P | 2013-02-11 | 2013-02-11 | |
US13/835,372 US20140229256A1 (en) | 2013-02-11 | 2013-03-15 | Product substantiation using approved product list system and method |
US14/173,385 US20140229266A1 (en) | 2013-02-11 | 2014-02-05 | Server-based product substantiation with local filtering system and method |
US15/834,176 US10685369B2 (en) | 2013-02-11 | 2017-12-07 | Server-based product substantiation with local filtering system and method |
US16/776,752 US11468469B2 (en) | 2013-02-11 | 2020-01-30 | Server-based product substantiation with local filtering system and method |
US17/961,162 US20230103580A1 (en) | 2013-02-11 | 2022-10-06 | Server-Based Product Substantiation with Local Filtering System and Method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/776,752 Continuation US11468469B2 (en) | 2013-02-11 | 2020-01-30 | Server-based product substantiation with local filtering system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20230103580A1 true US20230103580A1 (en) | 2023-04-06 |
Family
ID=51298101
Family Applications (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/835,372 Abandoned US20140229256A1 (en) | 2011-04-15 | 2013-03-15 | Product substantiation using approved product list system and method |
US14/173,385 Abandoned US20140229266A1 (en) | 2013-02-11 | 2014-02-05 | Server-based product substantiation with local filtering system and method |
US14/173,360 Active US9189803B2 (en) | 2013-02-11 | 2014-02-05 | Server-based product substantiation with local filtering system and method |
US14/939,158 Active 2035-05-30 US10558997B2 (en) | 2013-02-11 | 2015-11-12 | Server-based product substantiation with local filtering system and method |
US15/834,176 Active 2033-08-06 US10685369B2 (en) | 2013-02-11 | 2017-12-07 | Server-based product substantiation with local filtering system and method |
US16/776,752 Active 2033-06-27 US11468469B2 (en) | 2013-02-11 | 2020-01-30 | Server-based product substantiation with local filtering system and method |
US16/881,655 Active US11315141B2 (en) | 2013-02-11 | 2020-05-22 | Server-based product substantiation with local filtering system and method |
US16/882,493 Abandoned US20200286118A1 (en) | 2013-02-11 | 2020-05-24 | Server-Based Product Substantiation with Local Filtering System and Method |
US16/895,913 Abandoned US20200302471A1 (en) | 2013-02-11 | 2020-06-08 | Server-Based Product Substantiation with Local Filtering System and Method |
US16/897,645 Abandoned US20200302472A1 (en) | 2013-02-11 | 2020-06-10 | Server-Based Product Substantiation with Local Filtering System and Method |
US17/961,162 Abandoned US20230103580A1 (en) | 2013-02-11 | 2022-10-06 | Server-Based Product Substantiation with Local Filtering System and Method |
Family Applications Before (10)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/835,372 Abandoned US20140229256A1 (en) | 2011-04-15 | 2013-03-15 | Product substantiation using approved product list system and method |
US14/173,385 Abandoned US20140229266A1 (en) | 2013-02-11 | 2014-02-05 | Server-based product substantiation with local filtering system and method |
US14/173,360 Active US9189803B2 (en) | 2013-02-11 | 2014-02-05 | Server-based product substantiation with local filtering system and method |
US14/939,158 Active 2035-05-30 US10558997B2 (en) | 2013-02-11 | 2015-11-12 | Server-based product substantiation with local filtering system and method |
US15/834,176 Active 2033-08-06 US10685369B2 (en) | 2013-02-11 | 2017-12-07 | Server-based product substantiation with local filtering system and method |
US16/776,752 Active 2033-06-27 US11468469B2 (en) | 2013-02-11 | 2020-01-30 | Server-based product substantiation with local filtering system and method |
US16/881,655 Active US11315141B2 (en) | 2013-02-11 | 2020-05-22 | Server-based product substantiation with local filtering system and method |
US16/882,493 Abandoned US20200286118A1 (en) | 2013-02-11 | 2020-05-24 | Server-Based Product Substantiation with Local Filtering System and Method |
US16/895,913 Abandoned US20200302471A1 (en) | 2013-02-11 | 2020-06-08 | Server-Based Product Substantiation with Local Filtering System and Method |
US16/897,645 Abandoned US20200302472A1 (en) | 2013-02-11 | 2020-06-10 | Server-Based Product Substantiation with Local Filtering System and Method |
Country Status (1)
Country | Link |
---|---|
US (11) | US20140229256A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3152748A1 (en) * | 2019-09-30 | 2021-04-08 | Christine DAY | Systems and methods for coupon-based incentive promotions and tracking |
CN114119109B (en) * | 2022-01-21 | 2022-10-18 | 浙江口碑网络技术有限公司 | Preferential resource processing method and device |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288313A1 (en) * | 2006-06-09 | 2007-12-13 | Mark Brodson | E-Coupon System and Method |
US20100100484A1 (en) * | 2005-01-04 | 2010-04-22 | Loc Nguyen | Product level payment network acquired transaction authorization |
US20110087592A1 (en) * | 2009-10-13 | 2011-04-14 | Van Der Veen Larry | Systems and methods for facilitating transactions |
US20120221468A1 (en) * | 2011-02-25 | 2012-08-30 | Phil Kumnick | Direct connection systems and methods |
US20130262249A1 (en) * | 2012-04-03 | 2013-10-03 | Blackhawk Network | Redemption Network with Transaction Sequencer |
US20130339238A1 (en) * | 2012-06-15 | 2013-12-19 | JJ&T Holdings LLC | Manufacturer-Based Purchase Transaction Benefit Processing |
US20170076348A1 (en) * | 2015-09-11 | 2017-03-16 | Knack Llc | Interactive generation of customized orderable articles apparatus, methods, articles and tools |
US20200311751A1 (en) * | 2019-04-01 | 2020-10-01 | Paypal, Inc. | Dynamic information probing for classifying an item |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5063998A (en) * | 1973-10-06 | 1975-05-30 | ||
US6684195B1 (en) | 1989-05-01 | 2004-01-27 | Catalina Marketing International, Inc. | Method and system for selective incentive point-of-sale marketing in response to customer shopping histories |
US7904333B1 (en) | 1996-10-25 | 2011-03-08 | Ipf, Inc. | Web-based electronic commerce (EC) enabled shopping network configured to allow members of a consumer product management team and authorized parties to communicate directly with consumers shopping at EC-enabled websites along the world wide web (WWW), using multi-mode virtual kiosks (MMVKS) driven by server-side components and managed by product team members |
US6009411A (en) * | 1997-11-14 | 1999-12-28 | Concept Shopping, Inc. | Method and system for distributing and reconciling electronic promotions |
US6332128B1 (en) | 1998-07-23 | 2001-12-18 | Autogas Systems, Inc. | System and method of providing multiple level discounts on cross-marketed products and discounting a price-per-unit-volume of gasoline |
US8498898B1 (en) | 1999-03-19 | 2013-07-30 | Citicorp Development Center, Inc. | System and method for point of use reward determination |
US20020049631A1 (en) * | 1999-10-12 | 2002-04-25 | Eric Williams | Process, system and computer readable medium for providing purchasing incentives to a plurality of retail store environments |
US20040030598A1 (en) * | 1999-11-30 | 2004-02-12 | Boal Steven R. | Electronic coupon distribution system |
US20020046116A1 (en) | 2000-09-08 | 2002-04-18 | William Hohle | System and method for loyalty program distribution and settlement |
US20020158123A1 (en) | 2001-01-30 | 2002-10-31 | Allen Rodney F. | Web-based smart card system and method for maintaining status information and verifying eligibility |
US20060053056A1 (en) | 2001-03-29 | 2006-03-09 | American Express Marketing & Development Corporati | Card member discount system and method |
US8321302B2 (en) | 2002-01-23 | 2012-11-27 | Sensormatic Electronics, LLC | Inventory management system |
US8015060B2 (en) * | 2002-09-13 | 2011-09-06 | Visa Usa, Inc. | Method and system for managing limited use coupon and coupon prioritization |
EP1552461A2 (en) | 2002-10-18 | 2005-07-13 | Mckesson Automation Systems, Inc. | Automated drug substitution, verification, and reporting system |
US7240843B2 (en) | 2003-01-22 | 2007-07-10 | Lobar Code Technologies, Inc. | Universal club card and real-time coupon validation |
US7877289B1 (en) * | 2004-08-13 | 2011-01-25 | Cunningham Electronics Corporation | Controlled offer redemption system |
US8260661B2 (en) | 2003-09-30 | 2012-09-04 | Visa U.S.A. Inc. | System and apparatus for linking multiple rewards programs to promote the purchase of specific product mixes |
US20050071222A1 (en) * | 2003-09-30 | 2005-03-31 | Bigus Joseph P. | Method for computing price discounts in an e-commerce environment |
US20100211493A9 (en) | 2003-11-19 | 2010-08-19 | American Express Travel Related Services Company, Inc. | Incentive Programs For Healthcare Cards |
US8521583B2 (en) * | 2003-12-26 | 2013-08-27 | Valassis In-Store Solutions, Inc. | Computerized management system for multi-chain promotions, and related audit system |
US7566000B2 (en) | 2004-02-17 | 2009-07-28 | Walgreen Co. | Method and system for providing a flexible product purchase account for members of a healthcare organization |
US7707110B2 (en) | 2004-05-04 | 2010-04-27 | First Data Corporation | System and method for conducting transactions with different forms of payment |
US20060015402A1 (en) | 2004-06-10 | 2006-01-19 | Graves Phillip C | Using multiple PINs for redemption through multiple distribution channels |
US20050278216A1 (en) | 2004-06-10 | 2005-12-15 | E2Interactive, Inc. D/B/A E2Interactive, Inc. | System and method for distributing an identifier redeemable for a plurality of products |
US20060074784A1 (en) | 2004-09-27 | 2006-04-06 | First Data Corporation | Stored value account for use with virtual coupons |
US20060095318A1 (en) | 2004-10-28 | 2006-05-04 | Ross Russell G | System and method of providing discounts on the purchase of gasoline |
US7905399B2 (en) | 2004-11-19 | 2011-03-15 | Barnes Brian T | Linking transaction cards with spending accounts |
US20060113374A1 (en) | 2004-11-30 | 2006-06-01 | Taylor Peter S | System and method of RFID data tracking in winemaking process |
US7866548B2 (en) * | 2004-12-01 | 2011-01-11 | Metavante Corporation | Account control method and system that allows only eligible and authorized items to be purchased using the account |
US20060122855A1 (en) | 2004-12-06 | 2006-06-08 | International Business Machines Corporation | Identifying and locating eligible WIC items in a store |
US20060206435A1 (en) | 2005-03-14 | 2006-09-14 | International Business Machines Corporation | Shopper identification via tender |
US20070011044A1 (en) | 2005-07-06 | 2007-01-11 | First Data Corporation | Discount applications with registered payment instruments |
US20070164106A1 (en) | 2006-01-13 | 2007-07-19 | Mcdevitt David Neal | System for online electronic receipt management and method therefor |
US7828204B2 (en) | 2006-02-01 | 2010-11-09 | Mastercard International Incorporated | Techniques for authorization of usage of a payment device |
US20070244811A1 (en) * | 2006-03-30 | 2007-10-18 | Obopay Inc. | Mobile Client Application for Mobile Payments |
US9098855B2 (en) * | 2006-05-23 | 2015-08-04 | Intelligent Clearing Network, Inc. | Intelligent clearing network |
US8386309B2 (en) * | 2008-09-09 | 2013-02-26 | Intelligent Clearing Network, Inc. | Intelligent clearing network |
US10296895B2 (en) | 2010-01-08 | 2019-05-21 | Blackhawk Network, Inc. | System for processing, activating and redeeming value added prepaid cards |
US8620738B2 (en) | 2006-08-31 | 2013-12-31 | Visa U.S.A. Inc | Loyalty program incentive determination |
US7783532B2 (en) * | 2006-10-18 | 2010-08-24 | Aol Inc. | E-couponing |
US20090018860A1 (en) | 2007-01-08 | 2009-01-15 | Joel Edward Sikes | Method and computer program for back office check conversion |
US20080210753A1 (en) * | 2007-03-02 | 2008-09-04 | First Data Corporation | Loyalty reward settlement system and method |
JP5474792B2 (en) | 2007-09-10 | 2014-04-16 | キュリス,インコーポレイテッド | Tartrate salt of a quinazoline-based EGFR inhibitor containing a zinc binding moiety or a complex thereof |
US20090150234A1 (en) | 2007-12-10 | 2009-06-11 | International Business Machines Corporation | Electronic Coupon Validation For A Point Of Sale ('POS') Transaction |
JP5356728B2 (en) | 2008-05-26 | 2013-12-04 | 株式会社トプコン | Edge extraction device, surveying instrument, and program |
US20100010901A1 (en) * | 2008-07-11 | 2010-01-14 | Marshall Charles T | Point-of-sale transaction management |
US8447669B2 (en) | 2008-08-26 | 2013-05-21 | Visa U.S.A. Inc. | System and method for implementing financial assistance programs |
US20100057554A1 (en) * | 2008-09-04 | 2010-03-04 | Mastercard International Incorporated | Method and System for Enabling Promotion of Product(s) and/or Service(s) |
US20100094733A1 (en) * | 2008-10-14 | 2010-04-15 | Shapira David S | System and method for incentivizing the purchase of retail products |
US20110015980A1 (en) | 2009-07-20 | 2011-01-20 | Li Justin | System and Method For Managing Promotions Within An Online Stationery Design System |
JP4493726B1 (en) | 2009-11-10 | 2010-06-30 | 昌樹 松本 | Slide fastener |
US20120012648A1 (en) | 2010-07-19 | 2012-01-19 | Collins Samuel R | S/M for conducting a purchase transaction of eligible goods or services using a stored value |
US20120066047A1 (en) | 2010-09-09 | 2012-03-15 | Manickababu Muthugopalakrishnan | Identifier-based coupon redemption |
US20120136706A1 (en) * | 2010-11-30 | 2012-05-31 | Amazon Technologies, Inc. | Digital Coupon System |
US20120150746A1 (en) | 2010-12-08 | 2012-06-14 | Ebay Inc. | Methods and systems for digital coupon redemption |
US20120150553A1 (en) * | 2010-12-13 | 2012-06-14 | Devin Wade | Systems for facilitating creation and management of item lists with unique identification codes for items and associating the lists to sponsor's payment financial transaction card programs |
US20120150697A1 (en) | 2010-12-13 | 2012-06-14 | Devin Wade | Methods that allow multiple retailers the ability to participate in restricted spend card programs without managing multiple catalogs of eligible items associated with multiple card programs |
EP2758921A4 (en) * | 2011-09-21 | 2015-05-27 | Jingit Holdings Llc | Offer management and settlement in a payment network |
WO2013106215A1 (en) * | 2012-01-09 | 2013-07-18 | Early Bird Alert, Inc. | Digital coupon redemption |
US9864988B2 (en) * | 2012-06-15 | 2018-01-09 | Visa International Service Association | Payment processing for qualified transaction items |
US20140006126A1 (en) | 2012-07-02 | 2014-01-02 | Google Inc. | Automatic redemption of manufacturer offers |
WO2014105723A1 (en) | 2012-12-31 | 2014-07-03 | Richard Postrel | Method and system for implementing a consumer entitlement program |
US20150120418A1 (en) | 2013-10-28 | 2015-04-30 | Visa International Service Association | Systems and methods to provide rewards based on purchased items |
-
2013
- 2013-03-15 US US13/835,372 patent/US20140229256A1/en not_active Abandoned
-
2014
- 2014-02-05 US US14/173,385 patent/US20140229266A1/en not_active Abandoned
- 2014-02-05 US US14/173,360 patent/US9189803B2/en active Active
-
2015
- 2015-11-12 US US14/939,158 patent/US10558997B2/en active Active
-
2017
- 2017-12-07 US US15/834,176 patent/US10685369B2/en active Active
-
2020
- 2020-01-30 US US16/776,752 patent/US11468469B2/en active Active
- 2020-05-22 US US16/881,655 patent/US11315141B2/en active Active
- 2020-05-24 US US16/882,493 patent/US20200286118A1/en not_active Abandoned
- 2020-06-08 US US16/895,913 patent/US20200302471A1/en not_active Abandoned
- 2020-06-10 US US16/897,645 patent/US20200302472A1/en not_active Abandoned
-
2022
- 2022-10-06 US US17/961,162 patent/US20230103580A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100100484A1 (en) * | 2005-01-04 | 2010-04-22 | Loc Nguyen | Product level payment network acquired transaction authorization |
US20070288313A1 (en) * | 2006-06-09 | 2007-12-13 | Mark Brodson | E-Coupon System and Method |
US20110087592A1 (en) * | 2009-10-13 | 2011-04-14 | Van Der Veen Larry | Systems and methods for facilitating transactions |
US20120221468A1 (en) * | 2011-02-25 | 2012-08-30 | Phil Kumnick | Direct connection systems and methods |
US20130262249A1 (en) * | 2012-04-03 | 2013-10-03 | Blackhawk Network | Redemption Network with Transaction Sequencer |
US20130339238A1 (en) * | 2012-06-15 | 2013-12-19 | JJ&T Holdings LLC | Manufacturer-Based Purchase Transaction Benefit Processing |
US20170076348A1 (en) * | 2015-09-11 | 2017-03-16 | Knack Llc | Interactive generation of customized orderable articles apparatus, methods, articles and tools |
US20200311751A1 (en) * | 2019-04-01 | 2020-10-01 | Paypal, Inc. | Dynamic information probing for classifying an item |
Also Published As
Publication number | Publication date |
---|---|
US9189803B2 (en) | 2015-11-17 |
US20200273060A1 (en) | 2020-08-27 |
US20160260120A1 (en) | 2016-09-08 |
US20200302471A1 (en) | 2020-09-24 |
US10558997B2 (en) | 2020-02-11 |
US20200302472A1 (en) | 2020-09-24 |
US11468469B2 (en) | 2022-10-11 |
US20140229256A1 (en) | 2014-08-14 |
US10685369B2 (en) | 2020-06-16 |
US11315141B2 (en) | 2022-04-26 |
US20140229266A1 (en) | 2014-08-14 |
US20200286117A1 (en) | 2020-09-10 |
US20200286118A1 (en) | 2020-09-10 |
US20140236693A1 (en) | 2014-08-21 |
US20180121948A1 (en) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11049125B2 (en) | Payment account processing which conveys financial transaction data and non-financial transaction data | |
US11836757B2 (en) | Offers selected during authorization | |
US11004104B2 (en) | Dual redemption path with shared benefits system and method | |
US20230103580A1 (en) | Server-Based Product Substantiation with Local Filtering System and Method | |
US20070103993A1 (en) | Personal Portable Devices | |
US20050080672A1 (en) | Creating customer loyalty | |
EP1287319A2 (en) | Electronic system for processing cash transactions | |
US20130339238A1 (en) | Manufacturer-Based Purchase Transaction Benefit Processing | |
US20140236703A1 (en) | Server-based product substantiation with local filtering system and method | |
US20240086965A1 (en) | System and method for redeeming a reward | |
US20160189125A1 (en) | Server-based product substantiation with local filtering system and method | |
US20210004860A1 (en) | Systems and methods for item-specific promotion redemption | |
US20140236692A1 (en) | Server-based product substantiation with local filtering system and method | |
AU2014200145B2 (en) | Payment account processing which conveys financial transaction data and non-financial transaction data | |
ZA200209275B (en) | Electronic processing system. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |