METHOD AND APPARATUS FOR CONTROLLING A VENDING MACHINE

Abstract: The present invention is a method and apparatus for automatically managing a price of a product in a vending machine. A first method and apparatus is disclosed for implementing dynamic price adjustments at various times including after stocking, after a sale of a product and at periodic intervals. The first method generally includes the steps of updating inventory data, including a quantity of a product, accessing price management data associated with the product, and determining the price of the product. The determined price of the product is based on the price management data and the inventory data and is stored in a memory of the apparatus and displayed for customers. The present invention also relates to a second method and apparatus for automatically delivering a combination of products from a vending machine at a package price. The second method of the present invention includes the step of receiving a package identifier. The second method also includes the steps of identifying a set of products corresponding to the package identifier and determining a package price corresponding to the identified set of products. The second method further includes the steps of outputting a signal representing the package price and outputting a signal representing an instruction to dispense a unit of each identified product.

Description: METHOD AND APPARATUS FOR CONTROLLING A VENDING MACHINE Background of the Invention Field of the Invention The present invention relates generally to vending machines. More particularly, the present invention relates to a method and apparatus for managing vending machine inventory. Description of the Related Art It is believed that the first modern vending machine was installed in the late 1880s. The first vending machines were rudimentary devices primarily designed to dispense cigarettes and postcards. Modern vending machines are employed to store and dispense a vast array of merchandise in response to a customer request and appropriate payment. Such merchandise includes drinks, candy, frozen deserts, snacks, video tapes and children's toys. Many entrepreneurs are attracted to the basic concept of selling products using a vending machine. Vending machines are generally considered to have significant advantages over traditional merchandising. Specifically, vending machines enable the automated sale of merchandise at unconventional locations and times; and they do not require sales personnel to bring about sales. Although the basic advantages of vending machines are significant, prior art vending machines have several significant disadvantages when compared to traditional merchandising, particularly relating to inventory control and pricing. A first disadvantage is the difficulty of maintaining an inventory of perishable items. A second disadvantage is the difficulty of selling or "turning over" an inventory of low demand items or items of inferior quality. Although some vending machine suppliers offer to buy back inventory from operators who no longer want to sell certain products, such suppliers often fail to live up to their offer when an operator tries to exercise this option. There have been many attempts at addressing the inventory problems of vending machines, including methods for determining what products are the best sellers, what are the appropriate times to re-stock vending machine items and in what quantities. The solutions include methods and systems that enable vending machine operators to remotely monitor inventory and remotely retrieve sales data. Other solutions have been proposed in the forms of accounting software and bar code readers that detect the expiration dates of vending machine items. Examples of vending machine patent prior art include the following U.S. patents: 4,412,292, entitled "System for the Remote Monitoring of Vending Machines;" 4,654,800, entitled "Control and Monitoring Apparatus for Vending Machines;" 5,091,713, entitled "Inventory, Cash, Security, and Maintenance Control Apparatus and Method for a Plurality of Remote Vending Machines;" 5,367,452, entitled "Mobile Merchandising Business Management System which Provides Comprehensive Support Services for Transportable Business Operations;" and 4,282,575, entitled "Control and Monitoring Apparatus for Vending Machines." These inventions generally disclose remote monitoring systems, currency control systems, and data collection systems designed to address shortcomings of prior art vending devices. Non-patent prior art includes VendMaster's software product entitled "Windows for Vending PRO with Inventory." This product enables a vending machine operator to report and analyze various historical sales data. VendMaster's product is intended to enhance a vending machine operator's ability to identify high-demand inventory, determine preferable times to stock the machine and calculate suggested prices. The aforementioned solutions generally attempt to solve inventory problems by allowing operators to monitor and analyze raw sales data. These solutions fail to adequately address the aforementioned shortcomings of present vending machines. Specifically, the prior art fails to provide adequate solutions to the problems of maintaining an inventory of perishable items; increasing inventory turnover; and recovering the investment in low demand or inferior quality items. Using the prior art solutions, an operator may use collected supply and demand data to help make pricing decisions, but the fact that operators must manually ratify and implement the decisions renders these solutions burdensome, inaccurate an inefficient. These solutions are burdensome in that the accounting and analysis required to arrive at pricing decisions is time consuming. These solutions are inaccurate as the human decision making process regarding pricing is largely arbitrary. These solutions are inefficient because human decisions and the implementations of those decisions are not dynamically responsive to real-time market pressures; they are delayed until the operator analyzes supply and demand data, arrives at a pricing decision, and posts the pricing decision. Accordingly, the current methods of implementing new pricing decisions are inconsistent with the fundamental business philosophy of vending machines. Vending entrepreneurs have always adhered to the idea that vending machines manage themselves. Pricing decisions in a vending operation, however, cannot currently be implemented as easily as they may be, for example, in the retail environment where humans are physically present to monitor supply and demand and adjust prices accordingly. A need therefore exists for a method and apparatus that monitors supply and demand of a vending machine inventory and that dynamically and automatically calculates and implements item prices to increase a vending machine's profitability. A need further exists for a method and apparatus for adjusting item prices of a vending machine to relieve vending machine operators of the burdens, inaccuracies and inefficiencies in management that result from the current methods of pricing items. Some inventions have attempted to improve inventory turnover by providing a vending machine that provides incentives for customers to buy larger quantities of a product. One such invention is disclosed by King et al. in U.S. patent number 4,498,570. King discloses a vending machine having a switching device for establishing a first price for a first item of a product sold and for establishing a second price for additional items of the product sold in the same transaction. Essentially, the King invention provides a quantity discount by allowing the purchaser to freely select the number of items to be purchased. Levasseur et al. also disclose an apparatus that enables quantity discounts for vending machines in U.S. patent number 4,008,792. Levasseur et al. disclose a control circuit for a vending machine which enables a vending machine offering a variety of products at a variety of prices to calculate a different price for a particular product based on the quantity of the product purchased. In U.S. patent number 4,679,150, Hayashi et al. disclose an automatic vending machine that enables the purchase of a product at a quantity discount. The inventions of King, Levasseur and Hayashi advanced the art by providing various means that enable a customer to purchase a product at a quantity discount. This advancement may advantageously encourage additional purchases of an item at a vending machine, but they are likely to affect only customers who can utilize multiple units of the same product. Further, these inventions do not address the broader problem of improving sales of a low demand product. Other attempts to address the disadvantages associated with inventory control include inventory analysis products that employ a proactive approach. These products assist operators in deciding what products to stock, when to restock and at what quantities. Still other attempts to address inventory control problems include systems that enable operators to remotely monitor inventory and remotely retrieve sales data, such as the system described by U.S. Patent Number 4,412,292. With respect to price management, a second disadvantage is the difficulty of selling a product for a price commensurate with the product's demand. Although conventional vending machines allow an operator to adjust the prices of products, price adjustments are not automatic, and they are readily evident to purchasers which may adversely affect the product's demand. Some operators have addressed the price management problems by selling complementary products, such as chips and soda, from the same machine. By selling complementary products, operators hope to passively induce consumers to purchase lower demand products, as certain snacks may be, by placing them in proximity to higher demand products, as certain sodas may be. Operators may also use this technique to indirectly pair highly profitable products with less profitable ones. The passive nature of this technique, however, is a significant problem. Because vending machines, by their nature, do not employ sales personnel, customers presently are not actively induced to purchase low demand or perishable products. A need therefore exists for a method and apparatus that addresses the deficiencies of the prior art. Specifically, a need exists for a vending method and apparatus that actively promotes the sale of low demand, perishable and less profitable products. Accordingly, the shortcomings associated with the related art have heretofore not been adequately addressed. The present invention addresses such problems by providing an apparatus and processing approach that have not previously been proposed. Summary of the Invention The present invention provides a method and apparatus to automatically and dynamically determine, adjust and manage product pricing in a vending machine to account for current market trends. According to a first aspect of the present invention, a method is disclosed for automatically managing a price of a product in a vending machine. The method includes the step of receiving a product identifier specifying the product. The method further includes the step of receiving inventory data. The inventory data includes the quantity of the product in the vending machine. The method also includes the step of determining price management data associated with said product. The price management data specifies supply and demand data associated with the product. The method continues with the step of determining the price for the product, and storing the price management data and the price. This first method of managing inventory pricing is particularly useful if performed upon stocking the vending machine. According to a second aspect of the present invention, a method and apparatus are disclosed for automatically delivering units of a combination of component products during a single transaction. The second method includes the step of receiving a package identifier. The method further includes the step of identifying the component products corresponding to the package identifier. The method also includes the step of determining a package price corresponding to the package of component products. The method still further includes the steps of outputting a signal representing the package price, and receiving a signal representing a request to dispense a unit of each identified product. It is an object of the present invention to provide a method and apparatus for dynamically managing the price of a product in a vending machine. It is a further object of the present invention is to enable a vending machine to sell multiple products for a single price. A feature of the present invention is to enable a vending machine to employ marketing techniques for promoting and selling complementary products. An advantage of the present invention is that it enables a vending machine operator to adjust a product's price as part of a package without affecting the individual sale price of the product. Another advantage of the present invention is that it enables a vending machine to actively promote the sale of low demand and perishable products by offering packages combining such products with complementary high-demand products. Yet another advantage of the present invention is that it enables a vending machine to provide a discount to a consumer for combined product purchases. The above objects, features and advantages and other objects, features and advantages are readily apparent from the detailed description when taken in connection with the accompanying drawings. Brief Description of the Drawings A more complete appreciation of the invention and many of the attendant advantages thereof may be readily obtained by reference to the following detailed description when considered with the accompanying drawings, wherein: Figure 1 is a perspective view of a vending machine according to a first embodiment of the present invention; Figure 2 is a schematic block diagram illustrating the components of the vending machine of Figure 1 ; Figure 3 is a schematic block diagram illustrating the components of the processing module of the vending machine of Figure 2; Figure 4 is a table illustrating the structure of an authorization table stored in the storage device of the vending machine of Figure 2; Figures 5A-5C are a table illustrating the structure of an price management table stored in the memory of the vending machine of Figure 2; Figures 6A-6B is a flow chart illustrating the computer implemented steps used to set a product price upon stocking the vending machine of Figure 2; Figure 7 is a flow chart illustrating the computer implemented steps used to set a product price after a product purchase at the vending machine of Figure 2; Figure 8 is a flow chart illustrating the computer implemented steps used to set a product price at the vending machine of Figure 2 according to a predetermined schedule; Figure 9 is a schematic block diagram illustrating a network embodiment of the present invention; Figure 10 is a schematic block diagram illustrating the components of the vending machine according to a second embodiment of the present invention; Figure 11 is a schematic block diagram illustrating the components of the processing module of the vending machine of Figure 10; Figure 12 depicts an exemplary authorization table stored in the memory of the vending machine of Figure 10; Figure 13 depicts an exemplary inventory table stored in the memory of the vending machine of Figure 10; Figure 14 depicts an exemplary package offer table stored in the memory of the vending machine of Figure 10; Figure 15 depicts an exemplary automatic package rules table stored in the memory of the vending machine of Figure 10; Figure 16 is a block diagram illustrating the basic processing functions of the second embodiment of the present invention; Figure 17 is a flow chart illustrating the computer-implemented process steps enabling an operator to define a package; Figures 18A and 18B are flow charts illustrating the computer- implemented processes steps for automatically defining package offers according to predetermined rules; Figures 18C and 18D are flow charts illustrating the computer- implemented processes steps for automatically maintaining package offers according to predetermined rules; Figure 19 is a flow chart illustrating the computer implemented process steps for enabling a customer to define a package; Figure 20 is a flow chart illustrating the computer-implemented process steps used to distribute the components of a pre-defined package; Figure 21 is a flow chart illustrating the computer-implemented process steps used to distribute the components of an upsell package; and Figure 22 is a flow chart illustrating the computer-implemented process steps used to distribute the components of a customer-defined package. Detailed Description of the Preferred Embodiments Dynamic Pricing Architecture A first embodiment of the method and system of the present invention will now be discussed with reference to Figures 1-9. Figures 1-3 illustrate the components of one exemplary vending machine 100 including the features of the present invention. Although specific exemplary vending machine 100 is referred to throughout the detailed description, the present invention is directed to any automatic sales machine that allows payment to be exchanged for goods. Payment can be presented through a variety of media including, but not limited to, coins, bills and other currencies, magnetic stripe cards and smart cards (whether pre-paid or linked to an account), and identification codes. Figure 1 is a perspective view of vending machine 100; Figure 2 is a schematic block diagram of vending machine 100; and Figure 3 is a schematic block diagram of the processing module of vending machine 100. As shown, vending machine 100 includes an input device 110 for receiving input from a customer indicating a product selection. Input device 110 may also be used for receiving input from an operator during stocking or maintenance of vending machine 100. Although input device 110, as illustrated, includes a set of alpha-numeric keys for providing input to vending machine 100, input device could include a selector dial, a set of buttons associated with a respective set of item dispensers, or any other conventional input device commonly employed in a vending machine design. Further, vending machine 100 may include more than one input device 110. For example, vending machine 100 may include an exterior input device 1 10 for receiving customer input and an interior input device (not shown) for receiving operator input. In the illustrated embodiment, input device 110 receives input data from both operators and customers. As shown in Figure 2, vending machine 100 includes a sensor 115 for sensing surrounding environmental conditions. Sensor 115 is preferably a conventional temperature sensor configured to sense the local outdoor temperature or the external environmental temperature surrounding vending machine 100. Sensor 115 could include a receiver for receiving a local temperature from a weather service. Vending machine 100 also includes several mechanisms for receiving payment and dispensing change, including coin acceptor 112, bill validator 1 14, magnetic stripe reader 116 and change dispenser 118. Magnetic stripe reader 116 is a conventional reader for reading data on the magnetic stripe of a credit or debit card, and it may cooperate with conventional remote point-of-sale credit card processing equipment (not shown) to validate credit based purchases through a conventional credit authorization network. Coin acceptor 112, bill validator 114 and change dispenser 118 communicate with currency storage apparatus 120 and may include conventional devices such as Mars models AE- 2400, MC5000, TRC200 or CoinCo model 9300-L. Coin acceptor 112 and bill validator 114 receive and validate currency that is stored by currency storage apparatus 120. Referring now to Figure 2 in conjunction with Figure 3, coin acceptor 112, bill validator 114, magnetic stripe reader 116 and change dispenser 118 communicate with, and are controlled by, processing module 144. Processing module 144 includes a network communication port 142 for communicating with a central controller via a network (not shown). In addition to the elements previously mentioned, processing module 144 includes a central processing unit 126 ("CPU") connected to communication port 142. CPU 126 communicates with random access memory (RAM) 128, read only memory (ROM) 130, clock 132. CPU 126 also communicates with at least one item dispenser 122, at least one price display 124 and storage device 134. Price display 124 may be any display device, preferably a digital display, employing conventional technology such as a light emitting diode ("LED") display or a liquid crystal display ("LCD"). Vending machine 100 includes twelve item dispensers 122 and twelve price displays 124, one item dispenser and display corresponding to each product offered for sale by vending machine 100. As in many conventional vending machines, item dispenser 122 may be activated by CPU 126 after a customer has purchased item 136, causing item 136 to be transferred to receptacle 140. A customer has access to a purchased item in receptacle 140 via door 138. Purchased item 136 can then be removed by a customer from receptacle 140 through door 138. As shown in Figures 1 and 2, each item dispenser 122 has a corresponding price display 124 that displays information pertaining to item 136 dispensed by item dispenser 122. Typically, price display 124 will display the price of item 136 as determined according to the steps of the present invention. Although vending machine 100, as illustrated, includes a plurality of item dispensers 122 and a plurality displays 124, this is only one possible embodiment of the many types of vending machines that could employ the present invention. Selecting an appropriate conventional item dispensing mechanism, a single item dispenser 122 could be used to dispense the plurality of items 136. Likewise, a single price display 124 could be used to communicate prices and other information of the plurality of products. As shown in Figure 3, storage device 134 stores a database of authorization and price management data, including an authorization table 400; and a price management table 500. Tables 400 and 500 comprise at least a portion of the data stored by storage device 134 and are described more fully with reference to Figures 4 and 5, respectively. Storage device 134 further includes instructions for implementing the steps of the present invention. Specifically, storage device 134 includes inventory stocking process instructions 600; post-purchase price evaluation process instructions 700; and periodic price evaluation process instructions 800. Storage device 134 is preferably a magnetic disk drive, but could be a CD-ROM drive, optical disk drive, RAM drive or any other conventional storage device as would be deemed appropriate by one of ordinary skill in the art. Data Tables of Dynamic Pricing Apparatus Figure 4 illustrates the contents of an exemplary authorization table 400 in tabular format. Each record of authorization table 400 includes an operator identifier 402 and an authorization code 404 that defines a valid operator identifier/authorization code pair. Authorization table 400 is utilized to enable only authorized operators to access the price management data stored in storage device 134. Of course, authorization table 400 could also be used for authentication of network control and monitoring signals in accordance with the network configuration more fully described with reference to Figure 9. Figures 5 A, 5B and 5C illustrate the contents of an exemplary price management table 500. Each of the twelve illustrative records 548-570 of price management table 500 represents information pertaining to a specific product and item dispenser. For purposes of illustration, this data is based on a system date of July 1, 1997. Generally, the data stored in price management table 500 falls into three categories: inventory data, shown in Figure 5A; evaluation data, shown in Figure 5B; and pricing data, shown in Figure 5C. Certain data elements may fall into more than one category, as described below. Each record in price management table 500 includes a dispenser identifier 510 and a product identifier 512. Dispenser identifier field 510 stores a dispenser identifier that uniquely identifies a corresponding item dispenser 122 of vending machine 100. Product identifier field 512 identifies the product associated with the dispenser identified by field 510. In the present embodiment, there is a one to one correspondence between a dispenser and a product, i.e. either field uniquely identifies a record. In other words, each dispenser dispenses only one product, and each product is limited to a single dispenser. One of ordinary skill will recognize that by distributing the price management data among multiple tables, multiple products could be offered in a single dispenser, and/or multiple dispensers could dispense the same product. The remaining fields shown in Figure 5A store data generally describing the inventory of vending machine 100. Stocked quantity field 514 stores the number of items that were originally stocked in the dispenser identified by field 510. The contents of this field are input by an operator during stocking or routine maintenance. Available quantity field 516 contains the number of items currently associated with the dispenser identified by field 510. After stocking or routine maintenance, the contents of field 516 is automatically set equal to the contents of field 514, for each record corresponding to a restocked product. Thereafter, the available quantity is automatically updated by CPU 126 for each associated item sold. Current price field 518 contains the selling price of the product associated with the item dispenser. Current price field 518 may be populated by the operator during stocking or routine maintenance, and may be determined according to the process steps of the present invention. Exemplary process steps which may be executed to automatically determine a current price are described with reference to Figures 6-8B. Figure 5B illustrates fields of price management table 500 that define when a price is dynamically evaluated. Stock date field 520 stores the date the dispenser identified by field 510 was most recently stocked. Termination date field 522 contains the last date on which the items of the associated dispenser may be sold. The termination date is entered by an operator during stocking of vending machine 100 and may be a date entered by the operator, the expiration date of the items in the associated dispenser, or another relevant date, such as the next scheduled stocking date. The next two fields of price management table 500 define shelf times for the product identified by field 512. Total shelf time field 524 defines the maximum allowable shelf time for the product. The contents of field 524 are calculated by CPU 126 based on stock date field.520 and termination date field 522 upon stocking. Remaining shelf time field 526 defines the remaining shelf time of the product and is periodically calculated by CPU 126 based on the system date, and the contents of field 522. Evaluation frequency field 528 stores a code representing a rule defining the frequency with which the CPU 126 should evaluate the price of the product identified by field 512. Although field 528 only contains a code, the contents of field 528 illustrated in Figure 5 show the logical representations of the codes. The evaluation rule applicable to a product is generally selected by an operator from a set of rules defined by the vending machine manufacturer. In the examples shown in Figure 5, evaluation frequency field 528 may store a code representing a rule to evaluate a product price every x purchases or a rule to evaluate a product price every y hours, where x and y are greater than zero. Of course, the present invention envisions numerous alternative evaluation frequency rules. For example, a rule could be defined to evaluate the price whenever sensor 115 senses a predetermined condition. If sensor 115 is a thermostat, CPU 126 could be programmed to evaluate the price whenever the temperature exceeded a predefined threshold. Other evaluation frequency rules could be implemented to evaluate the price when demand for a product rapidly changes, or if at the current demand level items are projected to remain stocked past the termination date in field 522. Further, CPU 126 could be programmed to evaluate prices during periods of low activity, such as during the early morning. Last evaluation date/time field 530 stores a timestamp identifying the time of last evaluation, and field 532 stores the number of sales of the associated product made since the last price evaluation. These fields are periodically updated by CPU 126, and are periodically accessed by CPU 126 based on the evaluation rule represented by the contents of field 528. Fields 534-538 define demand-based price evaluation parameters. Previous demand field 534 stores the level of demand as of the last price evaluation. Current demand field stores the current demand level for the product in the dispenser identified by the contents of field 510. CPU 126 periodically calculates the current demand and stores it in field 536. After each evaluation, CPU 126 sets the contents of previous demand field 534 equal to the contents of current demand field 536. Demand increment field 538 defines the incremental difference between the previous demand and the current demand that is required to trigger a price evaluation process. Figure 5C illustrates fields of price management table 500 that are used to calculate the current price stored in field 518. Price adjustment increment field 540 stores the amount by which the price of the product identified by field 512 may be adjusted. Of course, the price of the product identified by field 512 may be adjusted by multiples of the price adjustment increment. Fields 542-546 define price parameters for the product identified by field 512. The minimum price to be charged for the product is stored in minimum price field 542; the manufacturer's suggested retail price for the product is stored in suggested price field 544; and the maximum price to be charged for the product is stored in maximum price field 546. The manufacturer's suggested retail price of field 544 may be used as the initial current price after stocking, or it may be used as a factor to determine future prices. The minimum price and maximum price fields 542 and 546 are used to prevent the calculated price from falling outside a predetermined range. This financially protects both the vending machine operator and the consumer. Evaluation Process Steps Having thus described the system architecture and components of the present embodiment, the operation of the system will now be described in greater detail with reference to Figures 6A-8B, and continuing reference to Figures 1-5C. It is to be understood that the software instructions necessary to provide the functionality described herein are preferably stored in storage device 134 of vending machine 100, but may be stored in ROM 130 or remotely stored at a central server. According to the present invention, there are generally three times at which it is appropriate to determine the price of a product in a vending machine: after stocking, after a sale of an item and after a period of time. Figures 6A-6B, Figures 7A-7B and Figures 8A-8B illustrate the process steps executed by vending machine 100 to determine a price of a product at each of these times, respectively. Referring now to Figures 6A and 6B, the process steps executed by vending machine 100 to determine a price of a product after stocking will be described. As shown at step 610, CPU 126 receives a request to update price management table 500. This request indicates that an operator is stocking vending machine 100, and the request includes an operator identifier and authorization code entered by the operator. At step 612, CPU 126 retrieves a record from authorization table 400 using the received operator identifier as an index. CPU 126 then, as shown at step 614, compares operator identifier and authorization code received at step 610 with the contents of operator identifier field 402 and authorization code field 404 retrieved at step 612, respectively. If the comparison yields a match of the respective data, CPU 126 proceeds to execute step 620, otherwise, CPU 126 denies the operator access to price management table 500. At step 620, CPU 126 receives input from the operator. The operator inputs a dispenser identifier, a product identifier and relevant portions of the inventory, evaluation and pricing data pertaining to the stocked product and associated dispenser to be stored in price management table 500. The inventory data received from the operator includes a stocked quantity, and a current price. The evaluation data received from the operator includes a termination date, an evaluation frequency and a demand increment. The pricing data received from the operator includes a price adjustment increment, a minimum price, a suggested price and a maximum price. The data received from the operator is stored by CPU 126 in the appropriate fields of price management table 500. Of course, receiving data for one or more of these fields from the operator may be optional as CPU 126 could supply default values for certain fields. In addition, the data for one or more of these fields could be automatically received from a remote source using the network configuration illustrated in Figure 9 or from an attached bar code reader (not shown) such as the U.P.C. scanners attached to the vending machines manufactured by Automatic Vending America. Inc. At step 622, CPU 126 calculates the remaining price management data to be stored in price management inventory table 500. Specifically, CPU 126 calculates the total shelf time, remaining shelf time and current price for the associated product. Although, the current price may be input by the operator, the current price would preferably be set equal to the manufacturer's suggested price stored in field 544. Of course, in an alternate embodiment, the current price could be determined in accordance with the price evaluations described below with reference to the post-purchase evaluation process and the periodic evaluation process. At step 624, the stocking process concludes with the step of adjusting the price display 124 corresponding to an item dispenser 122 that dispenses the associated product. The price displays 124 are adjusted to display the price determined at step 620. Referring now to Figures 7A, 7B and 7C, the process steps executed by vending machine 100 to determine a price of a product after a sale of an item will be described. At step 710, CPU 126 receives a customer request to purchase an item. In accordance with vending machine 100, the request includes an indication of payment and a dispenser identifier. In other embodiments, the request may include a product identifier instead of the dispenser identifier. CPU 126 then uses the received dispenser identifier to retrieve the relevant record from price management table 500, as shown at step 712. Based on the contents of field 516, a determination is made at step 714 whether sufficient inventory is available to honor the request. If there is not sufficient inventory, CPU 126 processes step 716 and causes change dispenser 118 to return any inserted payment, and the transaction is terminated. If vending machine 100 holds sufficient inventory to honor the request, CPU 126 processes step 718 and activates item dispenser 122 corresponding to the dispenser identifier received at step 710. At step 722, CPU 126 updates the price management data pertaining to the product selected by the customer and stores the updated data in price management table 500. The step of updating includes the step of decrementing the contents of available quantity field 516, incrementing the contents of field 532 to reflect the sale and updating the contents of cuπent demand field 536. At step 724, a determination is made whether the necessary events have occurred to require a price evaluation for the selected product. In the present embodiment, this step includes comparing the parameter identified by evaluation frequency field 528 to either last evaluation date/time field 530 or sales since last evaluation field 532. If it is time to evaluate the price of the selected product, CPU processes step 726. At step 726, CPU 126 calculates the change in demand for the specified product and at step 728 compares the calculated change in demand to the demand increment data stored in field 538. If the demand for the specified product has changed by at least the demand increment stored in field 538. CPU 126 processes step 730 and determines a new current price for the specified product. One preferred formula that can be used to determine a new current price is: I nc — "current ^ "increment where: P nc represents the new current price; Pcurrem represents the current price stored in field 518; and Pincrement represents the price increment stored in field 540. If the demand for the product has increased, the new current price equals the contents of current price field 518 plus the contents of price adjustment field 540. If the demand for the product has decreased, the new current price equals the contents of current price field 518 less the contents of price adjustment field 540. At step 732, CPU 126 verifies that the new current price falls within the range of acceptable prices as defined by minimum price field 542 and maximum price field 546. If the new current price is within the acceptable range, current price field 518 is updated to reflect the new current price as shown at step 734. It is important to note that although a specific price determination formula has been described herein, the method and apparatus of the present invention is intended to work with many different price determination formulas applicable to product pricing. Various formulas may easily be implemented by one of ordinary skill in the art with minor design variations. Finally, at step 736, CPU 126 updates the price display 124 associated with subject item dispenser to reflect the new current price of the product. Referring now to Figures 8A and 8B, a flow chart is presented illustrating the exemplary process steps that may be executed to determine the price of a product during a periodic price evaluation. The process steps of Figures 8A and 8B are described herein with respect to a single product. It is envisioned that these steps will be repeated for each product represented in price management table 500. At step 810, CPU 126 begins the periodic price evaluation process by retrieving a record associated with a specified product from price management table 500. At step 812, CPU 126 accesses the contents of evaluation frequency field 528 to determine if the price evaluation frequency is based on time, as shown at step 814. If the evaluation of the product's price is not based on time, the process ends. Otherwise, the process proceeds to step 816. In an alternate embodiment, step 814 may include determining whether the quantity of the product is non-zero. If the quantity of the product is zero, CPU 126 would terminate the process to avoid evaluating the price of an unavailable product. At step 816, CPU 126 determines the time elapsed since the price of the product was last evaluated. This is accomplished by retrieving the system date and time from clock 132 and comparing the system date and time to the date and time stored in last evaluation date/time field 530. At step 818, the result is compared to the evaluation frequency parameter indicated by field 528. If sufficient time has elapsed, the process proceeds with step 822. Otherwise, the process ends. At step 822, CPU 126 calculates the change in demand for the specified product and compares the calculated change in demand to the demand increment data stored in field 538. If the demand for the specified product has changed by at least the demand increment stored in field 538, CPU 126 processes step 826 and determines a new current price for the specified product. One possible formula that can be used to determine a new current price is: "nc l >51 remain / 5 1 total) X ' "maximum " "minimum)] " * " "n where: P nc represents the new current price; STremain represents the remaining shelf time stored in field 526; STtotai represents the total shelf time stored in field 524; Pmaximum represents the minimum price stored in field 542; and Pmimmum represents the maximum price stored in field 546. This formula determines the new current price based on the remaining shelf life and the maximum and minimum price boundaries. In this embodiment, the calculated price may be rounded to the nearest price adjustment increment indicated in field 540. At step 830, current price field 518 is updated to reflect the new current price as shown at step 830. Finally, at step 832 CPU 126 updates the price display associated with subject item dispenser to reflect the new current price of the product. Referring back to Figures 5A-5C, the contents of record 562 illustrates the result of process 800. As shown by field 512, record 550 is associated with a dispenser stocked with cola. According to field 526, the remaining shelf time for the cola in inventory is 62 days, while the total shelf time stored in field 524 is 70 days. The maximum price for cola, stored in field 546, is $ 1.15, and the minimum price is $0.35, as shown by field 542. To calculate the selling price of cola according to the present embodiment, CPU 126 applies the formula described above: "nc — l(^ 1 remain / δ 1 total) X ( "maximum " "minimum)] "■" "minimum Pn c = [(62/70) x ($1.15 - $0.35)] + $0.35 P„c = $1.0586 Rounding the result to the nearest price adjustment increment stored in field 540, the selling price is $1.05. As described, the price evaluation formulas discussed with reference to Figures 7A-7C and 8A-8B rely on data collected and stored in price management table 500. The present invention may employ other factors in place of or in addition to stored data to determine a current selling price. In particular, output from sensor 115 may be used to determine the price of a product. Referring now to Figure 9, a network is shown to illustrate an alternate embodiment of the present invention. Server 900 and a plurality of vending machines 100, 910, 912 and 1000 (collectively, the "nodes") preferably transmit digitally encoded data and other information between one another. The communication links between the nodes and server 900 preferably comprise a cable, fiber or wireless link on which electronic signals can propagate. For example, each node may be connected via an Internet connection using a public switched telephone network (PSTN), such as those provided by a local or regional telephone operating company. Alternatively, each node may be connected by dedicated data lines, cellular, Personal Communication Systems ("PCS"), microwave or satellite networks. In this configuration, the previously described functionality provided by processing module 144 (i.e. inventory management and dynamic price adjustment) can be remotely performed by server 900. The resulting price adjustments are transmitted from server 900 to each of the plurality of vending machines. Conventional cryptographic techniques may be employed to ensure the authenticity of remote data received by the nodes. Further, authentication table 400, or a functional equivalent, may be employed at server 900, the node or both. Definitions For the purposes of the remainder of this specification, the following terms will have the corresponding definitions: Complementary Product: A product that may be advantageously paired with a second product, such as by price or product type. Component: A single product that is part of a package. Component Price: The price of a unit of a product sold as part of a package. Individual Price: The price of a unit of a product sold separately. Package: A combination of at least two component products. Package Price: The single price of a combination of at least two component products. Product: A classification of merchandise, such as a particular brand of soda. Unit: A single item of merchandise, such as a can of a particular brand of soda. Package Vending Apparatus Architecture A second embodiment of the method and apparatus of the present invention will now be discussed with reference to Figures 10-11. Figures 10 and 11 illustrate the components of one exemplary vending machine 1000 including the features of the present invention. Although specific exemplary vending machine 1000 is refeπed to throughout the detailed description, the present invention is directed to any automatic sales machine that allows payment to be exchanged for goods. Payment can be presented through a variety of media including, but not limited to, coins, bills and other currencies, magnetic stripe cards and smart cards (whether pre-paid or linked to an account), and identification codes. Figure 10 is a schematic block diagram of vending machine 1000; and Figure 11 is a schematic block diagram of processing module 1044 of vending machine 1000. As shown, vending machine 1000 includes an input device 1010 for receiving input from a customer indicating a product selection. Input device 1010 may also be used for receiving input from an operator during stocking or maintenance of vending machine 1000. Input device 1010 preferably includes a set of alpha-numeric keys for providing input to vending machine 1000. Alternatively, input device 1010 could include a selector dial, a set of buttons associated with a respective set of item dispensers, or any other conventional input device commonly employed in a vending machine design. Further, vending machine 1000 may include more than one input device 1010. For example, vending machine 1000 may include an exterior input device 1010 for receiving customer input and an interior input device (not shown) for receiving operator input. In the illustrated embodiment, input device 1010 provides the dual functionality of receiving input data from both operators and customers. Vending machine 1000 also includes several mechanisms for receiving payment and dispensing change, including coin acceptor 1012, bill validator 1014, magnetic stripe reader 1016 and change dispenser 1018. Magnetic stripe reader 1016 is a conventional reader for reading data on the magnetic stripe of a credit or debit card, and it may cooperate with conventional point-of-sale credit card processing equipment (not shown) to validate card-based purchases through a conventional transaction authorization network. Coin acceptor 1012, bill validator 1014 and change dispenser 1018 communicate with currency storage apparatus 1020 and may be conventional devices such as Mars models AE-2400, MC5000, TRC200 or CoinCo model 9300-L. Coin acceptor 1012 and bill validator 1014 receive and validate currency that is stored by currency storage apparatus 1020. Change dispenser 1018 activates the return of coinage to the customer. Referring now to Figure 11, with continuing reference to Figure 10, components of vending machine 1000, including input device 1010, coin acceptor 1012, bill validator 1014, magnetic stripe reader 1016, change dispenser 1018, and currency storage apparatus 1020, communicate with, and are controlled by, processing module 1044. Processing module 1044 includes network communication port 1142 for communicating with a central server (not shown). In addition to the elements previously mentioned, processing module 1044 includes a central processing unit 1126 ("CPU") connected to network communication port 1142. CPU 1126 communicates with random access memory (RAM) 1128, read only memory (ROM) 1130 and clock 1132. CPU 1126 also communicates with at least one item dispenser 1022, at least one display 1024, and storage device 1134. Vending machine 1000 includes multiple item dispensers 1022 and multiple corresponding displays 1024. In the embodiment of the present invention described herein, each item dispenser 1022 and display 1024 pair will be described as corresponding to a unique product offered for sale by vending machine 1000. One of ordinary skill in the art will recognize that the present invention may be implemented in a vending machine in which multiple item dispenser 1022 and display 1024 pairs may correspond to a single product. As shown in Figure 10, each item dispenser 1022 has a corresponding display 1024 that displays information pertaining to the product dispensed by item dispenser 1022. Typically, display 1024 will display the individual price of the corresponding product. Although vending machine 1000, as illustrated, includes a plurality of item dispensers 1022 and a plurality of displays 1024, this is only one possible embodiment of the many types of vending machines that could employ the present invention. Selecting an appropriate conventional item dispensing mechanism, a single item dispenser 1022 could be used to dispense items of a plurality of products. Likewise, a single display 1024 could be used to communicate prices and other information regarding the plurality of products. As shown in Figure 11, storage device 1134 stores a database of authorization, inventory and package data, including an authorization table 1200, an inventory table 1300, a package offer table 1400 and an automatic package rules table 1500. Tables 1200-1500 comprise at least a portion of the data stored by storage device 1134 and are described more fully with reference to Figures 12-15, respectively. Storage device 1134 further includes instructions for implementing the steps of the present invention. Specifically, storage device 1134 includes instructions enabling at least one package definition process 1700 and instructions enabling at least one package delivery process 2000. Storage device 1134 is preferably a magnetic disk drive, but could be a CD-ROM drive, optical disk drive, RAM drive or any other conventional storage device as would be deemed appropriate by one of ordinary skill in the art. Data Tables for Package Vending Apparatus Figure 12 illustrates the contents of an exemplary authorization table 1200 in tabular format. Each record of authorization table 1200 includes an operator identifier 1202 and an authorization code 1204 that defines a valid operator identifier/authorization code pair. Authorization table 1200 is utilized to enable only authorized operators to access the price management data stored in storage device 1134. Referring now to Figure 13, there is illustrated an exemplary inventory table 1300. Each record of inventory table 1300 represents inventory data associated with a product dispensed by vending machine 1000. The contents of product identifier field 1310 uniquely identifies a record of table 1300. Dispenser identifier field 1312 stores data identifying a corresponding item dispenser 1022, and uniquely identifies a record of table 1300 in the present embodiment. Inventory table 1300 also includes available inventory field 1314 for storing a quantity of available items associated with product identifier 1310. Available inventory field 1314 is updated by an operator upon stocking vending machine 1000 to reflect the number of items stocked. Vending machine 1000 includes processing instructions for updating available inventory field 1314 upon each sale of a product, including a sale of a product as a component of a package, to maintain an accurate indication of the quantity of every product and to determine the validity of every package offer. Inventory table 1300 further includes at least two price fields: individual price field 1316 and component price field 1318. Individual price field 1316 stores data defining the price of an item of a product dispensed by the associated item dispenser 1022. This price is preferably displayed to a consumer using an associated display 1024. Component price field 1318 stores data representing the price a unit of the associated product when sold as a component of a package. This price is preferably not displayed to a consumer directly, but may be used to calculate a package price which is displayed to a consumer. This permits the operator of vending machine 1000 to alter the price of a product as a component of a package without affecting the price, and thereby the demand, of the product sold separately. As shown, inventory table 1300 also includes item category field 1320 for storing a broad classification of the product dispensed by the associated item dispenser 1022. The contents of this field may be used to identify complementary products that may be suggested to a consumer according to the method of the present invention. Referring now to Figure 14, an exemplary package offer table 1400 is depicted. Each record of package offer table 1400 represents a combination of component products offered at a single price. As illustrated in the discussion of Figures 17 and 18 below, the records of package offer table 1400 may be generated by the operator of vending machine 1000 or may be automatically generated based on processing instructions stored in storage device 1134 of vending machine 1000. Package offer table 1400 includes a package identifier field 1410 for storing data which uniquely identifies a record of package offer table 1400. Package price field 1412 stores the combined prices for all component products. Package component identifier fields 1414, 1416 and 1418 store product identifiers of the components of a package. While three component identifier fields are illustrated in Figure 14, the present invention may be practiced with more or fewer component identifiers associated with a package. Package offer table 1400 further includes purchase status field 1420 for storing data representing a status of the package. Examples of valid status data include "active" "inactive." More specific status data may, of course, be employed based on the specific implementation. The contents of purchase status field 1420 illustrated by record 1434 of table 1400 indicates that the associated package is unavailable. A number of conditions may render a package unavailable. For example, a package may be unavailable due to a sold out or expired component product. Package offer table 1400 also includes definition identifier field 1422 for storing an identifier indicating how the package offer table record was defined. According to table 1400, package offer records may be defined based on operator input or an automatic package rule, described more fully with reference to Figure 15. Referring now to Figure 15, there is depicted an exemplary automatic package rules table 1500. Table 1500 may be used in one embodiment of the present invention to automatically assemble a package of component products to offer to a consumer. Every record of table 1500 is assigned a unique rule identifier stored in rule identifier field 1510. Table 1500 also includes a rule price field 1512 representing the price of the package to be automatically assembled. Table 1500 further includes a complementary product categories field 1514 representing a list of complementary categories included in the package. Package offer type field 1516 stored data representing a description of the offer type. As shown, record 1506 is an upsell offer and record 1508 is a periodic offer. Thus, vending machine 1000 may be programmed to limit the availability of the packages corresponding to these rules. Offers corresponding to automatic package rule 1506 may only be presented as an upsell as described with reference to Figure 21 , and offers corresponding to automatic package rule 1508 may be updated periodically as described with reference to Figures 18A- 18D. Package Vending Apparatus Operation Having thus described the architecture and components of the present invention, the operation of the apparatus will now be described in greater detail with reference to Figures 16-22, and continuing reference to Figures 10-15. It is to be understood that the software instructions necessary to provide the functionality described herein are preferably stored in storage device 1 134 of vending machine 1000, but may be stored in ROM 1130. Referring now to Figure 16, the basic functions of the present invention are illustrated in block diagram format. While there are multiple ways to implement the present invention, every embodiment will include the four general functions illustrated. Block 1610 represents the process of defining a package comprising component products. The definition of a package may be accomplished in a number of ways, including receiving specific product data received from a vending machine operator, referring to automatic package rules stored in storage device 1134, receiving specific product data from a customer, or a combination of these ways. The process steps enabling package definition according to these alternative embodiments are described with reference to Figures 17-19. Block 1612 represents communication of a package offer to a customer. Although accomplishing this function may be as simple as placing an advertisement near vending machine 1000, this function is preferably performed by outputting a message via display 1024 of vending machine 1000. Block 1614 represents receiving a package request from a customer indicating a desire to purchase multiple component products for a single price. This function may include receiving a package identifier from the customer, but it may alternatively include receiving a response to a suggestive sales message provided by vending machine 1000. Block 1616 represents delivery of the component products comprising the package to the customer. The process steps for accomplishing delivery of a package according to several alternative embodiments are described with reference to Figures 20-22. Package Definition Referring now to Figure 17, the process steps executed by CPU 1126 to permit an operator to define a package will be described. At step 1710, CPU 1126 performs a routine to verify the authorization of the operator using authorization table 1200. The routine represented by step 1710 may be performed in any number of ways that are well known to one of ordinary skill. At step 1712, CPU 1126 receives via input device 1010 an operator-generated request to define a package. CPU 1126 further receives package definition data via input device 1010, as indicated by step 1714. The package definition data includes a package identifier, a package price and at least one corresponding component product identifier. At step 1716, the received package definition data is then stored in a record of package offer table 1400. At step 1718, CPU 1126 sets status field 1420 of the relevant record of package offer table 1400 to "ACTIVE." Once the relevant package data has been defined and stored, CPU 1126 prompts the operator to enter other package data, as indicated at step 1720. If the operator indicates a desire to continue defining packages, decision step 1722 directs CPU 1126 to continue processing at step 1714. Otherwise, CPU 1126 processes step 1724 and communicates the defined package offers to customers via display 1024, thereby completing the operator-defined package data registration process. In addition to instructions for an operator-defined package data registration process, the present invention may also include instructions for an automatic package definition process. Such a process directs CPU 1126 to automatically populate records of package offer table 1400 based on predefined criteria. CPU 1126 examines every record in automatic package rules table 1500. identifies combinations of records in inventory table 1300 that meet the rules criteria and creates a record in package offer table 1400 for every acceptable combination. Referring now to Figure 18A-18D, exemplary process steps are illustrated for automatically defining and maintaining package offers according to rules data stored in automatic package rules table 1500. Figures 18A and 18B represent an automatic package definition process that is preferably executed periodically. This process automatically defines package offers, and may be performed once upon restocking or periodically, such as after a sale or any time inventory data such as component price or available inventory has been updated. Although conventional vending machines maintain static inventory data during periods of zero sales, vending machines employing dynamic revenue management algorithms may experience changing inventory data resulting from, for example, expiring products or changing demand. It is therefore preferable to periodically execute such a process. At step 1810, a pointer is set to the beginning of automatic package rules table 1500. The first record of the table is retrieved at step 1812. At step 1813, CPU 1024 defines all possible combinations of component products based on the retrieved automatic package rules. Steps 1814-1824 are performed for every combination of component products defined at step 1813. Inventory data for all component products identified by the retrieved automatic package rule record are retrieved at step 1814. If the available inventory of any component of a potential package is equal to zero, the package is unavailable, and decision step 1816 directs process flow to step 1826. Otherwise the package price is calculated at step 1818. At step 1820, CPU 1126 is directed to determine whether the calculated package price satisfies the relevant rule. If the package price does not satisfy the relevant rule, process flow is directed to step 1826. Otherwise CPU 1126 determines whether a duplicate package offer exists for the relevant rule. If a duplicate package offer exists, decision step 1822 directs CPU 1126 to process step 1824, and the package offer data is defined and stored. At step 1826. CPU 1126 determines whether the end of the automatic package rules table is reached. If the end of table 1500 has not been reached, the process continues with step 1812. Referring now to Figures 18C and 18D, there is illustrated an automatic periodic package update process. This process automatically updates package offers based on changing inventory data. Changes to inventory data which may trigger the execution of the illustrated process include a change in component price and a change in available inventory. At step 1850, CPU 1126 receives a signal representing a change in inventory data for an identified product. CPU 1126 retrieves the inventory record for the identified product at step 1852. At decision step 1854, CPU 1126 determines whether the available inventory for the identified product is equal to zero, and directs process flow to step 1856 or 1860 for a zero and non-zero determination, respectively. At step 1856, CPU 1126 searches package offer table 1400 and identifies all records corresponding to the inventory record retrieved at step 1852. The status field of every package offer records identified at step 1852 is updated to "INACTIVE" at step 1858. If process flow is directed to step 1860, the available inventory field of the inventory record retrieved at step 1852 is greater than zero. Step 1860 directs CPU 1126 to search package offer table 1400 to identify all records corresponding to the retrieved inventory record. For every identified package, the package price is calculated at step 1862. Field 1422 of every package record is examined to determine whether the package was automatically defined. If a package was not automatically defined, decision step 1864 directs process flow to step 1874, and CPU 1126 updates the package price. For an automatically defined package offer, CPU 1126 retrieves the corresponding automatic package rule data at step 1866. At step 1868, CPU 1126 determines whether the package offer is within the parameters of the corresponding automatic package rule. If the package definition meets the parameters of the automatic rule, decision block 1870 directs CPU 1 126 to update the package price. Otherwise, the status field of the package offer record is set to "INACTIVE," as shown by step 1872, whereby communication of the package offer via display 1024 is terminated. In addition to operator defined package offers and package offers automatically defined based on stored rules, package offers may be defined by a customer of vending machine 1000. Referring now to Figure 19, the process steps of an exemplary customer package definition process are illustrated. At step 1910, CPU 1 126 receives a customer request via input device 1010 to define a package. CPU 1126 receives from the customer the component product identifiers via input device 1010 at step 1912. At step 1914, CPU 1126 receives a signal indicating the completion of the package definition. At step 1916, CPU 1126 retrieves from inventory table 1300 the inventory record corresponding to each of the received component product identifiers. Step 1918 then directs CPU 1126 to determine whether any component product has an available inventory equal to zero. If there is sufficient inventory of each component product, process flow passes through decision step 1920 to step 1922. Otherwise, CPU 1126 is directed to output a message via display 1024 indicating that the requested package is not available, as illustrated by step 1926. If all component products of the defined package are available, CPU calculates the package price at step 1922. The package price is calculated by adding the component prices of each component product. The package price is communicated to the customer via display 1022 at step 1924. Package Distribution Figures 20-22 illustrate three alternative processes directed toward distributing component products of a package. Figures 20-22 illustrate distribution of a predefined package, distribution of a suggestive sale and distribution of a customer defined package, respectively. Referring now to Figure 20, there is depicted a flow chart illustrating the steps of an exemplary process for distributing a predefined package. At step 2010, CPU 1126 receives a signal indicating that payment has been received from a customer. Payment may be received via coin acceptor 1012, bill validator 1014, or magnetic stripe reader 1015. CPU 1126 then receives a package identifier from the customer via input device 1010. The received package identifier is associated with one of the predefined packages stored in package offer table 1500. As previously indicated, the predefined package offer data represented by the records of table 1500 may be automatically defined based on control logic and/or rules stored in storage device 1134 or defined by a vending machine operator. One of ordinary skill will appreciate that the received package identifier may be validated in a number of well known ways. At step 2014, CPU 1126 uses the received package identifier as an index to retrieve package offer data, specifically a record from package offer table 1500. CPU 1126 then retrieves a record from inventory table 1300 for each component product identified in the retrieved package offer record, as shown by step 2016. At step 2018, CPU 1126 causes vending machine 1000 to dispense the identified component products. Of course, control logic for performing the appropriate accounting and sales management functions, such as verifying that sufficient payment has been received, determining change and adjusting inventory data, may be included in the distribution process. Referring now to Figure 21, there is depicted a flow chart illustrating the steps of an exemplary process for distributing "upsell" packages that are marketed based on a customer's initial product selection. These packages may be predefined or dynamically defined at the time of sale based on a first product selection and an amount of payment deposited. At step 2110, CPU 1126 receives a signal indicating that payment has been received from a customer. At step 2112, CPU 1126 receives a product identifier via input device 1010. At step 2114, CPU 1126 is directed to determine a package to offer the customer. The determination of the package includes identifying the component products of the package and determining the package price. The determined package offer is considered an "upsell" - an offer to sell both the product corresponding to the received product identifier and a second complementary product at a package price. The step of determining a package to offer the customer may be accomplished in various ways. For example, step 2114 may be performed according to control logic that directs CPU 1126 to select a package from among the predefined packages represented by the records of package offer table 1400. Alternatively, step 2114 may be performed according to control logic that directs CPU 1126 to define a package at the time of sale based on the rules represented by the stored records of automatic package rules table 1500. Such control logic would direct CPU 1126 to use the inventory data corresponding to the received first product identifier, the amount of payment received, the rules data of table 1500 and the inventory data of table 1300 to derive one or more acceptable second products to offer to a customer. The control logic of step 2114 may limit the type of package that is offered to the customer. For example, in the broadest embodiment, the package determined at step 2114 may be any package that includes the identified product. In such an alternate embodiment, the customer may be required to deposit more money or may receive change after purchasing the package. In a preferred embodiment, the package determined at step 2114 may be an upsell package offer for a rounded price, such as $1.00, thereby designed not only to eliminate the need for receiving additional payment but also to eliminate the need for dispensing change. Such an upsell package includes the product identified by the received product identifier and at least one complementary product at a package price equal to the amount deposited at step 2110. CPU 1126 may be directed to base the determination of the package on the payment received from the customer at step 2110 or on a rounded amount equal to the change due according to the product identified at step 2112. In yet another alternative embodiment, step 2114 may include control logic for providing a customer with a "mystery package." Such alternative control logic would instruct CPU 1 126 to determine a set of second product identifiers representing products that are complementary to the first product, and offer the customer the option to purchase a second product without providing an exact description of the second product. If the customer accepts the offer, the customer is informed of the identity of the second product after the first and second products are dispensed at step 2122. This alternative control logic could be employed by a vending machine operator to increase sales of low-demand or expiring products. At step 2116, CPU 1126 outputs a message extending the offer via display 1024, and CPU 1126 receives input from the customer via input device 1010 at step 2118. The received input indicates whether the customer accepts or declines the offer. If the customer declines the offer, decision step 2120 directs CPU 1126 to dispense the first product and process the transaction, as shown by steps 2124 and 2126. If the customer accepts the offer, CPU 1126 dispenses the component products and processes the transaction as shown by steps 2122 and 2126. Referring now to Figure 22, there is depicted a flow chart illustrating the steps of an exemplary process for distributing the components of a customer-assembled package. As illustrated, the customer defined package distribution process includes customer package definition process 2210. At step 2212, CPU 1126 receives a signal via input device 1010 representing a request to purchase the defined package. CPU 1126 processes the sale of the package at step 2214, including requiring additional payment and calculating and dispensing change to the customer. At step 2216, CPU 1126 causes the component products to be dispensed. Network Embodiments In addition to the stand alone embodiments previously described, the present invention is also well-suited to be implemented in a variety of network embodiments. As shown in Figure 9, in one such embodiment, vending machine 1000 may be connected to a server 900 and may preferably transmit digitally encoded data and other information between the server and/or other vending machines. The communication links between vending machine 1000 and vending server preferably comprise a cable, fiber or wireless link on which electronic signals can propagate. For example, vending machine 1000 may be connected via an Internet connection using a public switched telephone network (PSTN), such as those provided by a local or regional telephone operating company. Alternatively, each node may be connected by dedicated data lines, cellular, Personal Communication Systems ("PCS"), microwave or satellite networks. In this configuration, the previously described functionality provided by processing module 1044 (i.e. package definition) can be remotely performed by the vending server. Of course, conventional cryptographic techniques may be employed to ensure the authenticity of remote data received by the vending server or any connected vending machine. The vending server can also facilitate delivery of component products from among several networked vending machines allowing a customer to request a package from vending machine 1000 and receive products from several networked vending machines. While the best mode for carrying out the invention has been described in detail, those familiar with the art to which the invention relates will recognize various alternative designs and embodiments for practicing the invention. These alternative embodiments are within the scope of the present invention. Accordingly, the scope of the present invention embodies the scope of the claims appended hereto.

Claims: We claim: 1. A method for automatically managing a price of a product in a vending machine, the method comprising the steps of: receiving a product identifier specifying said product; receiving inventory data, said inventory data specifying a quantity of said product; determining price management data associated with said product; determining said price for said product; and storing said price management data, said inventory data and said price. 2. The method of claim 1 further comprising the steps of: receiving a request for restocking from an operator; and verifying the authority of said operator. 3. The method of claim 2 wherein the step of verifying includes the steps of: receiving an operator identifier specifying the identity of an operator; and determining whether the operator identifier is valid. 4. The method of claim 3 wherein the step of determining whether the operator identifier is valid includes the steps of: accessing authorization data defining a valid operator identifier; and comparing said operator identifier to said authorization data to determine whether the operator identifier corresponds to the valid operator identifier. 5. The method of claim 1 wherein the step of determining price management data includes the step of receiving a target date. 6. The method of claim 5 wherein said target date specifies an expiration date. 7. The method of claim 5 wherein said target date specifies a restocking date. 8. The method of claim 5 wherein the step of determining price management data includes the steps of: accessing a stock date; and computing a shelf time based on said stock date and said target date. 9. The method of claim 1 further comprising the step of displaying said price. 10. The method of claim 1 wherein the step of determining said price includes the step of receiving said price from an operator. 1 1. The method of claim 1 wherein the step of determining said price includes the step of accessing a suggested retail price. 12. The method of claim 1 wherein the step of determining said price includes calculating said price based on the formula: price — ( 1 remain / 1 total) X ( "maximum " "minimum)] ' "minimum where: P nc represents a new current price; STremain represents a remaining shelf time; STtot i represents a total shelf time; Pmaxi m u m represents a minimum price; and Pmi n i m u m represents a maximum price. 13. A method for automatically managing a price of a product in a vending machine, the method comprising the steps of: receiving a purchase request for the product; dispensing a unit of said product; updating inventory data, said inventory data specifying a quantity of said product; accessing price management data associated with said product: determining said price of said product, said price being based on said price management data and said inventory data; and storing said price. 14. The method of claim 13 wherein the step of dispensing includes the step of comparing said quantity to zero to determine availability of said product. 15. The method of claim 13 further comprising the step of displaying said price. 16. The method of claim 13 wherein the step of determining price management data includes the step of calculating an actual demand level associated with said product. 17. The method of claim 16 further comprising the steps of: retrieving a target demand level; and comparing said actual demand level to said target demand level. 18. The method of claim 13 wherein said price management data includes a price adjustment increment and said step of determining said price is based on said price adjustment increment. 19. The method of claim 13 wherein said price management data includes a minimum price and the step of determining said price includes the step of preventing said price from being less than said minimum price. 20. The method of claim 13 wherein said price management data includes a maximum price and the step of determining said price includes the step of preventing said price from being greater than said maximum price. 21. The method of claim 13 wherein the step of determining said price includes calculating said price according to the formula: pπce — ι current -^ "increment where: Pcun-ent represents the a current price; and Pi ncreme nt represents a price adjustment increment. 22. A method for automatically managing a price of a product in a vending machine, the method comprising the steps of: accessing evaluation data associated with said product; comparing said evaluation data to a predetermined threshold to determine whether to update the price of said product based on said evaluation data; accessing inventory data and price management data associated with said product; determining said price of said product, said price being based on said price management data and said inventory data; and storing said price. 23. The method of claim 22 wherein said evaluation data includes a target date; said threshold data includes a system date; and the step of comparing includes comparing said target date to said system date. 24. The method of claim 23 wherein said target date specifies an expiration date. 25. The method of claim 23 wherein said target date specifies a restocking date. 26. The method of claim 22 wherein said evaluation data specifies an actual demand level associated with said product; said predetermined threshold specifies a minimum acceptable demand level associated with said product; and the step of comparing includes comparing said actual demand level to said minimum acceptable demand level. 27. The method of claim 22 wherein the step of determining said price includes calculating said price according to the formula: pπce — 1 remain / 1 total) X ( "maximum " "minimum)! ' "minimum where: ST r e m ai n represents a remaining shelf time; STtotai represents a total shelf time; Pmaximum represents a minimum price; and Pmmimum represents a maximum price. 28. A method for automatically managing a price of a product in a vending machine, the method comprising the steps of: accessing price management data and inventory data associated with said product; determining said price of said product, said price being based on said price management data and said inventory data; and storing said price. 29. A vending machine for automatically managing a price of a product, the vending machine comprising: an input device configured to: receive a product identifier specifying said product; and receive inventory data, said inventory data specifying a quantity of said product; a memory configured to store: said price; said product identifier; said inventory data; and price management data; and a processor operatively coupled to said input device and said memory, said processor configured to: determine said price management data associated with said product; and determine said price for said product; and cause said memory to store said price management data and said price. 30. The vending machine of claim 29 wherein: said input device is further configured to receive a request for restocking from an operator; and said processor is further configured to verify the authority of said operator. 31. The vending machine of claim 30 wherein: said input device is further configured to receive an operator identifier specifying the identity of an operator; said memory is further configured to store said operator identifier; and said processor is further configured to determine whether the operator identifier is valid. 32. The vending machine of claim 31 wherein: said memory is further configured to store authorization data defining valid operator identifiers; and said processor is further configured to: access authorization data defining a valid operator identifier; and compare said operator identifier to said authorization data to determine whether the operator identifier corresponds to the valid operator identifier. 33. The vending machine of claim 29 wherein: said input device is further configured to receive a target date; said memory is further configured to store said target date; and said processor is further configured to determine price management data based on said target date. 34. The vending machine of claim 33 wherein said target date specifies an expiration date. 35. The vending machine of claim 33 wherein said target date specifies a restocking date. 36. The vending machine of claim 33 wherein: said memory is further configured to store a stock date; and said processor is further configured to: access a stock date; and compute a shelf time based on said stock date and said target date. 37. The vending machine of claim 29 further comprising an output device configure to display said price. 38. The vending machine of claim 29 wherein said input device is further configured to receive said price from an operator. 39. The vending machine of claim 29 wherein: said memory is further configured to store a suggested retail price associated with said product; and said processor determines said price based on said suggested retail price. 40. The vending machine of 29 wherein said processor is further configured to determine said price based on the formula: pπce — ϊ> 1 remain / 1 total) X ("maximum " "minimum)] ' "minimum where: P„c represents a new current price; STremain represents a remaining shelf time; STtotai represents a total shelf time; Pmaximum represents a minimum price; and P m i n i mum represents a maximum price. 41. A vending machine for automatically managing a price of a product, said vending machine comprising: an input device configure to: receive a purchase request for the product; a dispenser for dispensing a unit of said product; a memory configured to store: said price; price management data associated with said product; and inventory data associated with said product, said inventory data specifying a quantity; and a processor configured to: update said inventory data; access said price management data; determine said price of said product, said price being based on said price management data and said inventory data. 42. The vending machine of claim 41 wherein said processor is further configured to comparing said quantity to zero to determine availability of said product. 43. The vending machine of claim 41 further comprising an output device to display said price. 44. The vending machine of claim 41 wherein said processor is further configured to determine said price management data by calculating an actual demand level associated with said product. 45. The vending machine of claim 44 wherein said processor is further configured to: retrieve a target demand level; and compare said actual demand level to said target demand level. 46. The vending machine of claim 41 wherein said price management data includes a price adjustment increment and said processor is further configured to determine said price based on said price adjustment increment. 47. The vending machine of claim 41 wherein said price management data includes a minimum price and said processor is further configured to prevent said price from being less than said minimum price. 48. The vending machine of claim 41 wherein said price management data includes a maximum price and said processor is further configured to prevent said price from being greater than said maximum price. 49. The vending machine of claim 41 wherein said processor is further configured to determine a price according to the formula: pπce — "current ^ "increment where: Pcurrent represents the a current price; and Pincrement represents a price adjustment increment. 50. A vending machine for automatically managing a price of a product, the vending machine comprising: a memory configured to store: evaluation data associated with said product; price management data associated with said product; inventory management data; and said price; a processor operatively coupled to said memory, said processor configured to: access said evaluation data; compare said evaluation data to a predetermined threshold to determine whether to update said price of said product based on said evaluation data; access said price management data; and determine said price of said product, said price being based on said price management data and said inventory data. 51. The vending machine of claim 50 wherein said evaluation data includes a target date; said threshold data includes a system date; and said processor is further configured to compare said target date to said system date. 52. The vending machine of claim 51 wherein said target date specifies an expiration date. 53. The vending machine of claim 51 wherein said target date specifies a restocking date. 54. The vending machine of claim 50 wherein said evaluation data specifies an actual demand level associated with said product; said predetermined threshold specifies a minimum acceptable demand level associated with said product; and said processor is further configured to compare said actual demand level to said minimum acceptable demand level. 55. The vending machine of claim 50 wherein said processor is configured to determine said price includes calculating said price according to the formula: pπce — 1 remain ' I total) X ("maximum " "minimum)] <~ "minimum where: STremain represents a remaining shelf time; STtotai represents a total shelf time; Pmaximum represents a minimum price; and Pmimmum represents a maximum price. 56. A vending machine for automatically managing a price of a product, the vending machine comprising: a memory configured to store: price management data; inventory data; and said price; and a processor operatively coupled to said memory, said processor configured to: access said price management data and said inventory data; and determine said price of said product, said price being based on said price management data and said inventory data. 57. A computer-readable storage medium encoded with processing instructions for implementing a method for automatically managing a price of a product in a vending machine, said processing instructions for directing a computer to perform the steps of: receiving a product identifier specifying said product; receiving inventory data, said inventory data specifying a quantity of said product; determining price management data associated with said product; determining said price for said product; and storing said price management data, said inventory data and said price. 58. A computer-readable storage medium encoded with processing instructions for implementing a method for automatically managing a price of a product in a vending machine, said processing instructions for directing a computer to perform the steps of: receiving a purchase request for the product; dispensing a unit of said product; updating inventory data, said inventory data specifying a quantity of said product; accessing price management data associated with said product; determining said price of said product, said price being based on said price management data and said inventory data; and storing said price. 59. A computer-readable storage medium encoded with processing instructions for implementing a method for automatically managing a price of a product in a vending machine, said processing instructions for directing a computer to perform the steps of: accessing evaluation data associated with said product; comparing said evaluation data to a predetermined threshold to determine whether to update the price of said product based on said evaluation data; accessing inventory data and price management data associated with said product; determining said price of said product, said price being based on said price management data and said inventory data; and storing said price. 60. A method for automatically delivering units of a plurality of products, the method comprising: receiving a package identifier; identifying a plurality of products corresponding to the package identifier; determining a package price corresponding to the identified plurality of products; outputting a signal representing the package price; and outputting a signal representing an instruction to dispense a unit of each identified product. 61. The method of claim 60 wherein the package identifier includes a plurality of product identifiers, each product identifier corresponding to a product. 62. The method of claim 60 wherein the step of determining a package price corresponding to the identified plurality of products includes retrieving a stored package price. 63. The method of claim 60 wherein the step of determining a package price corresponding to the identified plurality of products includes the steps of: determining a component price corresponding to each of the identified products; calculating a package price as a function of the component prices for all of the identified products. 64. The method of claim 63 wherein the step of determining includes retrieving a stored component price. 65. The method of claim 60 further including the step of transmitting a unit dispensing instruction to a networked unit dispensing module. 66. The method of claim 60 further including the step of evaluating inventory data associated with each identified product to determine whether at least one unit of each identified product is available for delivery. 67. A method for facilitating the delivery of a unit of each of a plurality of products from at least one vending machine, the method comprising: receiving a package identifier; receiving a package price; receiving a plurality of product identifiers, each product identifier corresponding to a unique product; correlating the package identifier, the package price and the plurality of product identifiers; and storing the package identifier, the package price and the at least one product identifier. 68. A method for facilitating the delivery of a unit of each of a plurality of products from at least one vending machine, the method comprising: receiving a product identifier corresponding to a product; receiving an individual unit price representing the price of a unit sold individually; receiving a component price representing the price of a unit sold as a component of a package; correlating the product identifier, the individual price and the component price; and storing the product identifier, the individual price and the component price. 69. A method for automatically delivering units of a plurality of products from at least one vending machine, the method comprising: maintaining a database of at least one upsell price, said upsell price corresponding to an upsell product; generating a credit amount, the credit amount representing an amount of deposited currency; receiving a product identifier corresponding to a selected product; determining a product price corresponding to the selected product; determining an additional amount representing a credit amount in excess of the product price; comparing the additional amount with at least one of the upsell prices in the database; and if the additional amount corresponds to a compared upsell price, identifying at least one upsell product in the database which corresponds to the compared upsell price, and outputting a signal indicative of the identified upsell product. 70. The method of claim 69 wherein the upsell price represents a component price of the corresponding upsell product. 71. The method of claim 69 wherein the upsell price represents an individual unit price. 72. The method of claim 69 wherein the product price represents a component price. 73. The method of claim 69 wherein the product price represents an individual unit price. 74. A method for automatically delivering units of a plurality of products from at least one vending machine, the method comprising: maintaining a database of at least one upsell package price, said upsell package price corresponding to an upsell package; generating a credit amount, the credit amount representing an amount of deposited currency; receiving a product identifier corresponding to a selected product; identifying at least one upsell package in the database which corresponds to the credit amount and the received product identifier; and outputting a signal representing an instruction to dispense component products of the upsell package. 75. A method for automatically delivering units of a plurality of products from at least one vending machine, the method comprising: maintaining a database of a plurality of product data sets, each product data set including a component price and a product characteristic, each of the plurality of data sets corresponding to a product; comparing at least a portion of a first data set corresponding to a first product and at least a portion of a second data set corresponding to a second product; determining whether the first product and the second product are complementary based on said step of comparing; if the first product and the second product are complementary, determining a package price for the first and second products, and outputting signals indicative of an offer to sell the first and second products for the package price. 76. The method of claim 75 wherein said step of comparing includes comparing a first component price to a second component price. 77. The method of claim 75 wherein said step of comparing includes comparing a first product characteristic to a second product characteristic. 78. A vending machine for automatically delivering units of a plurality of products, the vending machine comprising: an input device configure to receive a package identifier; and a memory configured to store: the package identifier; and a package price; and a processor configured to: identify a plurality of products corresponding to the package identifier; determine a package price corresponding to the identified plurality of products ; output a signal representing the package price; and output a signal representing an instruction to dispense a unit of each identified product. 79. A vending machine for automatically delivering units of a plurality of products, the vending machine comprising: a memory configured to store: a package identifier; a package price; and a plurality of product identifiers, each product identifier corresponding to a unique product; an input device configured to receive: the package identifier; the package price; and the plurality of product identifiers; and a processor configured to: correlate the package identifier, the package price and the plurality of product identifiers; and store the package identifier, the package price and the at least one product identifier. 80. A vending machine for automatically delivering units of a plurality of products, the vending machine comprising: a memory configured to store: a database of at least one upsell package price, the upsell package price corresponding to an upsell package; a credit amount representing an amount of deposited currency; a product identifier corresponding to a selected product; an input device configured to receive the product identifier; and a processor configured to: generating the credit amount; identify at least one upsell package in the database which corresponds to the credit amount and the received product identifier; and output a signal representing an instruction to dispense component products of the upsell package. 81. A vending machine for automatically delivering units of a plurality of products, the vending machine comprising: a memory configured to store: a database of a plurality of product data sets, each product data set including a component price and a product characteristic, each of the plurality of data sets corresponding to a product; and a processor configured to: compare at least a portion of a first data set corresponding to a first product and at least a portion of a second data set corresponding to a second product; determine whether the first product and the second product are complementary based on said step of comparing; and if the first product and the second product are complementary, determine a package price for the first and second products, and output signals indicative of an offer to sell the first and second products for the package price. 82. A system for automatically delivering units of a plurality of products, the system comprising: means for receiving a package identifier; means for identifying a plurality of products corresponding to the package identifier; means for determining a package price corresponding to the identified plurality of products ; means for outputting a signal representing the package price; and means for outputting a signal representing an instruction to dispense a unit of each identified product. 83. A system for automatically delivering units of a plurality of products from at least one vending machine, the system comprising: means for maintaining a database of at least one upsell package price, said upsell package price corresponding to an upsell package; means for generating a credit amount, the credit amount representing an amount of deposited currency; means for receiving a product identifier corresponding to a selected product; means for identifying at least one upsell package in the database which corresponds to the credit amount and the received product identifier; and means for outputting a signal representing an instruction to dispense component products of the upsell package. 84. A computer-readable storage medium encoded with processing instructions for implementing a method for automatically delivering units of a plurality of products from at least one vending machine, said processing instructions for directing a computer to perform the steps of: receiving a package identifier; identifying a plurality of products corresponding to the package identifier; determining a package price corresponding to the identified plurality of products; outputting a signal representing the package price; and outputting a signal representing an instruction to dispense a unit of each identified product. 85. A computer-readable storage medium encoded with processing instructions for implementing a method for automatically delivering units of a plurality of products from at least one vending machine, said processing instructions for directing a computer to perform the steps of: maintaining a database of at least one upsell package price, said upsell package price corresponding to an upsell package; generating a credit amount, the credit amount representing an amount of deposited currency; receiving a product identifier corresponding to a selected product; identifying at least one upsell package in the database which corresponds to the credit amount and the received product identifier; and outputting a signal representing an instruction to dispense component products of the upsell package.

Inventors: JORASCH JAMES A, LECH ROBERT R, TEDESCO DANIEL E, WALKER JAY S, JORASCH, JAMES, A., LECH, ROBERT, R., TEDESCO, DANIEL, E., WALKER, JAY, S.
Applicants: WALKER ASSET MANAGEMENT LTD, WALKER ASSET MANAGEMENT LIMITED PARTNERSHIP
Application year: 1998
Main classification: G06F17
IPC codes: G06Q10, G06Q30, G07F9