Abstract:
A system and method for managing the sale of a group of products at a single price based on sales performance data of the products is presented. The method and apparatus include offering a plurality of products by identifying products that are complementary, verifying acceptable sales performance for the complementary products, identifying a package including the complementary products having acceptable sales performance, determining a package price for the products included in the package, and offering the products included in the package at the package price. The status of the package is set to invalid when a time interval in which the package is available has expired. The method and apparatus further include package offer redemption by identifying a package including the products identified, determining a package price for the products included in the package, processing a sale of the products included in the package, adjusting sales performance data based on the sale of the products, and setting a status of the package to invalid when the sales performance data for the products included in the package fail to meet limits.

Description:
CROSS-REFERENCE TO RELATED CORRESPONDING APPLICATIONS 
     This is a continuation-in-part of commonly owned, co-pending U.S. patent application Ser. No. 09/012,163 entitled &#34;Method and Apparatus for Automatically Vending a Group of Products&#34; filed Jan. 22, 1998, which is a continuation-in-part of commonly owned, co-pending U.S. patent application Ser. No. 08/947,798 entitled &#34;Method and Apparatus for Dynamically Managing Vending Machine Inventory Prices&#34; filed Oct. 9, 1997, and a continuation-in-part of commonly owned, co-pending U.S. patent application Ser. No. 08/920,116 entitled &#34;Method and System for Processing Supplementary Product Sales at a Point-of-Sale Terminal&#34; filed Aug. 26, 1997, which is a continuation-in-part of U.S. patent application Ser. No. 08/822,709 entitled &#34;System and Method for Performing Lottery Ticket Trransactions Using Point-of-Sale Terminals&#34; filed Mar. 21, 1997, the entirety of each being incorporated herein by reference. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to methods and apparatuses for processing sales. More particularly, the present invention relates to a method and apparatus for processing sales of multiple products at a single price based on sales performance data of the products. 
     2. Description of the Related Art 
     The retail industry often offers a group of products together at a single price. By way of example, fast food restaurants have been known to offer meals which include a hamburger, French fries and a soda at a single price which is less than the sum of the prices of the individual products. Alternatively, a product may be added, e.g., a complementary apple pie is provided with the purchase of a hamburger, French fries and a soda at their regular price. These meals are typically ordered from &#34;order-by-number&#34; or &#34;package deal&#34; menus, thereby providing the customer a convenient way to order multiple products. Often these products are so related that they are commonly purchased during a single transaction, making them ideal candidates for a packaged type offering. Moreover, the customer is encouraged (in effect rewarded) to purchase more than the customer may have initially intended. For example, a customer that may have intended only to purchase the hamburger and soda may respond to the promotion by purchasing the packaged meal that also includes French fries for a slightly higher price. 
     Other retailers commonly offer a plurality of products, which may be the same or different but are typically closely related, at a single price. For example, a clothing store may offer any two sweaters at a single price which is lower than the sum of the prices of the two sweaters individually. Alternatively, an additional product such as a fourth pair of socks may be offered for free to those who purchase three pairs of socks. These methods are typically employed in a &#34;clearance&#34; sale, e.g., at the end of a season. Clearance sales are usually only implemented when demand levels fall below a certain threshold at which the retailer decides that a sale is necessary to sell the surplus inventory. Since such decisions are not continuously decided in proportion to demand patterns, retailers miss an opportunity to optimize decisions as to such sales. The consumer&#39;s perceived value of the package allows the retailer to sell products that otherwise may not be sold. However, the purported value of a package offer may not be perceived accurately by consumers, since package pricing allows the retailer to disguise the price of the individual products in the package which may be discounted or inflated. Regardless, a customer is encouraged to purchase more than they may have initially intended. 
     Nevertheless, retailers are still faced with the problem of selling inventory that has become distressed. Retailers typically offer their distressed inventory at cost or even at a loss to make room for more profitable merchandise or to avoid a substantial loss in their investment. Inventory becomes distressed when the supply exceeds demand, such as when a product becomes unpopular at market. The risk of inventory becoming distressed increases with products that are perishable or that will expire. The closer products get to perishing or expiring, the less likely it becomes that the retailer will sell the product for a profit providing demand at least remains constant or diminishes. If the product expires before it is sold, the retailer will lose all revenue opportunities associated with that product. 
     Consequently, retailers frequently dispose of expired products they were unable to sell. By way of example, fast food restaurants generally throw out any prepared food that has not been sold by the time the restaurant closes. Also, unsold magazines and newspapers are disposed of when they expire. 
     In recent years, an economic theory known as &#34;revenue management&#34; has been proposed to solve inventory related problems. The theory states that markets are most efficient when prices are dynamically adjusted in proportion to supply and demand. The practice of revenue management has proven to be highly successful in the airline industry. More specifically, airlines use revenue management principles to optimize their profits on perishable inventory by selling seats at prices that vary in accordance with supply and demand. Furthermore, the grandparent application to the present invention, U.S. patent application Ser. No. 08/947,798 entitled &#34;Method and Apparatus for Dynamically Managing Vending Machine Inventory Prices,&#34; filed Oct. 10, 1997, employs such revenue management concepts in vending machines. However, a need clearly exists to solve inventory problems in retail environments. 
     SUMMARY OF THE INVENTION 
     An object of the present invention is to enable a retailer to offer groups of goods at discounted prices in accordance with dynamic measurements of supply and demand. 
     An advantage of the present invention is that by pairing low demand products with high demand products, a retailer can utilize the popularity of one product to sell another less popular product. Another advantage of the present invention is that by requiring consumers to purchase a package in order to be eligible for a discount, a retailer can substantially discount products without exposing its price floor. 
     According to the present invention, a method and apparatus are disclosed for offering a plurality of products. A package offering system identifies the product identifiers of products that are complementary, and verifies acceptable sales performance of the complementary products. The system identifies a package which includes the product identifiers of the complementary products having acceptable sales performance, and determines a package price for those products. A status of the package is set to invalid upon expiration of a time interval in which the package is available. 
     In accordance with the present invention, package offer redemption includes receiving a plurality of product identifiers that are indicative of a plurality of products. A package including the received product identifiers is identified and a package price for those products is determined. Then, a sale of the products is processed, and sales performance data are adjusted based on the sale of the products. The status of the package is set to invalid when the sales performance data for the products fail to meet established limits. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of a package offering system in accordance with the present invention; 
     FIG. 2 is a block diagram of the server in FIG. 1; 
     FIG. 3 is a block diagram of a point-of-sale (POS) terminal in FIG. 1; 
     FIG. 4 is a tabular representation of the INVENTORY TABLE DATABASE of FIG. 2; 
     FIG. 5 is a tabular representation of the PACKAGE ASSEMBLY RULES TABLE DATABASE of FIG. 2; 
     FIG. 6 is a tabular representation of the PACKAGE OFFER TABLE DATABASE of FIG. 2; 
     FIGS. 7A-C are a flowchart illustrating the operation of the PERIODIC PACKAGE OFFER ASSEMBLY PROCESS PROGRAM of FIG. 2; 
     FIGS. 8A-C are a flow chart illustrating the operation of the PACKAGE OFFER REDEMPTION PROCESS PROGRAM of FIG. 2; and 
     FIGS. 9A-B are a flow chart illustrating the operation of the PERIODIC PACKAGE OFFER VALIDITY VERIFICATION PROCESS PROGRAM of FIG. 2. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The following terms are used throughout the remainder of this section. For purposes of construction, such terms shall have the following meanings: 
     The terms &#34;item&#34;, &#34;product&#34;, &#34;goods&#34;, and &#34;services&#34;, unless otherwise specified, are intended to refer to any item and/or service sold or offered by a retailer. Accordingly, for purposes of construction, the terms &#34;item&#34;, &#34;product&#34;, &#34;goods&#34; or &#34;services&#34; shall be treated as synonyms. 
     The terms &#34;store&#34;, &#34;retailer&#34;, and &#34;retail establishment&#34;, unless otherwise specified, are intended to refer to any retail merchandising establishment that caters to the public and that allows customers to select products and services. Retail establishments may be a retail store such as a warehouse, a supermarket or grocery store, a department store, a restaurant or any other retail or merchandising establishment. Accordingly, for purposes of construction, the terms &#34;store&#34;, &#34;retailer&#34;, and &#34;retail establishment&#34; shall be treated as synonyms. 
     The terms &#34;customer&#34;, &#34;consumer&#34; and &#34;shopper&#34;, unless otherwise specified, are intended to refer to any person, group of people, or other entity that visits or otherwise patronizes a retailer and who purchases products and/or services from the retailer. 
     The term &#34;purchase&#34;, unless otherwise specified, is intended to refer to one or more items that a customer buys from a retail establishment. 
     The term &#34;complementary product&#34;, unless otherwise specified, is intended to refer to a product that may be advantageously paired by price or product type with another such as by price or product type. 
     The term &#34;component product&#34;, unless otherwise specified, is intended to refer to a single product that is part of a package. 
     The term &#34;component product price&#34;, unless otherwise specified, is intended to refer to the price of a product that is sold as part of a package. 
     The term &#34;individual product price&#34;, unless otherwise specified, is intended to refer to the price of a product that is not sold as part of a package. 
     The term &#34;package&#34;, unless otherwise specified, is intended to refer to a group of at least two component products. 
     The term &#34;package price&#34;, unless otherwise specified, is intended to refer to the price of a group of at least two component products. 
     The term &#34;product family&#34;, unless otherwise specified, is intended to refer to a classification of goods or merchandise, such as beverages. 
     The term &#34;product identifiers&#34;, unless otherwise specified, is intended to refer to an identifier corresponding to a product that may be used to determine information regarding that product. 
     The aforementioned and defined terms are used below to describe embodiments of the present invention. Where appropriate, like terms are referred to with like reference numerals. 
     The following paragraphs describe the structural and operational aspects of the present invention. The structural aspects are illustrated first and are followed by a description of the operational aspects. 
     In terms of structure, reference is now made to FIG. 1. Therein depicted is a block diagram representing a package offering system 100 for a retail establishment equipped to identify products that are complementary, identify a package including the complementary products and the availability thereof based on sales performance, and determine a package price. System 100 is further equipped to offer the complementary products at the package price. System 100 is still further equipped to adjust sales performance data for complementary products sold. System 100 includes a server 102 which is connected through a network 104 (e.g., a local area network (LAN)) to a plurality of point-of-sale (POS) terminals (i.e., POS TERMINAL 106, POS TERMINAL 108 and POS TERMINAL 110). System 100 may include any number of POS terminals. Further, network 104 may include wireless connections, radio based communications, telephony based communications, and other network-based communications such as wide area networks distributed via open architectures such as by the Internet. 
     Referring now to FIG. 2, server 102 is a data processing system including a processor 112, a random access memory unit (RAM) 114, a read-only memory unit (ROM) 116, an internal clock 118, a data storage device 120, and a communication port 122 for communicating via network 104 with POS terminals. An input device 124 (e.g., a keyboard) and an output device 126 (e.g., a display, a computer monitor, LCD (liquid crystal display) price tags, kiosks, shopping cart monitors, hand held PDAs (&#34;Personal Data Assistants&#34;), electronic billboards/screens or receipt/coupon printers) interface with processor 112. 
     Data storage device 120 is an appropriate combination of magnetic, semiconductor and/or optical memory. It will be appreciated that data storage device 120 may be one that consists of multiple disk sub-systems which may be geographically dispersed and in communication via a network architecture. The implementation of local and wide-area database management systems to achieve the functionality of data storage device 120 will be understood by those skilled in the art. 
     Data storage device 120 stores an INVENTORY TABLE DATABASE 400, a PACKAGE ASSEMBLY RULES TABLE DATABASE 500, a PACKAGE OFFER TABLE DATABASE 600, a PERIODIC PACKAGE OFFER ASSEMBLY PROCESS PROGRAM 700, a REDEMPTION PROCESS PROGRAM 800, and a PERIODIC PACKAGE OFFER VALIDITY VERIFICATION PROCESS PROGRAM 900. INVENTORY TABLE DATABASE 400 maintains inventory related data (including demand rate) for each product. PACKAGE ASSEMBLY RULES TABLE DATABASE 500 maintains a set of rules for determining products to be combined to compose a package. PACKAGE OFFER TABLE DATABASE 600 maintains offer criteria for each package. PERIODIC PACKAGE OFFER ASSEMBLY PROCESS PROGRAM 700 retrieves inventory data from INVENTORY TABLE DATABASE 400, compatible product data for a package from PACKAGE ASSEMBLY RULES TABLE DATABASE 500 and package offer criteria from PACKAGE OFFER TABLE DATABASE 600 to provide an offer of the package. REDEMPTION PROCESS PROGRAM 800 retrieves inventory data from INVENTORY TABLE DATABASE 400, compatible product data for a package from PACKAGE ASSEMBLY RULES TABLE DATABASE 500 and package offer criteria from PACKAGE OFFER TABLE DATABASE 600 to provide for redemption of a package and to test package offer validity. PERIODIC PACKAGE OFFER VALIDITY VERIFICATION PROCESS PROGRAM 900 retrieves inventory data from INVENTORY TABLE DATABASE 400, compatible product data for a package from PACKAGE ASSEMBLY RULES TABLE DATABASE 500 and package offer criteria from PACKAGE OFFER TABLE DATABASE 600 to provide an offer of the package offer if valid as determined by a pre-defined time period. 
     Referring now to FIG. 3, the POS terminal 106 is shown. POS terminal 106 is a data processing system which includes a processor 128, a random access memory unit (RAM) 130, a read-only memory unit (ROM) 132, an internal clock 134, and a communication port 136 for communicating via network 104 with server 102. An input device 138 (e.g., a keyboard or a scanner) and an output device 140 (e.g., a display, a computer monitor, LCD (liquid crystal display) price tags, kiosks, shopping cart monitors, hand held PDAs, electronic billboards/screens or receipt/coupon printers) interface with processor 128. Input device 138 generates signals that identify the product being purchased as entered at a keyboard or as scanned by a scanning devices, such as a UPC (Universal Product Code) bar code reader. POS terminal 106 is adapted to receive data signals from the input device and process the information in combination with data received from server 102 via network 104. 
     Processor 128 generates data representative of the products being purchased or offered, and transmits the data via network 104 to server 102. The server 102 determines package availability and compliance, and if appropriate, determines the package price of the entered item. The package price is then transmitted via network 104 from server 102 to POS terminal 106 where it is displayed, printed and/or utilized in processing a sale. Once a package price is established, the sale of complementary products in the package is processed in a known manner. For example, POS terminal 106 may print a customer sales receipt of the transaction. The receipt may include the name of the products purchased, the package price, the time/date, the subtotal of purchase, any applicable taxes, and the total price of the purchase. 
     The INVENTORY TABLE DATABASE 400 is used in the present invention to manage data including product unit price, available inventory and demand rate for product identifiers. The PACKAGE ASSEMBLY RULES TABLE DATABASE 500 is used in the present invention to manage data regarding rules defining a package, and the PACKAGE OFFER TABLE DATABASE 600 is used in the present invention to manage data regarding package offer criteria. Each of the tables has a column and row arrangement whereby columns define fields and rows define records stored according to the field specification of the columns. Of course, many changes and alterations may be made to such tables to effectuate various functions depending on particular design and implementation details. Such changes and alterations will be apparent to those skilled in the art. 
     FIG. 4 illustrates an example of INVENTORY TABLE DATABASE 400 which stores records relating to inventory of products. In TABLE DATABASE 400 there are four columns which store data related to PRODUCT ID 402, PRODUCT UNIT PRICE 404, AVAILABLE INVENTORY 406 and DEMAND RATE 408. In TABLE DATABASE 400 the first record contains information related to inventory data for an exemplary product having a PRODUCT ID (product identifier) of &#34;PRODUCTFAM --  A --  UNIQUEPRODID --  7&#34;. The inventory data for this first record includes a PRODUCT UNIT PRICE of &#34;$1.00&#34;, an AVAILABLE INVENTORY of &#34;15&#34; and a DEMAND RATE of &#34;20/DAY&#34;. The other records include inventory data for the other exemplary products identified. 
     FIG. 5 illustrates an example of PACKAGE ASSEMBLY RULES TABLE DATABASE 500 which stores records relating to a set of rules for defining a package. In TABLE DATABASE 500 there are six columns, which store data related to PACKAGE OFFER RULE ID 502, NUMBER OF COMPONENT PRODUCTS IN PACKAGE OFFER 504, PACKAGE OFFER PRICE FACTOR 506, COMPLEMENTARY PRODUCT FAMILIES 508, COMPLEMENTARY DEMAND RATE RULES 510 and PACKAGE OFFER REDEMPTION RULE(S) 512. In TABLE DATABASE 500 the first record contains information related to rules for a package having a PACKAGE OFFER RULE ID of &#34;R1&#34;. The rules for this package include a NUMBER OF COMPONENT PRODUCTS IN PACKAGE OFFER of &#34;2&#34;, a PACKAGE OFFER PRICE FACTOR of &#34;-10% (PRODUCT ID 1+PRODUCT ID 2)&#34; indicating a 10% discount off the combined component prices, a COMPLEMENTARY PRODUCT FAMILIES of &#34;PRODFAM --  A, PRODFAM --  B; PRODFAM --  A, PRODFAM --  C; PRODFAM --  B, PRODFAM --  C&#34; identifying groupings of complementary products for this package offer, a COMPLEMENTARY DEMAND RATE RULES of &#34;&gt;15/DAY and &lt;5/DAY&#34; indicating the demand rate range within which the package offer can be assembled, and a PACKAGE OFFER REDEMPTION RULE(S) of &#34;WHILE SUPPLIES LAST&#34; indicating other conditions that limit the package offer assembly. The other record includes rules for the other exemplary package offer identified. 
     FIG. 6 illustrates an example of PACKAGE OFFER TABLE DATABASE 600 which stores records relating to a package offer criteria. In TABLE DATABASE 600 there are six columns, which store data related to PACKAGE OFFER ID 602, PACKAGE OFFER RULE ID 604, PACKAGE OFFER PRICE 606, PACKAGE OFFER REDEMPTION RULES 608, COMPONENT PRODUCTS 610, AND PACKAGE OFFER STATUS 612. In TABLE DATABASE 600 the first record contains information related to criteria for offering a package having a PACKAGE OFFER ID of &#34;P1&#34;. The criteria for offering this exemplary package include a PACKAGE OFFER RULE ID of R1, a PACKAGE OFFER PRICE of $2.70, a PACKAGE OFFER REDEMPTION RULE(S) of &#34;WHILE SUPPLIES LAST&#34;, a COMPONENT PRODUCTS &#34;PRODFAM --  A --  UNIQUEPRODID --  7, PRODFAM --  B --  UNIQUEPRODID --  9&#34;, and a PACKAGE OFFER STATUS of &#34;VALID&#34;. The other record includes offer criteria for the other exemplary package offer identified. 
     The structure and arrangement of the tables described herein, including their columns and fields, may be altered to suit various design requirements. Many columns may be added to any one or all of the tables to carry out certain functionality control within a data processing system employing the table databases. Such additions and changes will be readily apparent to those skilled in the art. 
     The aforementioned descriptions were concerned with the structural aspects of an embodiment and corresponding components of the present invention. Accordingly, it should be understood that server 102 and POS terminals 106, 108, 110 of package offering system 100 shown in FIGS. 1-3 and the database table databases 400, 500, 600 illustrated in FIGS. 4-6 have been designed to operate and function together. The flowcharts depicted in FIGS. 7 through 9 and described below illustrate how such structures operate together. In particular, described below are the steps carried out by package offering system 100 within a retail establishment to offer and sell complementary products in a package to customers. 
     Reference is now made to FIGS. 7A-C. Depicted therein is a flowchart that illustrates the steps of a process performed by a data processing system, such as package offering system 100, in accordance with PERIODIC PACKAGE OFFER ASSEMBLY PROCESS PROGRAM 700. 
     Although PERIODIC PACKAGE OFFER ASSEMBLY PROCESS PROGRAM 700 functions to assemble a single package offer, it can be repeated for every package offer rule. 
     At Step 702, a COMPLEMENTARY PRODUCT FAMILY which corresponds to a given record of PACKAGE OFFER RULE ID 502 in DATABASE 500 is identified. The determination of which product families are complementary is given in the database and is based on the sales performance data. Having identified a COMPLEMENTARY PRODUCT FAMILY, the next Step 704 is to search DATABASE 400 for records corresponding to the complementary products defined by the identified COMPLEMENTARY PRODUCT FAMILY. Then at Step 706 corresponding records are retrieved from DATABASE 400, and at step 708 an inquiry is made to determine if there is sufficient inventory of each complementary product. Inventory levels are indicated by the corresponding AVAILABLE INVENTORY 406 in DATABASE 400 for each record. If available inventory for any of these complementary products is not sufficient, then this process is ended at Step 709. If available inventory for each of the complementary products is sufficient then the process continues to Step 710. At step 710 an inquiry is made to determine if the DEMAND RATE for each of the found records satisfies COMPLEMENTARY DEMAND RATE RULES recited for the corresponding record in DATABASE 500. If the demand rate for any of these complementary products does not satisfy the rule then this process is ended at Step 709, and if the demand rate for each of the complementary products does satisfy the rule then the process continues at Step 712. At Step 712 DATABASE 600 is searched to determine component products corresponding to the complementary products. At Step 714 an inquiry is made to determine if these complementary products are found in the search of DATABASE 600. This Step 714 ensures that products already being offered in one package will not be offered in another package. In an alternate embodiment, a product can be offered simultaneously in several packages. If these complementary products are found as a defined package in DATABASE 600 then this process is ended at Step 716. If these complementary products are not found as an assembled package in DATABASE 600 then the process continues at Step 718. At Step 718 these complementary products are entered as component products in DATABASE 600 as a new record. Then at Step 720 a PACKAGE OFFER ID is generated for the new record. At Step 722 this new PACKAGE OFFER ID is entered in the PACKAGE OFFER ID field 602 in DATABASE 600 corresponding to this new record. At Step 724 a price is calculated for this package (new record) and entered as a package offer price in DATABASE 600 for this new record. At Step 726 a package offer redemption rule is retrieved from DATABASE 500 for a corresponding given rule. Then at Step 728 the retrieved package offer redemption rule is entered as a package offer redemption rule in DATABASE 600 for the new record. At Step 730 a package offer status for this new record is set to &#34;VALID&#34;. This new package offer (record) is then output via output device 126 or output device 140 at step 731. The process then ends at Step 732. 
     FIGS. 8A-C are a flowchart illustrating the steps of a process performed by a data processing system, such as package offering system 100, as directed by REDEMPTION PROCESS PROGRAM 800. At checkout, REDEMPTION PROCESS PROGRAM 800 enables consumers to take advantage of package offers and to purchase products conventionally by adding package offer prices to the transaction total after all products in the transaction have been entered in the POS terminal. This way, the system waits for all the items in a transaction to &#34;run through&#34; (be entered into the POS terminal) before a package price is applied. Alternatively, the package price can be added to the running sub-total during the transaction (while being &#34;run through&#34;) as soon as it is determined that the necessary component products exist to qualify for the package offer price. Additionally, this process also tests the validity of package offers after redemption. 
     Once REDEMPTION PROCESS PROGRAM 800 is selected processing starts at Step 802 where input device 138 of one of a POS terminal obtains a product identifier for a product. The identifier is then communicated via network 104 to server 102. At Step 804 DATABASE 600 is searched for a component product corresponding to this product identifier. If this product identifier is found in the records of DATABASE 600 then it is stored in a temporary memory location at Step 806 and processing continues at Step 810, described below. If this product identifier is not found in the records of DATABASE 600 then the process continues to Step 808. At Step 808 a product unit price corresponding to the product identifier, is retrieved from Inventory Table DATABASE 400. At Step 809, the corresponding product unit price is then transmitted to the POS terminal via network 104 and is added to a running sub-total of a customer&#39;s purchases. The PRODUCT UNIT PRICE is then output via output device 140 of the POS terminal at Step 810 where it is displayed or alternatively, a &#34;price to be determined&#34; message is displayed. At Step 812 an inquiry is made to determine if the customer wishes to purchase an additional product. If the customer wishes to purchase an additional product, processing returns to Step 802 for that additional product. If the customer does not wish to purchase an additional product then the process continues at Step 814, where an inquiry is made to determine if a plurality of product identifiers stored in the temporary memory location (Step 806) meet the requirements for a package as set forth in the COMPONENT PRODUCTS 610 in DATABASE 600. If the requirements of a package are not met then this process is ended at Step 816, and if the requirements of a package are met then the process continues to Step 818. At Step 818 the package offer price is added to the running sub-total of the customer&#39;s purchases at the POS terminal. Specifically, a package offer price corresponding to this package is retrieved from DATABASE 600. This retrieved package offer price is then communicated via network 104 to the POS terminal where the package price is added to the customer&#39;s running sub-total. 
     In one embodiment, because a single product cannot be offered in more than one package simultaneously, there will be no question of which package offer should be honored. However, in another embodiment referenced above, a single product can be offered in more than one package simultaneously. In this case, if a single product meets the component product requirements of more than one record of PACKAGE OFFER TABLE DATABASE 600, the following outcomes are possible: 
     (a) Package offers can be assigned priorities, so that if one PRODUCT ID is listed simultaneously in multiple package offers, one package offer will override another. Priorities can be based on inventory, demand, or degree of discount. 
     (b) The customer can be given the option of choosing which package offer they wish to accept. This way, the customer gets to pick the package deal with the highest perceived value. 
     (c) All package offers containing the common component PRODUCT ID can be honored, where the customer is charged the total of all package prices less a weighting factor to account for the common package component. 
     At Step 820 the purchase process for that customer is transacted in accordance with ordinary and customary procedures. At Step 822, appropriate available inventory in DATABASE 400 are adjusted for each product sold in the present transaction. At Step 824, an inquiry is made to determine if the available inventory for any of the products sold (as indicated by the appropriate record in PRODUCT ID 402) is below a desired level. In the present example, the desired level is given as zero. If the inventory level for any of the products sold is below the desired level, then processing continues at Step 826, and if the inventory level for each of the products in the package is above the desired level, processing continues at Step 828. At Step 826 the appropriate package offer status in DATABASE 600 is set to `INVALID` for that corresponding record associated with PACKAGE OFFER ID 602. At Step 828 the appropriate demand rate in DATABASE 400 is updated for each product sold. At Step 830 an inquiry is made to determine if the demand rate in DATABASE 400 for each product in the package complies with the corresponding complementary demand rate rules in DATABASE 500. If the demand rates for the products do not comply with the complementary demand rate rules for the package then processing continues at Step 832, and if the demand rates for the products do comply with the complementary demand rate rules for the package then the process is ended at Step 834. At Step 832 the appropriate record of package offer status in DATABASE 600 corresponding to the package (as indicated by the records of PACKAGE OFFER ID 602) is set to `INVALID`, then the process proceeds to Step 834 where it is ended. 
     FIGS. 9A-B are a flowchart illustrating the steps of a process performed by a data processing system, such as package offering system 100, as directed by VALIDITY VERIFICATION PROCESS PROGRAM 900. 
     PERIODIC PACKAGE OFFER VALIDITY VERIFICATION PROCESS PROGRAM 900 can be executed for a single offer or repeated for each record in the PACKAGE OFFER TABLE DATABASE so that all offers are updated in a batch process. 
     Processing starts at Step 902 where each record 602 having a package offer status of `VALID` in PACKAGE OFFER TABLE DATABASE 600 is identified. At Step 904 time is retrieved from clock 118 of server 102. At Step 906, an inquiry is made to determine if the time for offering the identified package has expired. If the time for offering a package has expired then processing continues at Step 907. If the time for offering a package has not expired then processing continues at Step 908. At Step 907, the appropriate PACKAGE OFFER STATUS in DATABASE 600 is set to `INVALID`, and the process is then ended at Step 910. At Step 908, the records in DATABASE 400 corresponding to the products listed in the component products field in DATABASE 600 are identified. At Step 912 an inquiry is made to determine if sufficient inventory exist, as provided by the appropriate available inventory fields in DATABASE 400, for each of the identified records of PRODUCT ID 402. If sufficient inventory does not exist for any one of the identified records of PRODUCT ID 402, then processing continues at Step 907. If sufficient inventory does exist, then processing continues at Step 914. At Step 914, a record of DATABASE 600 corresponding to the identified record of PACKAGE OFFER ID 602 is identified. At Step 916 a record corresponding to the PACKAGE OFFER RULE ID 502 of the identified record is retrieved. At Step 918 the record of DEMAND RATE 408 in DATABASE 400 corresponding to each product defined by component products in DATABASE 600 is retrieved for the identified record. At Step 920, an inquiry is made to determine if the demand rate for each product defined by the component products for the identified record satisfies the complementary demand rate rules in DATABASE 500. If the demand rate for each of the identified complementary products satisfies the rule then this process is ended at Step 922. If the demand rate for any of the identified complementary products does not satisfy the rule then the processing continues at Step 924. At Step 924 the appropriate PACKAGE OFFER STATUS in DATABASE 600 corresponding to the package is set to &#34;INVALID&#34;. The process then proceeds to Step 922 where it is ended. 
     While demand rate and inventory availability (levels) are utilized by the exemplary rules herein for determining a package and related package criteria, it is within the spirit and scope of the present invention that other sales performance data may be utilized. By way of example, but not limited thereto, such other sales performance data includes product profitability, product turnover, product cost or any combination thereof (including combination with demand rate and inventory levels), as utilization of such will be readily apparent to one of ordinary skill in the art. 
     Accordingly, having fully described the present invention by way of example with reference to the attached drawing figures, it will be readily appreciated that many changes and modifications may be made to the invention and to any of the exemplary embodiments shown and/or described herein without departing from the spirit or scope of the invention which is defined in the appended claims.