U.S. patent application number 12/025074 was filed with the patent office on 2008-05-29 for determining the availability of purchasable items in a network environment.
Invention is credited to Cary Lee Bates, Mahdad Majd, John Matthew Santosuosso.
Application Number | 20080125906 12/025074 |
Document ID | / |
Family ID | 25303671 |
Filed Date | 2008-05-29 |
United States Patent
Application |
20080125906 |
Kind Code |
A1 |
Bates; Cary Lee ; et
al. |
May 29, 2008 |
DETERMINING THE AVAILABILITY OF PURCHASABLE ITEMS IN A NETWORK
ENVIRONMENT
Abstract
Embodiments of the present invention provide for a method,
system and article of manufacture for operating vending machines.
In general, a plurality of vending machines are nodes of a network.
Each node is configured to send, receive and process signals
carrying inventory, pricing, reservation and/or refund information.
In particular, a first signal is sent to one or more nodes
requesting inventory/price information from other nodes. Those
nodes carrying the product may reply with a second signal. In this
manner, the location of vending machines carrying one or more items
specified by a customer may be determined. In another embodiment,
vending machine items may be reserved from a remote location. In
still another embodiment, vending machines may be configured to
provide refunds under controlled conditions. A consumer may request
a refund in cases where the consumer was improperly charged for
goods are services that were not provided.
Inventors: |
Bates; Cary Lee; (Rochester,
MN) ; Majd; Mahdad; (Rochester, MN) ;
Santosuosso; John Matthew; (Rochester, MN) |
Correspondence
Address: |
IBM CORPORATION, INTELLECTUAL PROPERTY LAW;DEPT 917, BLDG. 006-1
3605 HIGHWAY 52 NORTH
ROCHESTER
MN
55901-7829
US
|
Family ID: |
25303671 |
Appl. No.: |
12/025074 |
Filed: |
February 4, 2008 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11003876 |
Dec 3, 2004 |
|
|
|
12025074 |
|
|
|
|
09848573 |
May 3, 2001 |
|
|
|
11003876 |
|
|
|
|
Current U.S.
Class: |
700/241 ;
194/217 |
Current CPC
Class: |
G06Q 20/20 20130101;
G06Q 30/0641 20130101; G06Q 30/0639 20130101; G06Q 10/087 20130101;
G07F 9/002 20200501; G07F 9/026 20130101; G07F 5/18 20130101; G06Q
30/0633 20130101 |
Class at
Publication: |
700/241 ;
194/217 |
International
Class: |
G06F 17/00 20060101
G06F017/00; G07C 3/00 20060101 G07C003/00; G07F 9/02 20060101
G07F009/02 |
Claims
1. A vending machine system, comprising: a command input interface
for receiving user commands; a network interface configured to
support a network connection with a network of vending machines;
and a processor connected to the command input interface and the
network interface, and configured to: receive a purchase order for
the vending machine item, the purchase order being submitted by a
customer, wherein a record of the purchase order is recorded and
includes an identification of the customer and the purchase order;
receive a payment amount for the vending machine item; receive an
electronic refund request for at least a portion of the payment
amount, wherein the refund request comprises an identification of
the customer and the purchase order; and determine whether to
refund the portion based on the identification of the customer,
wherein the customer is identified by determining if the
identification of the customer and the purchase order in the refund
request matches the identification of the customer and the purchase
order in the record of the purchase order.
2. The vending machine of claim 1, wherein determining whether to
refund the portion comprises: transmitting via the network
interface a request for the item at another vending machine in the
network of vending machines; and receiving a response indicative of
whether the item is available at least one other vending machine;
if the item is available at least one other vending machine,
providing an option to the customer to retrieve the item at the at
least one other vending machine, in lieu of receiving a refund of
the portion of the payment amount.
3. The vending machine of claim 1, wherein determining whether to
refund the portion comprises determining whether the customer is a
repeat customer based on the identification of the customer.
4. The vending machine of claim 1, wherein determining whether to
refund the portion comprises determining whether the customer has
previously requested a vending machine refund within a
predetermined time period based on the identification of the
customer.
5. The vending machine of claim 1, wherein the processor is further
configured to refund the portion if customer information
corresponding to the identification of the customer stored in a
database satisfies refund conditions.
6. The vending machine of claim 1, wherein the refund conditions
comprise a threshold number of purchases made by the customer.
7. The vending machine of claim 1, wherein determining whether to
refund the request comprises determining whether the customer's
money is lodged in a coin acceptor.
8. The vending machine of claim 1, wherein the processor is further
configured to: determine whether the customer has made a repeated
number of requests; if so, prevent the customer from making
additional purchases at the vending machine and prevent the
customer from making additional purchases at other vending machines
in the vending machine network.
9. The vending machine of claim 1, wherein the processor is further
configured to: grant the refund request, wherein granting the
refund request comprises issuing the customer a retrieval
identification number, wherein the retrieval identification number
may be input into another vending machine in the vending machine
network to retrieve another vending machine item of a same type as
the ordered vending machine item.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This is a divisional of co-pending U.S. patent application
Ser. No. 11/003,876 filed Dec. 3, 2004, which is a divisional of
co-pending U.S. patent application Ser. No. 09/848,573 filed May 3,
2001, which are both herein incorporated by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] Embodiments of the present invention relate generally to
vending machines. More particularly, embodiments relate to a method
and apparatus for communicating inventory information between
vending machines within a network.
[0004] 2. Description of the Related Art
[0005] Vending machines are well known. Conventionally, vending
machines have facilitated storage and dispensation of items such as
cigarettes, postcards, drinks, candy, frozen deserts, snacks, video
tapes, toys and the like. Such items are periodically loaded into a
vending machine and then dispensed in response to a purchase order
received from a user interfacing with a selection panel of the
machine.
[0006] Traditionally, vending machines are located in factories,
office buildings, bowling alleys and other high traffic locations.
Vending machine operators have found that strategic location of
vending machines in high traffic areas regularly frequented by the
same customers, promote habitual sales and brand loyalty. As a
result, vending machines have proved successful automated devices
for sales of goods to customers.
[0007] Despite the success of vending machines, problems remain
which jeopardize the effectiveness of such machines. One such
problem is maintaining adequate inventory in the vending machines.
Failure to keep machines stocked often results in loss of customer
loyalty, thereby detrimentally affecting sales. In effort to
maintain desired levels of inventory, vending machine management
software has been implemented. One such software product is
"Windows for Vending PRO with Inventory" produced by VendMaster.
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 times to stock the
machine, and calculate suggested prices.
[0008] However, despite advances in vending machine management
software, low inventory problems persist. As a result, customers
are often unable to locate a particular item at any given vending
machine. The customer is then forced to check other vending
machines for the item, or must resort to a different venue
altogether, e.g., a grocery store.
[0009] Another problem with conventional vending machines is that
customers are often improperly charged. For example, in some cases
items in a vending machine have been incorrectly loaded. Thus, a
customer requesting Coca-Cola may instead receive Dr Pepper. In
other cases, the item may become lodged in the dispensing slot so
as to be irretrievable by the customer. In still other cases, the
customer may receive a food item which has passed its expiration
date. In each of these cases, the customer has already made a
payment to the vending machine and is left with no immediate means
for refund. If a refund is desired, the customer is forced to
pursue tedious steps of contacting the vending machine owner and
follow the refund policy implemented by the owner. In the end, the
efforts expended by the customer far outweigh the value of
receiving a refund.
[0010] Accordingly, what is needed is a method, system and article
of manufacture for mitigating or eliminating the problems of the
prior art in the area of vending machine technology.
SUMMARY OF THE INVENTION
[0011] Embodiments of the present invention generally provide
methods, systems and articles of manufacture that facilitate
solutions in the area of vending machine technology. In one
embodiment, a method of locating an item in a network of vending
machines is provided. The method comprises receiving, at a vending
machine of the network of vending machines, a purchase order for
the item and transmitting, via a network connection, a request for
the item at another vending machine in the network of vending
machines. A response indicative of whether the item is available at
least one other vending machine is then received at the vending
machine.
[0012] In another embodiment, a vending machine for dispensing
items comprises a command input interface for receiving user
commands, a network interface configured to support a network
connection with a network of vending machines, a memory and a
processor connected to the command input interface, the network
interface and the memory. In operation, the processor is configured
to process purchase orders for items and issue a request via the
network interface to determine whether an item requested by a user
is available at another vending machine in the network of vending
machines.
[0013] Yet another embodiment provides a signal bearing medium
containing a program which, when executed by a processor, performs
a method of locating an item in a network of vending machines. The
method comprises receiving, at a vending machine of the network of
vending machines, a purchase order for the item and transmitting,
via a network connection, a request for the item at another vending
machine in the network of vending machines. A response indicative
of whether the item is available at least one other vending machine
is then received at the vending machine.
[0014] Still another embodiment provides vending machines
configured to provide refunds. Refunds are selectively provided
under controlled conditions. A consumer may request a refund in
cases where the consumer was improperly charged for goods or
services that were not provided. A determination of whether to
issue a refund may be made according to a refund history for a
particular consumer. For example, if the consumer has requested
more than a threshold number of refunds within a specified time
period then subsequent refund requests may be denied.
BRIEF DESCRIPTION OF THE DRAWINGS
[0015] So that the manner in which the above recited features and
embodiments are attained and can be understood in detail, a more
particular description of embodiments of the invention, briefly
summarized above, may be had by reference to the embodiments
described below and which are illustrated in the appended
drawings.
[0016] It is to be noted, however, that the appended drawings
illustrate only typical embodiments of this invention and are
therefore not to be considered limiting of its scope, for the
invention may admit to other equally effective embodiments.
[0017] FIG. 1 is a diagram of one embodiment of a vending machine
network.
[0018] FIG. 2 is a diagram of another embodiment of a vending
machine network.
[0019] FIG. 3 is one embodiment of a vending machine configured to
locate an item in a network of vending machines.
[0020] FIG. 4 is a data structure exemplifying an inventory
file.
[0021] FIG. 5 is a data structure exemplifying a reply list.
[0022] FIG. 6 is a flowchart illustrating the operation of a
vending machine configured to process customer purchase orders as
well as requests from other networked vending machines.
[0023] FIG. 7 is a diagram of a networked vending machine
environment.
[0024] FIG. 8 is a flowchart illustrating the operation of a
vending machine responding to a request received from a remotely
located networked vending machine.
[0025] FIG. 9 is a diagram of a reservation system for reserving
items at a vending.
[0026] FIG. 10 is a data structure illustrating a location
table.
[0027] FIG. 11 is a data structure illustrating a product
table.
[0028] FIG. 12 is a data structure illustrating a reserved item
table.
[0029] FIG. 13 is a data structure illustrating a missed sales
table.
[0030] FIG. 14 is a data structure illustrating a free money
table.
[0031] FIG. 15 is a data structure illustrating a non-refundable
cost table.
[0032] FIG. 16 is a graphical user interface configured to receive
reservation information.
[0033] FIG. 17 is a flowchart illustrating a method for handling
reservation requests.
[0034] FIG. 18 is a flowchart illustrating a method for purchasing
items at a vending machine.
[0035] FIG. 19 is a flowchart illustrating a method for processing
data structures containing reservation information in a vending
machine environment.
[0036] FIG. 20 is one embodiment of a vending machine configured to
refund a customer for a corrupted sale.
[0037] FIG. 21 is a data structure illustrating a refund file.
[0038] FIG. 22 is a flowchart illustrating a method for processing
a refund request.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0039] Embodiments of the present invention provide for a method
and system for operating vending machines. In one embodiment, a
vending machine comprises a network interface configured to
transmit a location request for a selected item to a network of
vending machines, and to receive a response indicative of whether
the selected item is available at another vending machine in the
network of vending machines. In another embodiment, a plurality of
vending machines are nodes of a network. Each node is configured to
send, receive and process signals carrying inventory, pricing,
reservation and/or refund information. In particular, a first
signal is sent to one or more nodes requesting inventory/price
information from other nodes. Those nodes carrying the product may
reply with a second signal. In this manner, the location of vending
machines carrying one or more items specified by a customer may be
determined.
[0040] In another embodiment, vending machine items may be reserved
from a remote location. In such embodiments, a vending machine is
configured to receive a reservation request for a specified item.
The request may be issued from one of a plurality of client devices
(e.g., wireless telephones, desktop computers and the like) or from
a reservation control system.
[0041] In still another embodiment, vending machines may be
configured to provide refunds. Refunds are selectively provided
under controlled conditions. A consumer may request a refund in
cases where the consumer was improperly charged for goods or
services that were not provided.
[0042] One embodiment of the invention is implemented as a program
product for use with a computer system such as, for example, the
vending network environment 100 shown in FIG. 1 and described
below. The program(s) of the program product defines functions of
the embodiments (including the methods described below with
reference to FIGS. 6, 8, 17-19 and 22) and can be contained on a
variety of signal/bearing media. Illustrative signal/bearing media
include, but are not limited to: (i) information permanently stored
on non-writable storage media (e.g., read-only memory devices
within a computer such as CD-ROM disks readable by a CD-ROM drive);
(ii) alterable information stored on writable storage media (e.g.,
floppy disks within a diskette drive or hard-disk drive); and (iii)
information conveyed to a computer by a communications medium, such
as through a computer or telephone network, including wireless
communications. The latter embodiment specifically includes
information downloaded from the Internet and other networks. Such
signal-bearing media, when carrying computer-readable instructions
that direct the functions of the present invention, represent
embodiments of the present invention.
[0043] In general, the routines executed to implement the
embodiments of the invention, whether implemented as part of an
operating system or a specific application, component, program,
module, object or sequence of instructions may be referred to
herein as a "program." The computer program typically is comprised
of a multitude of instructions that will be translated by the
native computer into a machine-readable format and hence executable
instructions. Also, programs are comprised of variables and data
structures that either reside locally to the program or are found
in memory or on storage devices. In addition, various programs
described hereinafter may be identified based upon the application
for which they are implemented in a specific embodiment of the
invention. However, it should be appreciated that any particular
program nomenclature that follows is used merely for convenience,
and thus the invention should not be limited to use solely in any
specific application identified and/or implied by such
nomenclature.
Item Locating and Pricing
[0044] FIG. 1 shows a vending network environment 100 comprising a
plurality of vending machines 1041, 1042, . . . 104N connected to a
network 103. The vending machines 104 may be configured to dispense
any variety of goods such as food, drinks, tickets, toys, maps,
stamps, etc. Illustratively, each vending machine 104 includes a
magnetic credit/debit card reader 114, a cash acceptor interface
116, a dispensing slot 112, an input interface 110, and a display
108. Illustratively, the input interface 110 is a keypad. However,
any device configured to allow a customer to input information into
the vending machine 104 may be used. For example, in one
embodiment, the input interface 110 may be configured to receive
voice commands from a customer. The dispensing slot 112 is
primarily provided to dispense the purchasable goods contained
within the vending machine 104. However, in some embodiments, the
dispensing slot 112 may also output printed material containing,
for example, inventory information, pricing information and vending
machine location information.
[0045] The network 103, as well as the connection between the
vending machines 104 and the network 103, may include wire, radio,
fiber optic cable, or any other device or method adapted to support
a network connection. As such, the network 103 facilitates
communication between the vending machines 104. In one embodiment,
each vending machine 104 is a node connected to the network 103 and
is assigned a unique address. The unique addresses allow each of
the vending machines 104 to identify one another and exchange
information.
[0046] FIG. 2 shows another embodiment of a network environment 200
in which the vending machines 104 are connected to a control system
202. In general, the control system 202 is any computerized device
configured to receive/transmit control signals from/to the vending
machines 104. In a particular embodiment, the control system 202 is
implemented as a controller 204 and a memory/storage device 206.
Although only one controller 204 is shown, the network environment
200 may in fact include multiple controllers. The memory device 206
provides a repository for information such as inventory, prices,
vending machine locations and the like.
[0047] In operation, the vending machines 104 are configured to
transmit item requests and responses between one another. In
general, an item request may be transmitted in response to a
purchase order made by a customer at one vending machine 104 that
cannot satisfy the order. The failure to satisfy the purchase order
may be due to, for example, a maintenance issue or the requested
item being out of stock. Accordingly, the vending machine 104 at
which the purchase order was made (the "requesting machine")
transmits a request to fill the purchase order to the other vending
machines 104 via the network 103. One or more vending machines
capable of satisfying the order (the "responding machines") may
respond. The requesting machine may then notify the customer of the
replies received from the responding machines. In particular, the
customer is provided with location information pertaining to the
responding machines having the requested item in stock.
[0048] In the case of the network environment 100 shown in FIG. 1,
the vending machines 104 are configured for direct communication
between one another (i.e., a peer-to-peer architecture). In
contrast to the distributed approach of the network environment
100, the network environment 200 of FIG. 2 illustrates a
centralized implementation in which the control system 202 manages
information exchange between the vending machines 104. It is
understood, however, that the embodiments shown in FIG. 1 and FIG.
2 are merely illustrative. The particular configuration by which
information is exchanged between vending machines is not limiting
of the present invention, and persons skilled in the art will
recognize other embodiments.
[0049] FIG. 3 shows one embodiment of a vending machine 300 which
may be used to advantage as a vending machine 104 of the network
environments 100 and 200 described above with reference to FIGS. 1
and 2, respectively. The vending machine is particularly
representative of a vending machine 104 in the network environment
100 of FIG. 1. In the case of a vending machine 104 in the network
environment 200 of FIG. 2, some or all of the programs and data
structures described with reference to FIG. 3 may reside on the
control system 202. However, persons skilled in the art will
readily appreciate such differences in the implementation and
operation between the networks 100 and 200. Accordingly, a more
detailed description of network 200 is not necessary.
[0050] In general, the vending machine 300 includes a central
processing unit (CPU) 302, a memory 304 and a storage 306, each
connected by a bus 308. The vending machine 300 may also include an
interface 316 for external input/output devices. The CPU 302 is
configured with an inventory monitor program 310, which may be
loaded from memory 304 for execution. The memory 304 contains data
structures which may be utilized by the inventory monitor program
310 during execution. Illustratively, the memory 304 contains a
reply list 312 and an inventory file 314.
[0051] One embodiment of the inventory file 314 is shown in FIG. 4.
The inventory file 314 comprises a plurality of records 402
containing item and price information. A record 402 is provided for
each item carried by the vending machine 300. Accordingly, each
record 402 includes an item entry 404. A default price for each
item is contained in a price entry 406. In one embodiment, each
record 402 also includes a maximum price entry 408. An availability
entry 410 indicates the number of items in stock at the vending
machine. Entries 412 indicate that each record 402 may comprise
additional information.
[0052] One embodiment of the reply list 312 is shown in FIG. 5. The
reply list 312 includes a plurality of records 502 each comprising
a plurality of entries. In general, each record 502 contains
information received from a remotely located vending machine 300
(i.e., one of the other networked vending machines).
Illustratively, each record 502 includes an identification ("ID")
entry 504, a price entry 506, a location entry 508 and a directions
entry 510. Entries 512 indicate that each record 502 may include
additional information.
[0053] The ID entry 504 is configured to contain information
uniquely identifying a particular vending machine 300 in a network
of vending machines. The machine designated by the information
contained in a particular ID entry 504 may be referred to as a
"responding machine," because the ID information is typically
received in response to a request from a requesting machine. The
price entry 506 contains a price for an item carried by the
responding machine identified by the information contained in ID
entry 504 in the same record 502. The location entry 508 specifies
the location of the responding machine for the same record 502. The
direction entry 510 contains directions to the location (per the
information in the location entry 508) of responding machine for
the same record 502. Illustratively, the directions may be in the
form of a map and/or written directions. In some embodiments, a
customer may dictate the level of detail provided by the
directions, e.g., by requesting alternate routes and specifying an
origination point (in one embodiment, the default origination point
is the vending machine with which the customer is currently
interacting). In another embodiment, a customer is given the option
of downloading the directions onto, for example, a personal digital
assistant (PDA). In this case, the vending machine with which the
customer is interacting may provide the necessary hardware
interface (e.g., interface 316) and supporting software to support
the download.
[0054] During operation, the inventory monitor program 310
processes customer purchase orders for vending machine items. The
item availability and price is indicated by the inventory file 314.
If an item is available at a machine being interacted with a
customer, the purchase order is processed in a normal manner and
the item is dispensed accordingly. If the item is not available,
steps are taken to locate the item at another machine. In addition,
the price of the item may be adjusted.
[0055] FIG. 6 shows a method 600 for operating a vending machine
104/300 in a network environment comprising a plurality of vending
machines. Illustratively, the method 600 may be considered to
represent the operation within either of the network environments
100 and 200, described above with reference to FIGS. 1 and 2,
respectively. In general, the vending machine executing the method
600 is configured to either process requests from a customer or
from another machine, e.g. another vending machine or the control
system 202 shown in FIG. 2. For clarity, a vending machine
processing customer requests will be referred to as a "local"
machine while a vending machine processing a request from another
machine will be referred to as a "remote" machine.
[0056] Method 600 is entered at step 602 which may represent a
vending machine 104/300 being powered up and brought on-line with a
network connection to a plurality of other vending machines. Method
600 then proceeds to step 604 to receive an event.
[0057] At step 606 the method 600 queries whether the event is an
incoming request from another vending machine. If so, the request
is processed at step 608. The method 600 then returns to step 604
to wait for another event. If step 606 is answered negatively, the
method 600 proceeds to step 610.
[0058] At step 610, the method 600 queries whether the event is an
item purchase order from a customer interacting with the local
vending machine. If not, the event is handled at step 612 and the
method 600 then returns to step 604. In this case, the processing
at step 612 may include, for example, issuing a service/maintenance
request, updating item pricing information and the like. If step
610 is answered affirmatively, the method 600 proceeds to step 614
to determine the item availability at the local machine. To this
end, the local machine references the availability entry 410 for
the appropriate item (indicated by the item entry 404) in the
inventory file 314. If the item is available at the local machine,
the purchase order is processed at step 612 in a conventional
manner. Method 600 then returns to step 604.
[0059] If the requested item is not available at the local machine,
steps are taken to determine item availability at remote networked
vending machines. As such, a request for the item is transmitted to
one or more remote vending machines at step 616. In one embodiment,
the request is broadcast to all remote vending machines connected
to a common local area network (LAN). Alternatively, the request is
provided to selected vending machines connected to a LAN. For
example, the customer may be given the option to select one or more
remote vending machines according to his or her preference. In some
cases, the customer may provide a proximity parameter to restrict
recipients of the request. For example, the customer may specify
that only those remote vending machines within a 50 meter radius
receive the request.
[0060] At step 618, the method 600 initiates a timer. The timer
defines some period of time during which replies received from
remote machines are accepted by the local machine. At step 620, the
method 600 prepares to receive replies. Each reply received before
the expiration of the timer is added to the reply list 312, as
indicated by step 622. Once the timer expires, the method 600
proceeds to step 624 and queries whether the reply list 312
contains any entries (i.e., replies from remote machines). If so,
the entries are processed at step 626. The manner in which entries
are processed may be determined, in part, by customer specified
options. For example, if the customer specified a proximity
parameter, only the requests received from remote machines
satisfying that parameter are considered. Alternatively, the
entries may be processed according to default parameters. For
example, the local machine may be configured to select the closest
remote machine having the item.
[0061] Once the reply list entries are processed at step 626, or if
no replies where received at step 624, the results are provided to
the customer at step 628. If the item was located at one or more
remote machines, the customer may be provided with the item price
and the location/direction of/to the remote machine(s). The reply
list 312 is then cleared at step 630 and the method 600 returns to
step 604 to receive additional events for processing.
[0062] In one embodiment, the item request may be broadcast to
certain sectors of a vending machine network. The determination of
which sectors to broadcast to may be dynamically determined
according to whether the item has been located. This approach may
be illustrated with reference to FIG. 7. FIG. 7 shows a network
environment 700 comprising a plurality of sectors or clusters 7021,
7022, . . . 702N (collectively referred to as 702). Illustratively,
the clusters 702 may be representative of physical structures such
as buildings or may simply be representative of a defined
geographic area. In a particular embodiment, the network
environment is implemented in a stadium, concert hall, convention
center or other large facility capable of holding a large capacity
crowd. The clusters 702 are then areas of the facility each hosting
at least one vending machine. Illustratively, each cluster 702
contains a plurality of vending machines 7041, 7042, . . . 704N
(collectively referred to as 704). Each individual vending machine
of a given plurality of vending machines 704 is networked to one
another as well as to each of the other pluralities of vending
machines 704. In one embodiment, the scope of the search for a
particular item may be restricted to the cluster 702 at which the
purchase order originates. Consider, for example, a customer
interfacing with one of the plurality of vending machines 7041 of a
first cluster 7021. If the vending machine being interfaced with
does not to have the item requested, a request for the item may be
broadcast to each of the other machines of the plurality of vending
machines 7041 in the cluster 7021. If none of the other vending
machines 7041 in the cluster 7021 can satisfy the purchase order, a
request may be broadcast to one or more of the other clusters 702.
In a particular embodiment, the request is broadcast to the next
closest cluster 702 (with respect to the local machine with which
the customer is interfacing). This pattern may be repeated until
the item is located at one of the clusters 702 or until all
clusters have been exhausted unsuccessfully.
[0063] The foregoing embodiment is merely illustrative and persons
skilled in the art will readily recognize other embodiments. In
particular, it is understood that an item request may simply be
broadcast to all vending machines on a network. Alternatively, and
as previously discussed, the customer may specify a proximity
parameter that dictates the scope of the broadcast.
[0064] FIG. 8 shows a method 800 representing one embodiment of
step 608 for processing a request received from another vending
machine. Method 800 is entered at step 802 and proceeds to step 804
to query whether the incoming request is to check for item
availability. If not, the method 800 proceeds to step 805 to handle
the request and then exits at step 806, in which case processing
returns to step 604 shown in FIG. 6. If the request is to determine
item availability, the method 800 proceeds to step 807.
[0065] At step 807, the method 800 queries whether the item is in
stock at the machine that is processing method 800. If not, the
method 800 exits at step 806. In this case, the responding machine
may also indicate to the requesting machine (i.e., the local
machine) the item is not available at the responding machine. If
the item is available at step 807, then the method 800 proceeds to
step 808.
[0066] At step 808, the method 800 queries whether the price for
the requested item is set at its maximum price. The maximum price
for any given item is contained in the maximum price entry 408 of
the inventory files 314. In the present embodiment, the price of an
item is specified either by the price contained in the default
price entry 406 or the price contained in the maximum price entry
408. Illustratively, the price to be charged for a particular item
is specified by flagging the appropriate entry 406 or 408.
Accordingly, the determination at step 808 is made by identifying
which entry 406,408 is flagged. Although the inventory file 314
shown in FIG. 4 provides only two possible prices, other
embodiments include any number of prices in a range of prices.
[0067] If query 808 is answered negatively, the price of the item
may be raised (e.g., to the maximum price or any other price
provided by the inventory file 314) at step 810. The determination
to raise a price may include, for example, an inventory assessment
of all other vending machines on a common network. If the inventory
assessment indicates a relatively low inventory for a particular
item, then the price may be raised. In addition, each vending
machine connected to a network may maintain the same price for any
given item. Accordingly, if the price is raised at any single
vending machine, the adjusted price is broadcast to each of the
other machines on the network. In this manner, the prices of items
carried by vending machines of a particular network reflect the
real-time realities of supply and demand.
[0068] Once the price for an item has been raised at step 810, or
if the item price is already at its maximum price at step 808, the
method 800 replies to the requesting machine at step 812.
Illustratively, the reply indicates that the responding machine
carries the item and may also indicate the price of the item. In
addition, the reply preferably includes a unique ID for the
responding machine as well as location/directions for the
responding machine. The method 800 then exits at step 806.
Reservation System and Method for Vending Machine Items
[0069] In some embodiments, a customer is given the option of
reserving an item carried by a vending machine. For example, in the
foregoing embodiments in which an item was located at one or more
remote machines, a customer may input a reservation command to the
local machine in order to hold the item at the remote machine(s)
for a period of time. Embodiments for reserving an item are
described in more detail below.
[0070] FIG. 9 shows a system 900 which is an exemplary embodiment
of a reservation system. System 900 has a plurality of input
devices 9021, 9022, . . . 902N (collectively referred to as input
devices 902N). Illustratively, the input devices 902N include a
vending machine 9021, a personal digital assistant (PDA) 9022, a
wireless ("cell") phone 9023, a laptop 9024, and a desktop 9025.
Each input device 902N may include a central processing unit (CPU)
904, a number of peripheral components, such as a computer display
906, a storage device 908, a printer 914, and various input devices
(e.g., keyboard 910 and mouse 912). Each input device 902N is
connected to a network 916. Network 916 may represent any type of
networked and public networks (e.g., the Internet). Moreover, any
number of computers and other devices may be networked through
network 916.
[0071] The network 916 connects the input device 902N to a central
control system 920. The central control system 920 may represent
any type of computer, computer systems or other programmable
electronic device, including a client computer (e.g., similar to
input devices 902N), a server computer, a portable computer, a
handheld computer, an embedded controller, a network of computers,
etc. In one embodiment, the control system 920 is an embodiment of
the control system 202 described above with reference to FIG.
2.
[0072] The central control system 920 illustratively includes at
least one processor 922 coupled to memory 924 and read only memory
(ROM) 926 via a bus 925. Processor 922 may represent one or more
processors (e.g., microprocessors), and memory 924 may represent
the random access memory (RAM) devices, comprising the main storage
of the central control system 920, as well as any supplemental
levels of memory, e.g., cache memories nonvolatile or backup
memories (e.g., programmable or flash memories), read only
memories, etc. In addition, memory 924 may be considered to include
memory storage physically located elsewhere in central control
system 920, e.g., any cache memory in processor 922, as well as any
storage capacity used as a virtual memory, e.g., as stored on a
mass storage device 932 or on another computer coupled to the
central control system 920 via network 916.
[0073] Central control system 920 also illustratively receives a
number of inputs and outputs for communicating information
externally. For interface with a user or operator, central control
system 920 includes one or more user input devices 930 (e.g., a
keyboard, a mouse, a trackball, a joystick, a touch pad, and/or a
microphone, among others).
[0074] For additional storage, central control system 920 may also
include one or more mass storage devices 932, e.g., a floppy or
other removable disk drive, a hard disk, a direct access storage
device (DASD), an optical drive (e.g., CD drive, a DVD drive, etc.)
and/or a tape drive among others. Furthermore, central control
system 920 may include and interface with one or more networks 940
(e.g., a LAN, a WAN, a wireless network, and/or the Internet,
amongst others) to permit the communication of the information with
other computers coupled to the network. It should be appreciated
that the central control system 920 may include suitable analog
and/or digital interfaces between processor 922 and each of the
other components of the central control system 920 and is well
known in the art.
[0075] Central control system 920 operates under the control of an
operating system ("O/S") 957, and executes or otherwise relies upon
various computer software applications, components, programs,
objects, modules, data structures, etc. Illustratively, a plurality
of data structures 942 include a location table 946, a product
table 948, a reserved item table 950, a missed sales table 952, a
free money table 954, and non-refundable table 955. One or more of
the data structures 942 may be periodically updated with
information from one or more of the client computers 902N. In
particular, the product table 948 may be updated with information
from the vending machine 9021 (e.g., with item
availability/quantity information). Illustrative programs 944
include a batch reserve item processing program 958, a reserve
program 960, and a purchase program 962. Moreover, various
applications, components, programs, objects, modules, etc. may also
execute on one or more processors in another computer coupled to
the central control system 920 via a network 916, in a distributed
or client-server computing environment, whereby the processing
required to implement the functions of a computer program may be
allocated to multiple computers over the network.
[0076] Those skilled in the art will recognize that the exemplary
environments illustrated in FIG. 9 are not intended to limit the
present invention. Indeed, those skilled in the art will recognize
that other alternate hardware and/or software environments may be
used without departing from the scope of the invention.
[0077] FIGS. 10-15 depict embodiments of the data structures 942.
Each data structure is organized as a plurality of rows and
columns. The columns designate a particular category of information
while each row comprises a record in the data structure. For
simplicity only one row/record of each data structure is shown.
However, it is understood that the data structures may each
comprise a plurality of rows/records.
[0078] FIG. 10 illustrates an embodiment of the location table 946
containing location records. Each location record comprises a
location identification ("ID") entry 1002, a physical location
entry 1004 and a description entry 1006. An entry 1008 is
representative of other entries which may be included in other
embodiments. The location ID entry 1002 contains a unique
identifier for all vending machine locations in a collection of
vending machines. In one embodiment, the location ID entry 1002
contains a network address for a vending machine. In an
Internet-based implementation the network address is an Internet
Protocol (IP) number. The physical location entry 1004 is a
representation of the physical location of the vending machine.
Illustratively, the physical location may be a longitude or
latitude, a Global Polishing System ("GPS") coordinate, a street
address, a building address, a grid map coordinate used to map out
the internals of a building, etc. Description entry 1006 is a brief
description of the machine at the specified location (e.g.,
maintenance history, operator, manufacturer, etc.).
[0079] FIG. 11 illustrates an embodiment of the product table 948.
The product table 948 is a central repository of all products found
within all vending locations. Each record of the table 948
corresponds to a particular item type at a particular location. The
table 948 comprises a location ID entry 1102, an item ID entry
1104, a quantity available entry 1106, a quantity reserved entry
1108, and a price entry 1110. An entry 1112 is representative of
other entries which may be included in other embodiments. The
location ID entry 1102 contains an address provided from one of the
location ID entries 1002 and corresponds to a location where the
item specified by the record is available. The item ID entry 1104
is used as a unique identifier to differentiate amongst products.
The quantity available entry 1106 is the number of items available
at the specified location. The quantity reserved entry 1108 is the
number of items that have been reserved at the specified location.
The difference between the quantity reserved and the quantity
available indicates how many available items are available for
purchase. The price entry 1110 indicates the price of the specified
item (item ID entry 1104) in the specified location (location entry
1102).
[0080] FIG. 12 illustrates an embodiment of the reserved item table
950. The reserved item table 950 identifies all items within all
locations that have been reserved. Illustratively, the reserved
item table 950 comprises a location ID entry 1202, an item ID entry
1204, a customer ID entry 1206, a quantity entry 1208, a payment
form entry 1210, a data and time entry 1212, a non-fundable flag
entry 1214, a non-refundable cost entry 1216, a pre-paid entry 1218
and a confirmation number entry 1220. An entry 1222 is
representative of other entries which may be included in other
embodiments. The location ID entry 1202 is a unique identifier that
represents the location of an item being reserved and may be any of
the locations specified by the location ID entries 1002. The item
ID entry 1204 is a unique identifier that represents the item being
reserved and corresponds to one of the identifiers contained in
item ID entry 1104. The customer ID entry 1204 is an optional
column used to contain customer information such as a credit card
number, a physical address, a social security number, etc. The
quantity entry 1208 is the number of items (entry 1204) that are on
reserve. The payment form entry 1210 is a representation of how the
item was or will be paid for. The payment form can be any of cash,
coin, credit card, debit card, charge via phone etc. The date and
time entry 1212 is used to keep track of when the consumer is
scheduled to pick up the reserved item. In general, the data and
time is specified by the consumer or a vending machine operator. In
one embodiment, an arbitrary grace period may be added to the date
and time to allow the consumer some additional time to pick up the
item. The non-refundable flag entry 1214 is used by an item
distributor to charge the consumer a non-refundable processing fee
if the item being reserved is not picked up by the time/date
specified in the data and time entry 1212. The non-refundable cost
entry 1216 is an amount the customer is charged if the
non-refundable flag is turned on (set to YES) and the specified
time/date criteria are not satisfied by the customer. The pre-paid
entry 1218 indicates whether the item has been pre-paid (i.e., paid
for prior to item pickup). If so, then the non-refundable flag is
set to NO. The confirmation number entry 1220 contains some value
or values representative of a particular reservation request. In
one embodiment, the confirmation number is some combination of the
values contained in the other entries of the reserved item table
record. The number is provided to a customer if the reservation
request is accepted by the reservation control system 920. The
customer may then use the number to pickup the reserved item at a
future time.
[0081] In one embodiment, reserving an item and prepaying for the
item may result in a discount for the consumer, since this
guarantees a sale to the distributor regardless of whether the item
is picked up or not. Other incentive plans and features may also be
provided.
[0082] FIG. 13 illustrates an embodiment of the missed sales table
952. The missed sales table 952 contains data used by a distributor
to track items that could have been sold. Illustratively, the
missed sales table 952 comprises a location ID entry 1302, an item
ID entry 1304, a missed quantity entry 1306 and a reason entry
1308. An entry 1310 is representative of other entries which may be
included in other embodiments. The location ID entry 1302 is the
unique machine location identifier described with reference to the
location ID entry 1002 of the location table 946. The item ID entry
1304 is the unique item identifier described with reference to item
ID entry 1104 of the product table and represents an item that
could not be sold. The number of items that could not be sold is
contained in the missed quantity entry 1306. The reason description
entry 1308 contains a brief description explaining why the item
could not be sold. For example, the item may have been out of stock
when a purchase request was made. This information may then be used
for marketing and sales analysis.
[0083] FIG. 14 illustrates one embodiment of the free money table
954. In general, the free money table 954 contains data used by a
distributor to keep track of money the distributor makes without
actually selling a product. An entry is added to this table for all
non-refundable processing fees and all items that where
pre-purchased and not picked up. Illustratively, the free money
table 954 comprises a location ID entry 1402, an item ID entry
1404, a quantity entry 1406 and a price entry 1408. An entry 1410
is representative of other entries which may be included in other
embodiments. The location ID entry 1402 contains the unique
location identifier described with reference to the location ID
entry 1002 of the product table 946. The item ID entry 1404
contains the unique item identifier (entry 1104 of the product
table 948) that represents the item being reserved. The number of
items that were not sold is contained in the quantity entry 1406.
The corresponding price of the unsold items, or the non-refundable
processing fee associated with the item, is contained in price
entry 1408.
[0084] FIG. 15 illustrates an embodiment of the non-refundable cost
table 955. The non-recoverable cost table 955 is used and
maintained by a distributor to determine non-recoverable costs for
given items. Illustratively, the non-refundable cost table
comprises a location ID entry 1502, an item ID entry 1504 and a
non-recoverable cost entry 1506.
[0085] In operation, the data structures 942 are used to facilitate
reservation/purchase of items contained in the vending machines
9021. In particular, the data structures are used by the programs
958, 960 and 962. The data structures and the programs are
described in more detail below.
[0086] In one embodiment, any of the client devices 902N may be
configured with a graphical user interface (GUI) adapted to
facilitate reserving vending machine items. In general, the GUI
enables a user to select a pickup location and one or more items
via a menu interface. FIG. 16 is an exemplary graphical user
interface (GUI) 1600 which may be used to advantage by a consumer
to carry out a reservation operation. The GUI 1600 can be operated
by any input device such as a keyboard, a mouse, a touchpad or
voice recognition technology.
[0087] Illustratively, the GUI 1600 includes a plurality of
dropdown boxes each including one or more user selectable options.
A location dropdown box 1620 contains all possible vending machine
locations that are available. A user may then select one or more
locations at which to reserve an item for purchase. It is
contemplated that a more complex menu system may be provided; e.g.,
a map showing all locations could be provided and clicking the
mouse over a location on the map would be equivalent as entering
the location. A selection is provided for each location ID entry
1002 of the location table 946. The location could also be
defaulted to the nearest machine and/or the list contained with the
dropdown box could be ordered by location.
[0088] An item dropdown box 1640 will be populated once a location
is selected from dropdown box 1620. Until a location is selected
from dropdown box 1620 the dropdown box 1640 is disabled. Once
enabled, dropdown box 1640 provides a list of all available
products available from the location(s) specified by the dropdown
box 1620. In other embodiments, the item dropdown box 1640 may be
implemented as a screen with product images. A user then selects an
item(s) for reservation by clicking on an image of the appropriate
item. In one embodiment, the user may also be provided with product
information such as return dates (in the case of video rentals),
warranty information, rebate information and the like. In still
another embodiment, the user selects an item from the item dropdown
box 1620 and then selects a location from the location dropdown box
1620 wherein only the locations having the item available are
shown.
[0089] Once an item has been selected, a quantity window 1650 is
made available. The window 1650 allows the consumer to enter the
number of items to be reserved. In one embodiment, the window may
indicate a number of the selected items currently available.
[0090] A pre-pay check box 1660 will allow the user to prepay for
the item(s). It is contemplated that by checking check box 1660 a
discount may be provided to the consumer. In one embodiment, if
check box 1660 is not checked, then the consumer is charged a
processing fee if they do not pick up or purchase the reserved item
within a specified time. The specified time may be entered using a
date box 1665 and a time box 1667 are used to enter the data and
time, respectively, of the intended pickup of the product(s) being
reserved. In one embodiment, the date and time may be provided by
the machine executing the GUI 1600, rather than allowing the
consumer to specify the date/time.
[0091] If the consumer indicates a desire to pre-pay, then a
payment form window 1662 is made active. The window 1662 provides a
list of possible payment forms including, for example, a selection
of credit cards. In addition, entries may be provided within window
1662 in which to enter credit card information.
[0092] After entering the reservation order information, the user
then clicks an Enter button 1680 to accept the order or a Cancel
button 1685 to cancel the order. In the event the Enter button is
pressed, processing of the data is then performed and a result is
returned in the message area 1690. It is also contemplated that
instead of a textual message form, the machine providing the GUI
1600 could print out the transaction in the form of a receipt or
provide an auditory output.
[0093] FIG. 17 depicts a method 1700 for handling input requests
for reserving items. Illustratively, method 1700 is entered into at
step 1702 when the consumer launches the reservation program 960
via, for example, the GUI 1600.
[0094] Initialization work is done by the program 960 at step 1705.
When the user executing program 960 clicks the enter button 1680
the program 960 proceeds to step 1710 where the reservation order
information input to the GUI 1600 is received.
[0095] At step 1720, method 1700 determines if the item (and
quantity) being requested is available. Thus, a reference to entry
1106 of the product table 948 is made using the specified items and
location IDs. If the item is available, method 1700 proceeds to
step 1725 to query whether the consumer has elected to pre-purchase
the item. If so, the item is added to the reserved item table 950
at step 1730. At step 1731, a message is output to the message area
1690 to inform the consumer that the item has been reserved. In
addition, the message may include a confirmation number (stored to
the confirmation number entry 1220) which the consumer may use to
pick up the item at a future time. The method 1700 then exits at
step 1732.
[0096] If, at step 1725, the item was not pre-purchased then method
1700 proceeds to 1735 to get a non-refundable fee amount from the
non-refundable cost table 955. The non-refundable fee is retrieved
from the non-refundable cost table 955 and will be charged to the
customer if the consumer does not pick up the intended item within
a specified time period (as indicated by date and time checkboxes
1665 and 1667, respectively). At step 1730, the purchase order
information (e.g., location ID, item ID, item quantity, date/time
information, pre-pay information and payment form) is included in a
record and entered as a row in the reserved item table 950. If the
consumer has prepaid then the flag in entry 1214 of the record is
set to "Y." At step 1731, a message is output to the message area
1690 to inform the consumer that the item has been reserved. The
method 1700 then terminates at step 1732.
[0097] Referring back to 1720, if the item is not available then
the user is asked if they would like to process additional
locations for the item. This may be done by outputting a message to
the message area 1690. If the user desires not to process more
locations, e.g., by clicking the cancel button 1685, method 1700
proceeds to step 1745. At step 1745 a "thank you" message may be
output to the message area 1690 and the method 1700 is exited at
step 1732.
[0098] If the user desires to process more locations the ENTER
button 1680 is pressed and method 1700 continues to step 1750 where
the location table is copied. At step 1755, the location table 946
is sorted by proximity of location relative to a current location
(i.e., the location of the customer). Method 1700 then proceeds to
loop through all locations at step 1760, processing the data in
order such that the first available item found will break the loop.
Specifically, method 1700 loops by retrieving a location record at
step 1645 and determining whether the item is available at the
specified location at step 1770 (by checking the product table
948). If the item is not available, method 1700 returns to step
1760. In this manner, the loop continues until all location records
are exhausted.
[0099] If the item is not located, then the loop eventually ends by
exiting to step 1785 where a message is output to the consumer
indicating that the item is not available. If at any time during
the loop the product is found, then the method 1700 proceeds to
step 1725 to query whether the consumer has elected to pre-pay (by
activating checkbox 1660). Step 1725 and subsequent steps have been
described above.
[0100] FIG. 18 depicts a flow diagram of a method 1800 for handling
purchases of items at a vending machine 9021. The purchases may be
for reserved items (i.e., items reserved via method 1700) and
unreserved items. Illustratively, method 1800 is an embodiment
exemplifying the operation of the purchase program 962. Method 1800
is entered at step 1802 and proceeds to step 1805 to wait on an
event. At step 1810 method 1800 retrieves an event for processing.
Method 1800 continues immediately to step 1815 to query whether the
event is to purchase an item. If not, processing proceeds to step
1820 to perform normal machine operations. Method 1800 then returns
to step 1805 to wait on another event.
[0101] If, at step 1815, the event is a purchase event, then method
1800 proceeds to step 1825 to query whether the purchase event is a
reserve purchase (i.e., a request to purchase an item previously
reserved via method 1700). If not, method 1800 proceeds to step
1830 where it is determined if a sufficient quantity of the item is
available for purchase. Thus, step 1830 includes a reference to the
entry 1106 of the product table 948 for the machine being
interfaced with (as determined by the location ID). If the item is
not available, then at step 1835 a message is sent to the message
area at 1690 stating that all remaining items (if any) are reserved
and the product is not available to be purchased. If step 1830 is
answered affirmatively, then method 1800 proceeds to step 1820 and
a sale of the item is completed. Upon such a sale the method 1800
returns to step 1805 to wait on another event.
[0102] Referring back to step 1825, if the purchase is a reserve
purchase, method 1800 proceeds to step 1840 where it is determined
whether the item was pre-paid. If so, then processing continues at
step 1845 where the appropriate entry is removed from the reserved
item table 950. The item is then dispensed at step 1850. If the
item was not pre-paid, processing continues from step 1840 to step
1855 where the consumer's purchase order is handled (e.g., money is
accepted) and then to step 1845 where the appropriate entry is
removed from the reserved item table 950. Method 1800 then returns
to step 1805 to wait on another event.
[0103] FIG. 19 depicts a flow diagram of a method 1900 for cleaning
up the reserve item table 950 and populating the free money table
954 with unhandled reserved item requests. Method 1900 may be
understood as one embodiment exemplifying the operation of the
batch reserve program 958.
[0104] Method 1900 is entered at step 1902 and then enters a loop
at step 1905. The loop is performed for each record in the reserved
item table 950. A record is read at step 1910 and at step 1915 it
is determined if the time and date in the record (entry 1212) have
passed. If not, then method 1900 returns to step 1905 to loop
through the remaining records of the reserved item table 950. If,
at step 1915, the time and date have passed then processing
continues at step 1920 where the appropriate record is removed from
the reserved item table 950. Method 1900 then proceeds to step
1925.
[0105] At step 1925, the method 1900 queries whether the item was
pre-paid. If so, an entry is added to the free money table 954
indicating that the item was not picked up at step 1930 and the
method 1900 returns to step 1905 to process the next record. If the
item was not a pre-paid, then processing continues at step 1935
where it is determined whether there will be non-refundable charge
with reference to the flag at entry 1214 of the current reserved
item table record. If a non-refundable charge exists then, at step
1940, an entry is added to the free money table 954 reflecting the
fact that a non-refundable charge was applied (e.g., against the
consumer's credit card) in the amount specified by entry 1218 of
the current reserved item table record. Method 1900 then returns to
step 1905 to begin processing the next record. If, at step 1935,
there is no non-refundable charge, method 1900 returns to step
1905. Once all records have been processed, then method 1900
proceeds to step 1950 where the program 958 waits by some
pre-determined amount of time before processing the reserved item
tables 950 again.
Refund Systems and Methods
[0106] In each of the foregoing embodiments the customer is
typically expected to pay for the purchased item(s). For example,
the customer may insert bills into the cash acceptor interface 114
(shown in FIG. 1). However, as described above, in some cases the
transaction is corrupted, such that the customer is charged for an
item he/she never receives or for defective goods or services. In
such instances, embodiments for recovery of funds paid are
provided.
[0107] FIG. 20 shows a refund processing machine 2000. In one
embodiment, the refund processing machine 2000 is a vending machine
illustrative of a machine such as the vending machines 1041, 1042,
. . . 104N described above with reference to FIG. 1-2. In another
embodiment, the machine 2000 is a refund processing computer
remotely located from vending machines and accessible from a
plurality of devices. For example, the refund processing machine
2000 may be implemented similarly to the central control system
920. For simplicity, the following discussion assumes that the
machine 2000 is a vending machine. Further, the components of the
machine 2000 may be similar to those described above with reference
to FIG. 3. Accordingly, where possible, like numerals have been
used to identify components previously discussed with reference to
FIG. 3.
[0108] The CPU 302 of the vending machine 2000 is shown configured
with a refund program 2002, which may be loaded from memory 304 for
execution. The memory 304 contains data structures which may be
utilized by the refund program 2002 during execution.
Illustratively, the memory 304 contains a refund file 2004.
[0109] FIG. 21 shows one embodiment of illustrative refund file
2004. The refund file 2004 includes a record for each refund
request processed by the vending machine 2000. Each record
comprises a number of entries corresponding to column designations.
Illustratively, each record includes a customer ID entry 2102, a
payment form entry 2104, an item entry 2106, a quantity entry 2108,
a date entry 2110, a total cost entry 2112, and a refund flag entry
2114. An entry 2116 is representative of other columns that may be
included in other embodiments.
[0110] The customer ID entry 2102 may contain any value or values
that identify a customer. For example, a Social Security number may
be used. Alternatively, a customer name and address may be used.
The payment form entry 2104 indicates the means by which a customer
paid for a particular item. Payment forms include, for example,
credit cards, debit cards, checks, cash etc. In the case of credit
cards and debit cards the payment form entry 2104 may also include
card information such as a card number and expiration date. The
item (or service) which a customer purchased or attempted to
purchase, and for which a refund is being requested, is indicated
by item entry 2106. The quantity of items purchased is contained in
the quantity entry 2108. The date of the purchase transaction is
contained in the date entry 2110. The total cost of the transaction
is contained in the total cost entry 2112. The refund flag entry
2114 indicates whether the customer was refunded for the
transaction represented by the record.
[0111] FIG. 22 shows a method 2200 for handling a refund request.
The method 2200 may be understood as one embodiment illustrating
the execution of the refund program 2002.
[0112] Method 2200 is entered at step 2202 and then proceeds to
step 2204 to wait on an event. When an event is received, the
method 2200 proceeds to step 2206 and queries whether the event is
a refund request. A refund request may be initiated by a refund
requester (e.g., consumer) selecting a refund option provided on an
output device (e.g., the display 108 shown in FIG. 1) following a
purchase order. The purchase order may be for an item at the
machine with which the customer is interfacing or an item at a
remotely located machine on the network of machines. In some
embodiments, the refund option may only be provided when the
vending machine 2000 detects a corrupted transaction. For example,
the vending machine 2000 may detect that the purchased item is
lodged in the dispensation slot 112 (shown in FIG. 1) or that the
customer's money is lodged in the coin acceptor. In another
embodiment, the refund option is provided after every transaction.
In still another embodiment, the customer may required to agree to
a charge (in the amount of the requested refund) to a credit card
(or similar instrument) if a subsequent investigation indicates
that the refund was not merited. In this latter embodiment, the
agreement of the customer to a possible charge may be attained via
the input interface (e.g., the input interface 110 shown in FIG. 1)
of the vending machine.
[0113] In yet another embodiment, only select customers are allowed
refunds. For example, those customers who repeatedly purchase an
item and have purchased a threshold number of items (i.e., loyal
repeat customers) may receive refunds upon request. The historical
purchase data of customers is maintained with reference to the
customer ID described above. Thus, a record for each purchase by a
given customer may exist. When a refund is requested, the database
of records for the requesting customer is accessed to determine the
customer's purchase history. Statistical algorithms may then be
performed to determine the customer's eligibility for a refund. The
refund approval may depend on such factors as the frequency with
which the customer makes purchases for the item on which the refund
is being requested, the total volume (in dollars) of sales to the
customer at vending machines, the ratio of the refund to the sales,
etc. In some cases, the customer's credit history may be checked to
determine financial responsibility, in much the same way credit
history analysis is performed by lending institutions and credit
card issuers.
[0114] If the event is not a refund request, the event is handled
at step 2208 and the method 2200 then returns to step 2204 to wait
on another event. If the event is a refund request, the method 2200
proceeds from step 2206 to step 2210 and queries whether a refund
is available. In one embodiment, the determination at step 2210
includes a reference to the refund file 2004 to determine whether
the customer qualifies for a refund. For example, a determination
may be made as to whether the customer requesting the refund has
requested refunds in the past. If the customer has previously
requested refunds, steps may be taken to restrict the number of
refunds and/or the amount of money refunded in a given time period.
In some embodiments, a customer who repeatedly requested refunds is
prevented from making additional purchases at the vending machine
2000, or any other networked vending machine. Of course, this
latter embodiment assumes payment forms (e.g., credit cards) which
allow the vending machine 2000 to identify the customer before
completing the purchase order. In another embodiment, a network of
vending machines may collectively have an upper limit on refunds.
When the limit is reached, no vending machine on the network will
issue any more refunds. Alternatively or additionally, each vending
machine 2000 may be configured with its own upper limit.
[0115] If a refund is not available at step 2210, the method 2200
proceeds to step 2212 where a message is issued to the customer
indicating that a refund is not available. A reason for the refund
unavailability may also be provided to the customer.
[0116] If a refund is available at step 2210, the method 2200
proceeds to step 2214 where the refund is applied. The manner in
which the refund is applied may depend upon the payment forms
selected by the customer. For example, in the case of a credit card
purchase, the refund may be applied to the customer's credit card.
In the case of a check purchase, the check is returned to the
customer. The method 2200 then returns to step 2204 to wait on
another event.
[0117] In another embodiment, instead of issuing a refund, the
vending machine with which the customer is interfacing may attempt
to locate the item for which the refund is requested at another
vending machine. This attempt may be made automatically by the
vending machine with which the customer is interfacing in response
to the refund request or may be made at the option of the customer.
Embodiments for locating a vending machine item have been described
above. If the item can be located at another machine, the user is
provided with the option to retrieve the item at the other machine.
If more than one machine carries the item, the user may elect which
machine to retrieve the item from. Retrieval of the item may be
facilitated by issuing the customer a retrieval identification
number which may be input to any networked vending machine carrying
the item.
[0118] In some embodiments, the information made available by the
refund file 2004 is used for maintenance purposes and failure
analysis. For example, a vending machine at which numerous refunds
are requested may be indicative of a defective machine.
Accordingly, the machine may be evaluated and, if necessary,
repaired before returning the machine to operation.
[0119] It should be noted that while the refund program 2002 and
the inventory program 310 (and their associated data structures)
are shown separately (in FIG. 20 and FIG. 3, respectively), in some
embodiments a vending machine is configured with both programs 310,
2002 to support both their respective features. More generally, a
network of vending machines may support any combination of the item
location embodiments, the reservation embodiments, and the refund
embodiments.
[0120] While the foregoing is directed to embodiments of the
present invention, other and further embodiments of the invention
may be devised without departing from the basic scope thereof, and
the scope thereof is determined by the claims that follow.
* * * * *