METHOD AND APPARATUS FOR DISPENSING DISCOUNT COUPONS

Abstract: Apparatus, and a corresponding method, for creating a discount coupon in response to the purchase of a product other than the one to which the coupon applies. A record pertaining to each item purchased is examined to determine whether the item is intended to trigger the creation of a coupon. If it is, at least one associated coupon deal record is retrieved, and a coupon becomes a candidate for printing, subject to a maximum number of coupons per transaction. The apparatus also validates coupons presented for redemp­ tion, scanning a list of purchased products to determine whether any falls into the same product group specified on the coupon, and also determining whether the coupon date is valid.

Description: METHOD AND APPARATUS FOR DISPENSING DISCOUNT COUPONS EMI1.1 This invention relates generally to pointof-sale computer systems of the type used in retail stores to record sales transactions. More particularly, the invention relates to point-of-sale systems capable of handling discount coupons. Most pointof-sale systems have terminus that are capable of reading a code printed on each product package, and thereby determining the price from an internal file stored at a store controller. Products are coded by means of a series of parallel lines, in accordance with a convention known as the Universal Product Code. As every grocery shopper knows, many manu facturers distribute discount coupons for their products, either through the mail, or by printing them in newspapers or magazines, or enclosing them in similar or related product packages. When a customer presents a discount coupon at the time of purchase of an appropriate product, the grocery checker operating the terminal will typically key in the coupon amount, and the discount will be substracted from the customer's bill. This procedure often has the disadvantage that the customer may not have actually purchased the discountable product, and the coupon will then be improperly redeemed. There is, however, a more important disadvantage associated with the usual system of discount coupon distribution. The coupons for a particular product are distributed either to a person who has previously bought the same or a related product. From a marketing standpoint, this is contrary to the usual goal in any marketing campaign: to increase the number of customers who buy a particular product, by adding new customers. People who have already bought the product are clearly not new customers. And people who collect coupons from newspapers and mailings typically fall into a very narrow group. First they are part of a group of people who are motivated to collect coupons of any kind, usually for economic reasons. More importantly, customers who collect and redeem a particular coupon will usually have had some prior knowledge of the product, i.e. they are probably not wneww customers. Various other strategies are sometimes used to reach new customers. These include mass mailings of free samples of the product, together with discount coupons, and mass media advertising. Free samples of some types of products cannot be conveniently mailed, however, and many potential new customers may still ignore the mailing. Likewise, mass media advertising may fail to reach a potential new customer, or convince him to try a new product, especially if he is already relatively satisfied with a competitive product. Ideally, what is needed from a marketing standpoint is some way of putting a discount coupon for a selected product in the hands of a customer who uses some other product. The present invention satisfies this aeed. EMI3.1 The present invention resides in apparatus, and a related method, for printing a redeemable discount coupon at a point-of-sale terminal, in response to the purchase of a product. Briefly, and in general terms -the apparatus of the invention comprises means for identifying a triggering product in a customer order, means for associating the triggering product with a coupon deal, and means for automatically printing, at least . one discount coupon for a product EMI3.2 Lotner than the triggering product. The apparatus also preferably includes means for validating a dis count coupon presented for redemption, and means for automatically applying a discount to the price of a product to which the coupon applies. More specifically, the means for identifying a triggering product includes an item file with a triggering field contained within each product re cord, and means for checking the triggering field as each product purchase is processed. The means for associating the triggering product with at least one coupon deal includes a file of coupon index records to which access is obtained by item code, and which contains for each triggering product at least one link to a coupon deal file. Each record of the coupon deal file contains details of a coupon deal, including its value, period of validity, and a code identifying a family of products to which the coupon deal applies. The means for printing the coupon in cludes means for determining a printing priority, and a printing device capable of reproducing a bar-type code in Uniform Product Code format. The apparatus also includes means for producing a log of all printing and redemption transactions. In the disclosed embodiment of the invention, this means includes a log file, and means for storing a new record in the log file at the time of each printing transaction or redemption transaction. The means for validating a coupon include means for reading the bar code on the coupon, which includes a date of printing and a coupon look-up number, means for accessing an associated coupon deal record, means for comparing the date on the coupon with the coupon deal validity date, and means for comparing the product family code and manufacturer's code in the coupon deal record with corresponding codes in the items purchased by the customer. The coupon is declared to be valid only if the date is within the validity period of the coupon deal, and the manufacturer's code and product family group code on the coupon match similar codes in a product that was purchased. The means for automatically applying a discount to the customer order is responsive to the means for validating the coupon. The apparatus in addition may include means for limiting the number of coupons printed per eoupon deal or per customer order, means for maintaining counts of the numbers of coupon creations and redemptions, means for printing a default coupon if the total amount of the customer order exceeds a preselected value, and means for selectively turning on and off triggering or printing, by store, lane, coupon or product item. The system may also include means for triggering the creation of a coupon in response to the redemption of another coupon that was previously printed by the apparatus of the invention. In terms of a novel method, the invention comprises the steps of identifying a triggering product from among a sequence of products purchased by a customer, associating the triggering product with at least one couPon deal involvina a discount on a Dro EMI5.1 duct different from the triggering product, and automatically printing a machine-readable coupon for the customer. More specifically, the step of associating the triggering product with a coupon deal includes the steps of accessing a coupon index record by means of a product item code of the triggering product, the product index record containing one or more coupon look-up numbers; then accessing a coupon deal record by means of each of the coupon look-up numbers in the coupon index record. Each coupon deal record con tails all of the information necessary to print a coupon, and the only remaining steps in coupon creation are extracting the coupon information from the coupon deal record and printing the coupon. The method further includes the steps of updating a count in the coupon deal record after each coupon creation, and after each coupon redemption or misredemption. The steps of coupon validation and redemption include reading a previously created discount coupon, extracting a coupon look-up number from the coupon information, retrieving a coupon deal record corresponding to the coupon presented for validation, comparing a date read from the coupon with an expiration date in the coupon deal record, comparing a manufacturer 8 code and a product family code in the coupon deal record with corresponding codes in each product purchased by the customer, and indicating whether the coupon is a valid one. If the coupon is valid, the redemption process also includes applying a discount to the customer's transaction total. Optionally, the validation process may also include the step of initiating creation of a preselected coupon in response to the redemption of another coupon. It will be appreciated from the foregoing that the present invention represents a significant advance in the field of retail point-of-sale systems. In particular, the invention provides a technique for creating discount coupons at the point of sale and in response to the sale of products other than the ones to which the discount applies. The invention also provides a coupon validation and redemption procedure that permits the coupons previously created by this invention to be inspected by machine and the discount automatically applied if the coupons are valid. Other aspects and advantages of the invention will become apparent from the following more detailed description, taken in conjunction with the accompanying drawings wkiGk#. EMI6.1 FIGURE 1 is a simplified block diagram showing the apparatus of a point-of-sale computer system for use in a retail store; FIG. 2 is a block diagram illustrating interrelationships between the principal files used in the apparatus of the invention; FIG. 3 is a simplified flow chart showing the functions performed in a general wait loop of the terminal program; FIG. 4a is a simplified flow chart showing the functions performed at a checkout terminal during coupon creation; FIG. 4b is a simplified flow chart showing the functions performed in processing queued coupon printing requests during coupon creation; FIG. 5 is a simplified flow chart showing the functions performed by the store controller and a terminal during coupon redemption; FIG. 6 is a simplified flow chart showing date validation functions of FIG. 5; and FIG. 7 is a simplified flow chart showing item validation functions of FIG. 5. EMI7.1 Overview: As shown in the drawings for purposes of illustration, the present invention is concerned with point-of-sale systems for recording sales transactions involving discount coupons. FIG. 1 shows in broad outline the components of such a system. In each store in which the invention is to be used, there is a store point-of-sale controller, indicated by reference numeral 10, and a plurality of checkout terminals 12, each having an associated optical scanner 13. Associated with the store controller 10 are a number of files, indicated at 14, which are used by the controller to provide information to the terminals 12. In a typical point-of-sale system, the files 14 contain a record for each product in the store, and are used to access price and other information concerning the product. The store controller 10 is coupled to a retailer host computer 16, as indicated by line 18, which may be a telephone line or some other communication link. The retailer host computer 16 controls communications with all store controllers in the retailer's various stores, and is responsible for generating various accounting reports, as indicated at 20. The retailer host computer 16 has an associated data base 22 of various files relating to the retailer's entire store operations. Point-of-sale systems of the general type described are not normally equipped to handle discount coupons, except in thfwsense that a checker at one of terminals 12 can key in coupon values to be discounted frdm a customer's bill. In accordance with the present invention, at least one of the checkout terminals 12 has associated with it a coupon printer 24, and the system includes means, to be described, for identifying a triggering product among the items listed in the customer's bill. A triggering product is one that has been selected by a manufacturer to trigger the printing of a coupon for one of the manufacturer 8 products. The files 14 associated with the store controller 10 include an item record file 30, a coupon look-up file 32, and a coupon log file 34. The item record file 30 is a standard price file used in point-of-sale systems, except that it includes a trigger flag, which is an additional one-bit field. There is also room in the item record for two fields known as family group codes. A family group code is a three-digit number assigned by the product manufacturer to identify the product as belonging to a particular group of products. A single product may belong to two such groups, or more if an extended record format is used. As will be discussed in more detail, the family group codes are used in the coupon validation process, in which a coupon presented for redemption is examined for validity in relation to a particular customer bill. For example, a particular coupon may be valid for a family group comprising all different sizes of a product package. In the process of coupon creation, the files 14 are used as illustrated in simplified form in FIG. 2. The coupon look-up file 32 includes records of two types, coupon index records, indicated at 40, and coupon deal records, indicated at 42. When a product in the customer's purchase transaction is detected as a triggering item, by detection of the trigger flag 43 in the item record 44 for that product, the system is able to locate a coupon index record corresponding to the triggering product, as indicated by the arrow 45. The coupon index record 40 contains an item code, i.e. there is a unique coupon index record for every triggering product, and also contains at least one coupon look-up number (CLU). The CLU provides a link to at least one coupon deal record 42, as indicated by the arrows 46. This structure allows a particular triggering product to trigger the printing of one or more coupons, which may pertain to different groups of products, and allows different triggering products to trigger the printing of a coupon for a single product group. Each coupon deal record 42 contains the details of a particular coupon deal, including the value of the discount, the dates of validity of the deal, a message to be printed on the coupon, and various counts recording the activity of the coupon deal. Validation of a coupon presented for redemption involves first reading a coupon look-up number from the coupon. This number relates the coupon to a specific coupon deal record, which has as one of its data fields a manufacturer's number and a family code. If the manufacturer's number and the family code match with similar fields for an item in the customer's order, the coupon is valid, and an appropriate discount is applied to the order. File Formats: The coupon look-up file includes two types of record: the coupon index record (CIR) and the coupon deal record (CDR). Both types of record begin with a six-byte key in the following format: EMI10.1 The X field indicates the record type. If X=OO the record is a coupon index record, and if X =01 the record is a coupon deal record. The five-byte data field is different for each of the two record types, as will be apparent from the following formats. The coupon index record format is as follows: EMI10.2 The item code contains the Uniform Product Code for the product, in binary form. The sixth byte identifies the record as a coupon index record. And the CLU provides a link between a triggering product and a particular coupon deal record. To allow the purchase of one product to trigger more than one coupon deal, a coupon index record may contain up to two additional CLUX fields and flag fields, following the format illustrated above. Accordingly, the purchase of one product can trigger the printing of up to three coupons. The individual bits in the flag field of the coupon index record have the following meanings, where bit 7 is the most-significant bit and bit O is the least-significant bit: Bit 7 - Log only (print inhibited), Bit 6 - High priority coupon, Bit 5 - Minimum balance due applies, Bit 4 - Trigger bit, Bits 3-0 - Trigger item sequence no. (1-9). The trigger bit is a copy of the trigger bit contained in the item record. However, the item record may have its trigger bit reset during routine maintenance, and the trigger bit in the coupon index record are copied back into the item records on a regular, such as daily, basis. The log-only flag is used to inhibit printing, and may be used to monitor the number of coupons that would have been created by the use of a particular triggering product. The high-priority flag enables coupon printing immediately upon detection of the triggering product in a customer's order. For a low priority coupon, printing is deferred until the entire order has been processed. The flag relating minimum balance due permits printing to be inhibited unless a minimum balance due is reached in the customer order. Finally, the trigger item sequence number is a digit that can be used to identify the triggering product in cases where the same coupon deal is triggered by the purchase of different products. The trigger item sequence number is printed on the coupon that is created, and may therefore be used upon redemption of the coupon, to create an appropriate log record permitting analysis of which triggering items resulted in coupon-discounted sales. It will be noted that the coupon index record has a length of from nine to fifteen bytes. The trigger flag in the first flag byte of the record is the only one used. i.e., the trigger bits in flag bytes for any additional CLU's are not used. The CLU# field may be zeroed out to denote that the triggering product is no longer linked to a particular coupon deal. Each coupon deal record contains the details of a coupon to be printed. The format is as follows: CLU# 00 60 00 01 value expn. date manuf t EMI12.1 fam. code flags cont. CLU start date end date EMI12.2 counts lengths offer descn. advert. msg. EMI12.3 The value field contains the coupon discount amount, and the manufacturer's code is a number that uniquely identifies the manufacturer of the products for which the coupon provides a discount. Each coupon deal relates to a discount on any of a family of products, the family codes being assigned by the manufacturer. A discount could apply, for example, to all sizes of a product, or to any group of related products. The expiration date contains a number indicative of the date of expiration of the coupon. This can be a validity period in days from the coupon printing date, or the number of days from some fixed time reference, such as January 1, 1983. The start and end dates are also measured in numbers of days from the same reference, modulo 1000, and indicate the period during which the coupon deal extends, i.e. the period during which coupons will be printed. The continuity CLU field defines another coupon deal that is linked to this one. This can be used to trigger the printing of another coupon when the original one is redeemed. The field is zero if there is no such linked coupon deal. The "lengths" fields are four one-byte fields, each defining the length of one line of text in the offer description and the advertising message that follow. The "counts" fields are four separate two-byte fields to record counts of the total number of coupon triggered, the total number of coupons printed, the total number of coupons redeemed, and the total number of coupons misredeemed. The counts are used for purposes of analysis of coupon usage, both in the coupon creation and coupon redemption phases. The flag field of the coupon deal record contains only three meaningful bits of information. Specifically, the flag bits have the following meanings when set to a one state: Bit 7 - log only (print inhibited), Bit 6 - free coupon (no charge for item), Bit 5 - expiration date is a validity period. When bit 5 is set, the expiration date indicates the number of days beyond the printing date that the coupon is to remain valid. If bit 5 is not set, the expiration date indicates the number of days beyond a preselected reference date that the coupon is to remain valid. The coupon log file is a sequential file into which a new record is written whenever a coupon is printed or a coupon is redeemed. The format of the log file record is as follows: Store terminal operator fun. code flags trans.{ EMI13.1 uPCt CPNI item price date/time EMI14.1 The store number field contains a relative store number. A value 01 indicates a local store and a value 02 indicates a backup store. This code is not critical to the invention, and relates to the use of a back-up store controller (at another store) to control check-out operations. The terminal number indicates the check stand at which the transaction took place. - The function code field has the following possible meanings: F1 (hexadecimal) - coupon creation, F2 - redemption, F3 - store support procedure entry. The flags field has the following meanings: 80 (hexadecimal) - free coupon, 40 - no-sale redemption, 20 - continuity linked (if creation), or - coupon value entered manually (if redemption), 10 - voided redemption, OF - reason code. The low four bits of the flag field are used to record a reason for non-printing or misredemption of a coupon. The various reasons are as follows, where the four-digit value represents the binary state of the field. Coupon printing: 0000 - printed, 1000 - print inhibited store-wide, 1001 - print inhibited at this lane, 1010 - print inhibited for this CLU#, 1011 - print inhibited for this item, 0100 - unable to access coupon index record, 0101 - unable to access coupon deal record, 0010 - transaction below threshold, 0001 - duplicate CLUE, 1100 - printing disabled by operator. B. Misredemption: 0000 - normal redemption, 0001 - item not in order, 0010 - expiration date exceeded, 0100 - match only in manufacturer number, 1000 - accepted (validation disabled). The date/time of the transaction are recorded in the form MMDDSH, where MM is the month, DD the day of the month, and HH the hour of the day. The CPNt field is used to record the entire set of data read from a printed coupon, and the UPCt field records the triggering product code in the case of coupon creations, and the purchased product code in the case of fedemptions. Hardware and Software Overview: The hardware used in this invention is conventional for point-of-sale systems. Various manufacturers supply point-of-sale equipment, and the invention is not limited to any particular configuration. By way of example, the invention is presently implemented using the International Business Machines Corporation (IBM) Programmable Store System, referred to as the IBM 3680. The store controller 10 is an IBM 3650 and the terminals 12 are IBM 3683 terminals. The IBM 3683 Model 3 terminal incorporates a third printer station in addition to a customer receipt printer station, and a journal printer station for maintaining a log of transactions. IBM supplies a software operating system for use in controlling operations in the hardware described. The operating system is referred to as the IBM programmable store system MICROCODE, sometimes referred to as the general control program. IBM also supplies a program product to enable users to write programs for execution in the controller and the terminals. The program product is referred to as SPPS II (Subsystem Program Preparation Support II), and includes languages, macro instructions, and a terminal display language. Communication between the terminals and the store controller is accomplished using a store communications loop and a program of instructions written in IBM 3650 Programmable Store System Microcode. Other application programs that typically form part of the environment of the invention are SDX (Store Data Management) and HCP (Host Communication Program), both sold by IBM. All of these aspects of the invention hardware and software are well known and well defined in trade literature and IBM technical literature. For further information, a useful starting point is the publication nIBM 3680 Programmable Store System Introduction," (GA27-3199-3) published by IBM, Dept. E02, P.O. Box 12195, Research Triangle Park, North Carolina 27709. An application program product written to run in the SPPS II environment provides various checkout and administrative functions for the store. This product is referred to as ISIS (In-Store Information System), produced by Data Connection Limited, Enfield, Middlesex EN2 6UE, England. Coupon Creation: The coupon creation functions performed by the terminals 12 and the controller 10 are shown in FIGS. 3, 4a and 4b. FIG. 3 illustrates a "general wait state" of the terminal, wherein the terminal software cyclicly checks to determine whether any processing is required. Once processing is initiated to a certain stage, a return is made to the general wait state, as will be further explained. The first illustrated block of the general wait state poses the question whether there is any input data to process, as indicated at 50. The input data typically takes the form of bar code scanner input, but may also include keyboard input from the terminal operator. If there is input data to process, the terminal departs from the general wait state and enters an input program sequence, as indicated at 51. If there is currently no input data to process, the next test, posed in block 52, is whether a requested response has been received from the controller 10. As will be described, each of the terminals 12 frequently makes requests to the controller 10 for file access. The requesting program returns control to the general wait state, to await arrival of teh response. If a response has been received, control is transferred to a response return point, as indicated at 53. The response return point sequentially follows the point in the program from which the file access request was made to the controller. If no response has been received from the controller 10, the next question posed in the general wait state is whether a preselected time-out is com plete, as indicated at 54. As will be described, a time-out is initiated after each coupon printing request, to ensure that the coupon printing function does not totally occupy the time of the terminal printer. In the equipment presently employed to implement the invention, coupons are printed at a separate station of the printer, but employing a print head shared by other print stations. In this manner, separate printed documents can be generated at the separate stations, but the single print head behaves in effect like a single printer. Printing of too many coupons can preclude or limit printing of a customer receipt. When the time-out is completed, return is made to the program that initiated the time-out, as indicated at 55. If the time-out is not yet complete, control is transferred back to the beginning of the general wait state loop. In the input processing steps, shown in FIG. 4a, only the purchase and coupon creation functions are shown. If the input involves coupon redemption, as determined in block 58, control is transferred to the redemption processing functions illustrated in FIG. 5. Otherwise, the first step of input processing is to obtain the product code input to the terminal, as indicated in block 60. Then a request is made to the controller 10 for,' the item record corresponding to the input product code. The request for this record, indicated at 61, is one of a number of such requests made to the controller during the input process. In each case, after the request is transmitted to the controller 10, a return is made to the general wait state shown in FIG. 3, to await the return of the response from the controller. When the response is received, the wait state loop of FIG. 3 transfers control back to - the input sequence, at a point immediately following block 61. Next, as shown at 62, a print request is issued to initiate printing of a line on the customer receipt. The print request results in the storing of printable data in a print queue. One function of the system software associated with the terminal is to take printable information from the print queue on a first-in-first-out basis, and to print it using the terminal printer. Up to this point in the input processing, the functions performed are conventional ones that take place regardless of whether any coupon creation is to occur. In the next step, shown at 63, a check is made to determine whether the trigger flag is set in the item record being processed. If the trigger flag is set, a request is made to the controller 10 for the corresponding coupon index record, as indicated at 64, and the coupon look-up number, or numbers, stored in the coupon index record are placed as a coupon request in a coupon queue, as indicated at 65, together with the flags associated with each coupon look-up number in the coupon index record. One of the flags is, of course, the printing priority flag, and this determines the position in which the coupon request will be placed in the coupon queue. High priority coupons are entered behind any already queued high-priority coupons and ahead of any lowpriority items, while low-priority items are entered at the bottom or end of the coupon queue. After entry of a coupon request in the coupon queue, return is made to the general wait state, as indicated at 66. If a product being processed has no coupon trigger flag, as determined in block 63, there is still a possibility that a coupon should be printed during the current transaction. The store has the option of printing a default coupon if no other coupons are printed in a transaction, and provided an optional minimum purchase requirement is met. To determine whether this should be done, a check is made, in block 67, to determine whether the transaction has advanced to the point where the balance due has been registered on the terminal, i.e., all items have been input and processed. If the balance-due point has not been reached, control is transferred to block 66, to return to the general wait state. If the balance-due point has been reached, the next question posed, in block 68, whether any coupons at all have been printed during the entire transaction. If not, a store default coupon is stored in the coupon queue, as indicated at block 69, before a return is made to the general wait state. Input processing proceeds in the manner shown in FIG. 4a, with coupon requests being placed in the coupon queue as corresponding triggering items are detected in the transaction. The process by which coupon requests are removed from the coupon queue is shown in FIG. 4b. After a return from a time-out, from the general wait state, the coupon queue is first checked, as shown at 72, to determine whether there are any coupon requests waiting to be processed. If there are, the next question posed, in block 73, is whether the balance-due point has been reached in the transaction. If it has not, the only coupons eligible for printing are high priority coupons. This is determined in block 74. If there are no items in the coupon queue, or if there are only low-priority items and the balance-due point has not been reached, control is transferred to block 75, which selects a zero or near-zero time-out period. Then, in block 76, the time-out is initiated and a return is made to the general wait state. Control will: very soon pass back again from the general wait state, to check the condition of the coupon queue once more. If the balance-due point has been reached, as determined in block 73, the next test, in block 77, is to determine whether the end of the transaction has been reached, that is whether the terminal operator has received payment for the sale and has closed out the transaction in preparation for beginning a new one. If this has not occurred, control is passed to the next step, at block 78, to select the next unprocessed item in the coupon queue. If the end of the transaction has been reached, however, a log-only flag is set, in block 79, before passing to block 78. Control also passes to block 78 if a highpriority coupon creation request is detected in block 74. At this point, a coupon creation candidate has been selected from the coupon queue, but it is still subject to a number of further tests before an actual print request is made to print the coupon. First, in block 80, a check is made to determine if the same coupon has already been printed in this transaction. Only one coupon of the same coupon look-up number is normally permitted for each transaction. Next, if there have been no previous coupons of the same kind, a check is made in block 81 to determine whether a minimum purchase threshold has been reached. For each coupon deal, there is an option to prevent printing of the coupon if a designated (store-wide) total purchase minimum is not reached. If the answer obtained from block 81 is negative, control is transferred to block 75, to exit to the general wait state, but without removing the coupon request from the coupon queue. The next time the coupon is processed, the total purchase amount is again checked. If the coupon is never printed, because the threshold purchase amount is not reached by the end of the transaction, a log record is created for the coupon. In block 82, a check is made on the total count of coupons printed for this transaction. If the number exceeds a maximum set for this particular checkout terminal, no further printing of coupons is permitted. In addition, printing is permitted if a print inhibit flag has been set, as determined in block 83. If printing is inhibited, or if the maximum, coupon count is reached, or if the coupon has been printed already, then the log-only flag is set, as indicated in block 84, before advancing to the step shown in block 85, in which the complete coupon deal record, corresponding to the currently processed coupon queue entry, is requested from the controller 10. Next, if the log-only flag is not set, as determined in block 86, the coupon is formatted for printing, as indicated in block 87, using the infor- mation obtained from the coupon deal record. Then a print request is issued, as indicated in block 88, to place in the print queue the printable data that is to appear on the coupon. This data will include bar code data that will result in the printing of a coupon with pertinent information encoded in bar-code form. The next step, shown at block 89, is to prepare a log record of the coupon creation, or in the case of log-only situations, to create a log record of a coupon request that did not result in printing of a coupon. The log-only flag is checked again in block 90, after the logging step of block 89. If the log-only flag is set, control is transferred to block 75, to set a zero time-out and then to return to the general wait state. If the log-only flag is not set, i.e., a coupon is to be printed, a six-second delay or time-out is selected, in block 92, before returning to the general wait state through block 76. The time-out ensures that the printer will not be totally occupied with the coupon printing function, but will be free for at least the next six seconds to print other material, such as portions of the customer receipt. An important aspect of coupon creation is that one of the fields printed on the coupon in bar code form is a trigger item sequence number, obtained from the coupon index record flags. This number identifies the triggering product or item, and can be used to compile statistics relating the printed coupon to the items that triggered its printing. The other fields of data printed on the coupon in bar code form include the coupon value, the expiration date, the manufacturer's code, and the product family code to which the coupon deal applies. Printed on the coupon in human-readable form are the offer description and the advertising message, as well as some of the information also printed in bar code form. Coupon Validation and Redemption: When a store-printed coupon is presented for redemption, it must first be validated both with respect both to the date of its presentation and the product for which it is presented. FIG. 5 shows the functions that are performed during the validation phase. First, at block 120, coupon data is input at a terminal. The coupon may be one that was created at the store in accordance with the procedures described, or it may be a conventional coupon. this determination is made in block 122. Conventional coupons, which may be identified as a Number System 5 coupon in accordance with Uniform Product Code guidelines, are handled by first determining whether an item with the same family group code and manufacturer code has been sold in this transaction, as indicated in block 124. If no match is found, an error message is transmitted to the controller, as indicated in block 126. If a match is found, the appropriate discount is applied to the customer transaction, as shown in block 128. Of more significance to the invention is the treatment of coupons that were printed in the store as described above. Such coupons are identified as number System 4 coupons in block 122. The terminal makes a request to the controller for a coupon deal record, based on the coupon look-up number encoded on the coupon. This is indicated in block 130 and broken line 131. The controller then reads the appropriate coupon deal record from its coupon look-up file, updates the counts in the record, as indicated in block 132, and transmits it to the terminal, as indicated by broken line 133. If the requested coupon deal record does not exist, an error message is returned to the terminal and the coupon is rejected as invalid. Next, the terminal validates the date of presentation of the coupon, as indicated in block 134. This logic being expanded in FIG. 6. Then, the terminal validates the coupon with respect to the item for which a discount is requested, as shown in block 136 and FIG. 7, and applies the discount to the customer's transaction, as shown in block 138. An important step in validation processing is to check coupon deal record to determine if a "continuation" coupon is associated with this particular deal. A continuation coupon is one generated as a result of the redemption of another coupon. This process step is indicated in block 139. If a continuation coupon is to be created, a coupon request is entered in the coupon queue at this point. The coupon is generated in its turn by the program sequence shown in FIG. 4b. Finally, the terminal creates a log record, in block 140, and transmits it to the controller, as indicated by broken line 142. The details of date validation are shown in FIG. 6. The first question posed in this logic is whether the coupon date is equal to the current day's date, as shown in block 144. If the dates are equal, an invalid date is indicated, as shown at 146. Although not critical to the invention, this aspect of the date validation is usually desirable, to encourage the customer to return to the store to redeem the coupon. The next test in the date validation sequence is to determine whether the expiration date is a fixed one or is determined from the date of coupon printing. This is shown in block 148. If a fixed expiration date is used, the expiration date is obtained from the coupon deal record, as indicated at 150. On the other hand, if the expiration date is coupon-dependent, the expiration date is determined from the coupon date and the validity period stored in the coupon deal record, as indicated in block 152. Finally, in block 154 the current date is subtracted from the expiration date and the validity of the coupon is determined. Return to the calling program sequence is made with an accept or reject flag to indicate the validity of the coupon date, as indicated at 156 and 158 Item validity of a coupon is determined as shown in FIG. 7 by first scanning a transaction buffer in the terminal, as indicated at 160. The transaction buffer contains a record of all purchased items in the transaction. For each item purchased, a comparison is made between the manufacturer's code, as indicated at 162, and family group code, as indicated at 164 in the coupon deal record and the corresponding fields in the transaction buffer. If a match is found, the item validation results in acceptance of the coupon, as indicated at 166, and if no match results the coupon is rejected, as indicated at 168. File Maintenance: Maintenance of the controller files used in coupon creation and redemption is effected by means of a sequential maintenance file, which may be prepared at a site remote from the store, and then processed at the store controller to effect the desired changes in the files. The maintenance functions include adding, deleting or replacing coupon deal records and coupon index records, enabling and disabling coupon triggering by item, enabling and disabling coupon printing by item, copying the coupon by file, and retrieving the coupon counts. Other functions include reorganizing the coupon-look-up file, clearing the file before a reload, and adding or replacing system configuration data. The latter function includes enabling or disabling coupon creation by coupon deal, enabling or disabling printing by store or checkout lane, enabling or disabling triggering by store or checkout lane, enabling or disabling coupon validation but continuing to log redemptions and misredemptions, updating a per-transaction coupon maximum, by checkout lane, and updating a transaction threshold. The format of the maintenance file is as follows: Command 1 (one byte) Data Data Data End-of-data record Command 2 Data End-of-data record End-of-document record Four commands do Rot require accompanying data. These are commands to reorganize the coupon look-up file, create a report log, report all coupon counts, and clear the coupon look-up file for a reload. The specific formats for effecting these maintenance commands is not critical to the present invention. Any desired programming approach may be employed to make changes to the controller files as desired. It will be appreciated from the foregoing that the present invention represents a ssignificant advance in the field of retail point-of-sale systems. In particular, the invention provides a new approach for distributing discount coupons to retail customers, based on the purchase of products other than the ones to which the discount coupons apply. The invention also provides means for validating coupons printed in this manner, both for date validity and item validity, and automatically applying a discount to the customer sales transaction. It will also be appreciated that, although a specific embodiment of the invention has been described in detail for purposes of illustration, various modifications may be made without departing from the spirit and scope of the invention. Accordingly, the invention is not to be limited except as by the appended claims. The features disclosed in the foregoinci description, in the following claims and/or in the accompanying drawings may, both separately and in any combination thereof, be material for realising the invention in diverse forms thcreof.

Claims: CLAIMS We claim: 1. Apparatus for printing a redeemable coupon in a retail store, in response to the purchase of an item, the system comprising: a plurality of terminals at customer checkout locations, each having means for reading product codes on purchased items in a customer order; a store controller with which the terminals can communicate, the store controller having access to an item record file containing price and other information for each product item; means for identifying in the customer order a triggering product, which has been preselected to trigger printing of a coupon; means for associating the triggering product with at least one coupon deal; and means for automatically printing at least one discount coupon for a product to which the coupon deal. applies. 2. Apparatus as set forth in claim 1, wherein: the means for identifying the triggering product includes a trigger field in each record of the item record file. 3. Apparatus as set forth in claim 1 or 2, wherein: the means for automatically printing includes means for printing in optically scannable barcode form. 4. Apparatus as set forth in claim 1, 2 or 3, wherein the means for automatically printing includes: means for printing high-priority coupons during a sales transaction; and means for printing low-priority coupons only after a preselected point is reached in the sales transaction. 5. Apparatus as set forth in any preceding claim, wherein the means for automatically printing includes: means for printing on the coupon a code identifying the triggering product. 6. Apparatus as set forth in any preceding claim, and further including: means for inhibiting coupon printing based on the occurrence of any of a number of preselectable conditions. 7. Apparatus as set forth in any preceding claim, and further including: means for initiating printing of a default coupon if no other coupons are created in the transaction. 8. Apparatus as set forth in any preceding claim, wherein: each triggering product can generate a plurality of coupon deals; and each coupon deal can be triggered by any of a plurality of triggering products. 9.Apparatus as set forth in any preceding claim, including means for redeeming a coupon printed by the means for automatically printing. 10. Apparatus as set forth in claim 9, wherein the means for redeeming the coupon includes: validation means, for validating the coupon with respect to its date and the item to which it pertains; and means for automatically applying a discount to the customer order. 11. Apparatus as set forth in claim 17, and further including: means for optionally initiating printing of another coupon different from¯the one presented for redemption. 12. For use in a retail store point-of-sale system having a plurality of terminals at customer checkout locations, each with means for reading product codes on purchased items in a customer order, and a store controller with which the terminals can communicate, the store controller having access to an item record file containing price and other information for each product item, a method for printing a redeemable coupon in response to the purchase of an item, the method comprising the steps of: identifying in the customer order a triggering product, which has been preselected to trigger printing of a coupon; associating the triggering product with a coupon deal; and automatically printing at least one discount coupon for a product to which the coupon deal applies. 13. A method as set forth in claim 12, wherein: the step of identifying the triggering product includes retrieving a trigger field in each record of the item record file. 14. A method as set forth in claim 12 or 13, and further including: redeeming a coupon printed by the step of automatically printing. 15. A method as set forth in claim 14, wherein the step of redeeming the coupon includes: validating the coupon with respect to its date and the item to which it pertains; and automatically applying.a discount to the customer order. 16. A method as set forth in any one of claims 12 to 15, wherein: the step of automatically printing includes printing a portion of the coupon in optically scanable bar-code form. 17. A method as set forth in any one of claim 12 to 16, wherein the step of automaticaLly printing includes: printing high-priority coupons during a sales transaction; and printing low-priority coupons only after a preselected point is reached in the sales transaction. 18. A method as set forth in any one of claims 12 to 17, wherein the step of automaticallv printing includes: printing a code identifying the triggerina product. 19. A method as set forth in any one of claims 12 to 18, and further including: inhibiting coupon printing based on the occurrence of any of a number of preselectable conditions. 20. A method as set forth in any one of claims 12 to 19, and further including: initiating printing of a default coupon if no other coupons are created in-the transaction. 21. An apparatus or method according to any preceding claim, wherein the product to which the coupon deal applies is different from the triggering product.

Inventors: MINDRUM, THOMAS, O'BRIEN, MICHAEL R., OFF, GEORGE, SCROGGIE, MICHAEL C.
Applicants: CATALINA MARKETING CORPORATION
Application year: 1985
Main classification: G07G5
IPC codes: G06Q30, G07F9, G07G1, G07G5