U.S. patent application number 15/497160 was filed with the patent office on 2017-08-10 for method for dynamic inventory dispensing and depletion of a vended product.
The applicant listed for this patent is Byte Foods, Inc.. Invention is credited to Christopher Alika Ah New, Zhongning Chen, Artem Tkachenko, Alexander Yancher.
Application Number | 20170228755 15/497160 |
Document ID | / |
Family ID | 51729612 |
Filed Date | 2017-08-10 |
United States Patent
Application |
20170228755 |
Kind Code |
A1 |
Tkachenko; Artem ; et
al. |
August 10, 2017 |
METHOD FOR DYNAMIC INVENTORY DISPENSING AND DEPLETION OF A VENDED
PRODUCT
Abstract
One variation of a method for dynamically pricing vended
products includes: identifying a purchase pattern of a user at a
vending machine; in response to an approaching sell-by date for a
unit of a product loaded into the vending machine and based on the
purchase pattern, setting a discount rate for the unit of the
product for the user; transmitting an electronic communication to
an account associated with the user, the electronic communication
indicating the discount rate for the unit of the product;
identifying the user in a transaction initiated at the vending
machine; and in response to selection of the unit of the product
from the vending machine during the transaction, initiating a
payment with a payment mechanism supplied by the user according to
the discount rate.
Inventors: |
Tkachenko; Artem; (San
Francisco, CA) ; Yancher; Alexander; (San Francisco,
CA) ; Chen; Zhongning; (San Francisco, CA) ;
Ah New; Christopher Alika; (San Francisco, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Byte Foods, Inc. |
San Rafael |
CA |
US |
|
|
Family ID: |
51729612 |
Appl. No.: |
15/497160 |
Filed: |
April 25, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
14209688 |
Mar 13, 2014 |
|
|
|
15497160 |
|
|
|
|
61779402 |
Mar 13, 2013 |
|
|
|
61779818 |
Mar 13, 2013 |
|
|
|
61906333 |
Nov 19, 2013 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G07F 9/026 20130101;
G07G 1/009 20130101; G06Q 30/0267 20130101; G07F 11/02 20130101;
G06Q 30/0223 20130101; G06Q 10/087 20130101; G07F 9/002 20200501;
F25D 2700/08 20130101; G06Q 20/18 20130101; G06Q 20/3278 20130101;
G07F 11/38 20130101; G06Q 30/0224 20130101; G06Q 30/0202 20130101;
G06Q 30/0237 20130101 |
International
Class: |
G06Q 30/02 20060101
G06Q030/02; G07F 11/00 20060101 G07F011/00; G07F 9/02 20060101
G07F009/02; G06Q 20/18 20060101 G06Q020/18; G06Q 10/08 20060101
G06Q010/08 |
Claims
1. A method for dynamically depleting inventory of vended
perishable products, comprising: identifying an initial inventory
of a set of perishable products stored on an open shelf inside a
vending machine; retrieving sell-by times of the set of perishable
products; in response to a sell-by time of a particular unit of a
first product in the set of perishable products falling within a
threshold period of time from a current time: identifying a second
product complementary to the first product and stored within the
vending machine; retrieving a transaction history of purchases from
the vending machine by a group of patrons; based on the transaction
history, identifying a previous transaction in which a particular
patron, in the group of patrons, purchased a first unit of the
second product from the vending machine; based on the transaction
history, anticipating a predicted transaction time of a future
purchase of a second unit of the second product by the particular
patron from the vending machine; in response to the predicted
transaction time preceding the sell-by time, assigning a first
discount rate for the particular unit of the first product to the
particular patron; transmitting an electronic communication to the
particular patron prior to the predicted transaction time, the
electronic communication specifying the particular unit of the
first product, the first discount rate for the particular unit of
the first product when purchased with a unit of the second product,
the vending machine, and a time window for validity of the first
discount rate, the time window preceding the sell-by time of the
particular unit of the first product; and maintaining an original
rate for the particular unit of the first product for each other
patron in the group of patrons excluding the particular patron; and
in response to removal of the particular unit of the first product
and the second unit of the second product during a new transaction
between the particular patron and the vending machine during the
time window, applying the first discount rate to purchase of the
particular unit of the first product in the new transaction.
2. The method of claim 1, wherein maintaining the original rate
comprises, in response to purchase of the particular unit of the
first product by a second patron, distinct from the first patron,
during the time window, billing the second patron according to the
original rate of the particular unit of the first product prior to
application of the discount rate; and further comprising, in
response to purchase of the particular unit of the first product by
the second patron: voiding the first discount rate for the
particular unit of the first product for the particular patron; and
notifying the particular patron of unavailability of the particular
unit of the first product and invalidity of the first discount
rate.
3. The method of claim 1, wherein transmitting the electronic
communication comprises defining the time window for validity of
the first discount rate preceding the sell-by time and offset from
the sell-by time by a second time window.
4. The method of claim 3, further comprising, in response to
expiration of the first time window prior to the purchase of the
particular unit of the first product by the particular patron:
voiding the first discount rate for the particular unit of the
first product for the particular patron; and assigning to a second
patron a second discount rate for the particular unit of the first
product, the second discount rate valid during the second time
window.
5. The method of claim 4, wherein assigning to the second patron
the second discount rate comprises: based on the transaction
history, identifying a second previous transaction in which the
second patron, in the group of patrons, purchases a third unit of
the second product; anticipating a second predicted transaction
time of a second future purchase of the third unit of the second
product by the second patron from the vending machine; in response
to the second predicted transaction time preceding the sell-by
time, assigning the second discount rate for the particular unit of
the first product to the second patron; and prior to the second
predicted transaction time, transmitting a second electronic
communication to the second patron, the electronic communication
specifying the particular unit of the first product, the second
discount rate, the vending machine housing the particular unit of
the first product, and the second time window for validity of the
second discount rate.
6. The method of claim 1: wherein transmitting the electronic
communication comprises transmitting an electronic notification to
a mobile computing device associated with the particular patron;
and further comprising transmitting a receipt for the transaction
to the mobile computing device in response to completion of the new
transaction.
7. The method of claim 1: wherein identifying an initial inventory
of the set of perishable products comprises inventorying a set of
foodstuffs arranged on a particular shelf within the vending
machine by receiving identifiers broadcast wirelessly by the set of
foodstuffs comprising the particular unit of the first product;
wherein retrieving sell-by times for the set of units of perishable
products comprises: identifying the first product comprising a
first foodstuff; defining the time window for validity of the
discount rate for the first foodstuff preceding the sell-by time of
the first foodstuff; and wherein assigning the first discount rate
for the particular unit comprises setting the first discount rate
for the first foodstuff based on the original rate of the first
foodstuff and proximity of the time window to the sell-by time of
the first foodstuff.
8. The method of claim 1, wherein identifying the second product
complementary to the first product comprises: identifying the
particular unit of the first product comprising a dessert item; and
selecting the second product, comprising an entree item
complementary to the dessert item, based on a predefined
compatibility relationship between the dessert item and the entree
item.
9. The method of claim 1, wherein applying the first discount rate
to purchase of the particular unit comprises: initiating the new
transaction in response to receiving a cashless payment mechanism
from the particular patron; and in response to initiating the new
transaction, rendering a visual indicator on a display coupled to
the vending machine, the visual indicator visually distinguishing
the particular unit of the first product from other products in the
set of perishable products arranged on the open shelf in the
vending machine.
10. The method of claim 9: wherein identifying the initial
inventory of a set of perishable products comprises identifying the
initial inventory of the set of perishable products within the
vending machine based on wireless signals received by a radio
antenna arranged over the open shelf within the vending machine
prior to unlocking a door of the vending machine; further
comprising: unlocking the door of the vending machine in response
to initiation of the new transaction; recording a final inventory
of perishable products within the vending machine based on wireless
signals received by the radio antenna following opening and closure
of the door during the new transaction; initiating a payment, with
the cashless payment mechanism, for a difference between the
initial inventory and the final inventory to complete the new
transaction; and in response to completion of the new transaction,
clearing the visual indicator from the display.
11. The method of claim 1, wherein retrieving sell-by times of the
set of perishable products comprises: retrieving a schedule for a
next delivery of additional units of the first product to the
vending machine; identifying an expiration time for the first
product corresponding to when freshness of the first product
declines below a preset freshness threshold; and in response to the
expiration time preceding the next delivery, defining the sell-by
time of units of the first product corresponding with the
expiration time of the first product; and in response to the
expiration time succeeding the next delivery, defining the sell-by
time corresponding with the next delivery.
12. The method of claim 1, wherein transmitting the electronic
communication to the patron comprises indicating a quantity of
units of the second product currently stored in the vending
machine.
13. The method of claim 1: wherein identifying the previous
transaction comprises collecting a transaction history of the
particular patron with a set of vending machines within a
geographic location, the set of vending machines comprising the
vending machine; further comprising calculating a distance between
the vending machine and a mobile computing device associated with
the particular patron; and wherein transmitting the electronic
communication comprises transmitting the electronic communication
to the mobile computing device in response to the distance between
the vending machine and the mobile computing device remaining below
a threshold distance.
14. The method of claim 1, further comprising, in response to
removal of the particular unit of the first product unaccompanied
by the second product during the new transaction by the particular
patron: voiding the first discount rate; and applying a second
discount rate, less than the first discount rate, to purchase of
the particular unit of the first product in the second new
transaction.
15. A method for dynamically depleting inventory of vended
perishable products, comprising: identifying an initial inventory
of a set of perishable products stored on an open shelf inside a
vending machine; defining sell-by times of the set of perishable
products; in response to a sell-by time of a particular unit of a
first product in the set of perishable products falling within a
threshold period of time from a current time: retrieving a
transaction history of purchases from the vending machine by a
group of patrons; based on the transaction history, identifying a
previous transaction in which a particular patron, in the group of
patrons, purchased a first unit of the second product from the
vending machine, the first product comprising a substitute for the
second product; based on the transaction history, anticipating a
predicted transaction time of a future transaction of a second unit
of the second product by the particular patron from the vending
machine; in response to the predicted transaction time preceding
the sell-by time, assigning a first discount rate for the
particular unit of the first product to the particular patron; and
transmitting an electronic communication to the particular patron
prior to the predicted transaction time, the electronic
communication specifying the particular unit of the first product
as a substitute for the second product, the first discount rate for
the particular unit of the first product, the vending machine, and
a time window for validity of the first discount rate, the time
window preceding the sell-by time of the particular unit of the
first product; maintaining an original rate for the particular unit
of the first product for each other patron in the group of patrons
excluding the particular patron; in response to removal of the
particular unit of the first product during a new transaction
between the particular patron and the vending machine during the
time window, applying the first discount rate to purchase of the
particular unit of the first product in the new transaction.
16. The method of claim 15: wherein identifying the previous
transaction comprises identifying the second product in a previous
transaction by the particular patron, an original price of the
first product greater than an original price of the second product;
and wherein assigning the first discount rate for the particular
unit of the first product to the particular patron comprises
assigning a discounted price to the particular unit of the first
product, the discounted price of the first product greater than the
original price of the second product.
17. The method of claim 16: wherein transmitting the electronic
communication comprises notifying the particular patron of the
first discount rate for the particular unit of the first product
when purchased with a unit of the second product; and wherein
applying the first discount rate comprises, in response to removal
of the particular unit of the first product and a unit of the
second product during the new transaction, applying the first
discount rate to purchase of the particular unit of the first
product in the new transaction and the second unit of the second
product.
18. The method of claim 15, wherein identifying the previous
transaction comprises: identifying the particular unit of the first
product comprising a first entree item; and selecting the second
product, comprising a second entree item distinct from the first
entree item, based on a predefined substitution relationship
between the first entree item and the second entree item.
19. The method of claim 15, further comprising: locking a door of
the vending machine; at a processor arranged on the door, recording
an initial inventory of products arranged within the vending
machine based on signals received by a radio antenna arranged over
a shelf within the vending machine, transmitted to a radio
frequency identification reader arranged on the door via a cable
routed through a frame of the door, and read by the radio frequency
identification reader; initiating the new transaction in response
to receiving a cashless payment mechanism from the particular
patron; unlocking the door in response to authentication of the
cashless payment mechanism; in response to closure of the door,
recording a final inventory of products within the vending machine
based on signals received by the radio antenna and read by the
radio frequency identification reader; and initiating a payment
with the cashless payment mechanism for a difference between the
initial inventory and the final inventory to complete the
transaction.
20. The method of claim 19: wherein identifying the initial
inventory of the set of perishable products comprises recalling a
previous final inventory following a preceding transaction, and
wherein initiating the payment with the cashless payment mechanism
comprises identifying a disjoint of products between the final
inventory and the previous final inventory of the preceding
transaction
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 14/209,688, filed on 13 Mar. 2014, which
claims the benefit of U.S. Provisional Application No. 61/779,402,
filed on 13 Mar. 2013, U.S. Provisional Application No. 61/779,818,
filed on 13 Mar. 2013, and U.S. Provisional Application No.
61/906,333, filed on 19 Nov. 2013, all of which are incorporated
herein in their entireties by this reference.
[0002] The application is related to U.S. patent application Ser.
No. 14/201,369, filed on 7 Mar. 2014, which is incorporated in its
entirety by this reference.
TECHNICAL FIELD
[0003] This invention relates generally to the field of vending
machines, and more specifically to a new and useful method for
dynamically dispensing and depleting inventory in a vending
machine.
BRIEF DESCRIPTION OF THE FIGURES
[0004] FIG. 1 is a flowchart representation of a method of one
embodiment of the invention;
[0005] FIG. 2 is a flowchart representation of one variation of the
method;
[0006] FIG. 3 is a flowchart representation of one variation of the
method;
[0007] FIG. 4 is a flowchart representation of one variation of the
method; and
[0008] FIG. 5 is a flowchart representation of one variation of the
method;
[0009] FIG. 6 is a flowchart representation of one variation of the
method; and
[0010] FIG. 7 is a schematic representation of a smart shelf system
in accordance with one variation of the method.
DESCRIPTION OF THE EMBODIMENTS
[0011] The following description of embodiments of the invention is
not intended to limit the invention to these embodiments, but
rather to enable any person skilled in the art to make and use this
invention.
1. Method and Applications
[0012] As shown in FIG. 1, a method for dynamically pricing vended
products includes: identifying a purchase pattern of a user at a
vending machine in Block S120; in response to an approaching
sell-by date for a unit of a product loaded into the vending
machine and based on the purchase pattern, setting a discount rate
for the unit of the product for the user in Block S130;
transmitting an electronic communication to an account associated
with the user, the electronic communication indicating the discount
rate for the unit of the product in Block S140; identifying the
user in a transaction initiated at the vending machine in Block
S170; and in response to selection of the unit of the product from
the vending machine during the transaction, initiating a payment
with a payment mechanism supplied by the user according to the
discount rate in Block S180.
[0013] The method functions to enable timely and dynamic pricing of
products loaded into a vending machine to increase awareness and
(price) availability of vended products to consumers, thereby
promoting purchases, moving product out of the vending machine, and
preventing waste of perishable or time-sensitive vended product. In
particular, the method functions to distribute notifications of
discount rates for particular units of product stored within a
vending machine to select users, thereby prompting these users to
purchase product from the vending machine. For example, the vending
machine can be loaded with fresh produce and/or freshly-prepared
foodstuffs, and these notifications can be time-sensitive such that
a selected user may be incited to purchase a foodstuff from the
vending machine prior to an expiration date or a sell-by date to
the foodstuff and/or before the vending machine is restocked with
new, fresh foodstuffs. Alternatively, the method can distribute
notifications of discount rates for units of a new product loaded
into a vending machine to arouse local interest in the product that
is now available from the vending machine.
[0014] Blocks of the method can be implemented on a vending machine
100, such as described in U.S. patent application Ser. No.
14/201,369 and such as shown in FIG. 7. For example, the vending
machine 100 can include: a housing 120 defining an open internal
volume; a door 122 arranged across the open internal volume; a
locking mechanism 112 that intermittently locks and unlocks the
door 122; a radio-frequency identification (RFID) reader 160 that
polls RFID tags arranged on units of product(s) arranged within the
open internal volume; and a payment module 140 that collects
payment information from patrons in exchange for vended product.
The vending machine can operate by: locking the door of the vending
machine; recording an initial inventory of products arranged within
the vending machine based on signals received by the RFID reader;
initiating a transaction in response to receiving a payment
mechanism from a user (i.e., a "patron"); unlocking the door in
response to authentication of the payment mechanism; recording a
final inventory of products within the vending machine based on
signals received by the RFID reader in response to closure of the
door; and initiating a payment with the payment mechanism for a
difference between the initial inventory and the final inventory to
complete the transaction.
[0015] All or a portion of the method can alternatively be executed
on a computer network in communication with the vending machine,
such as a remote server in communication with the vending machine
over the Internet via Wi-Fi or cellular communication protocol. The
computer system can be a cloud-based computer (e.g., Amazon EC2), a
mainframe computer system, a grid-computer system, or any other
suitable computer system. For example, the computer system can be a
remote server that communicates with one or more vending machines
over HTTP (or TCP or UDP) protocols through a web service (e.g.,
Amazon AWS). The computer system can thus transmit product and/or
customer data (e.g., product pricing schema, product shelf time,
customer account and payment information) to and/or from vending
machines over an Ethernet, cellular, Wi-Fi, satellite, or other
suitable network. However, Blocks of the method can be implemented
in any other suitable way and on any other suitable one or more
computer systems and/or vending machines.
[0016] The method can therefore be particularly applicable to
vending machines, smart shelf systems, or other point of sale
systems that supply food and/or beverages, such as freshly-prepared
salads, sandwiches, soups, and smoothies from various local
vendors. For example, the method can execute on or in conjunction
with a vending machine that stores and vends various fresh
foodstuffs from one or more open shelves within, such as salads,
sandwiches, and fresh fruits and vegetables stocked in the vending
machine by one or more local suppliers, such as a local cafe, a
local bakery, and/or a local produce farm. However, though the
invention is described herein in the context of dynamically
adjusting prices for fresh, perishable food units vending from a
vending machine, the invention can also be applicable to vended
electronic devices, paper newspapers and other printed media, DVDs
and CDs, clothing, shoes, or any other vendable product.
2. Sell-by Date
[0017] One variation of the method includes Block S110, which
recites identifying the sell-by date (and time) of the unit of the
product. Generally, Block S110 functions to retrieve, generate, or
calculate the sell-by date of a single unit of product currently
stored in the (i.e., one) vending machine. For example, Block S110
can identify a single unit associated with an approaching (i.e.,
nearing) sell-by date and stored in a particular vending machine.
Block S110 can additionally or alternatively function to retrieve,
generate, or calculate a nearest or general sell-by date of
multiple units of product(s) currently stored in the vending
machine, such as units stored on a single shelf within the vending
machine. For example, Block S110 can identify multiple units of the
same product associated with one approaching sell-by date and
stored together in one vending machine. In another example, Block
S110 can identify an earliest sell-by date of multiple units of the
same or different products stored together on one particular shelf
or across multiple shelves in one vending machine. Yet
alternatively, Block S110 can function to retrieve, generate, or
calculate a nearest or general sell-by date of units of product(s)
currently stored in multiple vending machines, such as units stored
in vending machines within a particular geographic location. For
example, Block S110 can identify a sell-by date common to multiple
units of the same product stored within multiple (e.g., four)
vending machines location on a single floor of an office building
or throughout (a wing of) a shopping mall.
[0018] In one implementation, Block S110 inventories the vending
machine to identify units stored therein by scanning contents of
the vending machine. For example implementation, Block S110 can
interface with an RFID reader (and/or an RFID antenna) arranged
within the vending machine to broadcast a power signal into the
open volume of the vending machine, thereby powering RFID tags
arranged on units stocked in the vending machine to transmit
encoded signals (e.g., unique identifiers, unique serial numbers)
back to the RFID reader, such as described in U.S. patent
application Ser. No. 14/201,369. Block S110 can then pass a form of
each received signal (e.g., decrypted alphanumeric serial numbers)
to a remote database to retrieve corresponding unit and/or product
data. Alternatively, in this example implementation, Block S110 can
retrieve unit or product data stored locally on the vending machine
based on the encoded signals received from the RFID tags arranged
on units within the vending machine.
[0019] In the foregoing example implementation, Block S110 can
collect a unique serial number for a particular product that
includes a first portion common to a particular product (e.g., a
chicken salad sandwich) and a second portion unique to the unit of
the product (e.g., the 8,374.sup.th chicken salad sandwich
delivered by a supplier to any related vending machine). For
example, Block S110 can receive the numerical sequence
"10027-000857" from an RFID tag arranged on a unit placed in the
vending machine, wherein "10027" is a stock-keeping unit (SKU)
number assigned to a veggie burrito with medium salsa from a
particular vendor, and wherein "000857" is a unique serial number
assigned to the particular RFID tag arranged on the product. In
this example, Block S110 can implement the "10027" sequence to
retrieve (e.g., from a remote server) a description, a pricing
scheme, and a shelf life for units of the products assigned the
same first portion of the numerical RFID tag output sequence.
Furthermore, in this example, Block S110 can implement the "000857"
sequence to retrieve unique information specific to the unit,
including when the unit was prepared--such as from the remote
server--and when the product was loaded into the vending
machine--such as from local memory within the vending machine.
[0020] In another example implementation, Block S110 interfaces
with an optical sensor or an optical scanner arranged within the
vending machine to capture an image of the interior volume of the
vending machine, implements machine vision to read barcodes or
other identifying information printed or applied on unit packaging,
and passes these barcodes or other identifying information to the
remote (or local) database to retrieve corresponding unit and/or
product data. However, Block S110 can function in any other way or
interface with any other actuator or sensor to collect identifying
information for units of one or more products stored within the
vending machine.
[0021] As in the foregoing implementation, Block S110 collects
identification data for units stored within the vending machine
while the door to the vending machine is closed. For example, Block
S110 can inventory the vending machine in response to closure of
the door of the vending machine at the conclusion of a transaction
and then store the inventory and/or related unit data until a
subsequent transaction. In this example, until the subsequent
transaction occurs, Block S110 can monitor a received or calculated
sell-by date of one or more units of product(s) noted in the
inventory, and Block S110 can then trigger Block S120 to select the
user, Block S130 to set the discount rate, and Block S140 to
transmit a corresponding notification to the user if a sell-by date
falls within a threshold period of time of a current time prior to
the subsequent transaction.
[0022] As described above, once (unique) identifying information
for a unit of a product stored in the vending machine is collect,
Block S110 can access related data from a local or remote database.
In one implementation, Block S110 retrieves a pricing scheme, a
preset shelf life, a product description, nutritional information,
a supplier, and/or an ingredient list, etc. generic to the
corresponding product, such as from the remote database. In this
implementation, Block S110 can also retrieve a time and date on
which the particular unit was scanned and/or loaded into the
vending machine, heat exposure of the unit during a storage period
at the vending machine, an age or supply date of ingredients (e.g.,
bread, deli meats) within the unit, etc., any of which can be
stored locally in memory on the vending machine. In one example,
Block S110 can then calculate a sell-by date of the unit based on
the time and date on which the particular unit was loaded into the
vending machine and the preset shelf life for the corresponding
product. Furthermore, in this example, if a current date and time
falls within a threshold time (e.g., twenty-four hours) from the
sell-by date, Block S110 can trigger Block S120 to select the user,
Block S130 to set the discount rate, and Block S140 to transmit a
corresponding notification to the user. In another example, Block
S110 can retrieve internal vending machine temperature data
collected by a temperature sensor within the vending machine during
storage of the unit therein, integrate detected temperatures of the
vending machine over the storage time of the unit to calculate a
heat exposure of the unit during its storage within the vending
machine, and pass this calculated heat exposure into a shelf life
model corresponding to the product--and retrieved from the local or
remote database--to calculate a temperature-dependent sell-by date
of the unit.
[0023] In another example, Block S110 retrieves a restocking
schedule for the vending machine from the remote database, such as
from a restocking order stored on the remote database and
specifying the vending machine, or directly from a vendor (i.e., a
supplier). Block S110 can then set a sell-by date for the unit that
precedes a product scheduled delivery to the vending machine. For
example, if a restocking order for the vending machine specifies
additional units of the product for delivery to the vending
machine, Block S110 can set the sell-by date for the current unit
of the product to coincide with or to precede the scheduled
delivery date and time of the additional units of the product.
However, Block S110 can calculate a sell-by date for a single unit,
a set of units of a particular product, a set of units arranged on
one shelf of a particular vending machine, a complete set of units
stocked in a single vending machine, or all units stocked in
multiple vending machines (e.g., within a particular geographic
location). Alternatively, Block S110 can retrieve such a sell-by
date (and time) directly from the remote database.
[0024] Block S110 can therefore collect information relevant to
real-time dynamic pricing of a particular unit or product,
including a pricing scheme and a shelf time, and pass such relevant
data to subsequent Blocks of the method. The pricing scheme and
shelf time can be set by a vendor (e.g., cafe, restaurant, bakery)
that prepares and/or stocks the product in the vending machine
and/or can be specified by legal constraints, such as FDA-mandated
safe shelf life durations for various products. The pricing scheme
and/or shelf time of the unit or product can be general to all
vending locations or specific to particular locations or particular
vending machines, such as based on local product demand, customer
traffic, customer preferences, restocking schedules, government or
private single-product or vending machine subsidies, etc. For
example, the shelf time of a particular product (e.g., veggie
burrito with medium salsa from a particular vendor) can be shorter
for a vending machine in a high-traffic area and/or in areas with
customers who are more sensitive to fresh food than for a vending
machine in a less trafficked area and/or areas with customers less
sensitive to fresh food.
[0025] In one example implementation, the method receives product
details, including the pricing scheme and product shelf time, from
a vendor through a vendor interface that is accessible through a
web browser and/or a native vending transaction application
executing on a computing device, such as a smartphone, a tablet, a
laptop, or specialized food service provider equipment. For
example, a representative of the vendor can access the vendor
interface to assign a product description and pricing schema
associated with particular vending machine locations to a
particular product SKU number. The method can store these
product-related data in a database on a remote server for
subsequent access in Block S110. However, the method and Block S110
can function in any other way to receive, store, and/or access the
pricing scheme and the shelf life for the product in the set of
products in the vending machine. Block S110 can also access pricing
schema and shelf lives for multiple products in the vending machine
simultaneously or over time.
[0026] However, Block S110 can identifying a sell-by date (and
time) of one or more units stored in one or more vending machines
in any other suitable way.
2. Selecting the User
[0027] Block S120 of the method recites identifying a purchase
pattern of a user at a vending machine. Generally, Block S120
functions to select a user for whom the unit with approaching
sell-by date may be of particular interest.
[0028] In one implementation, Block S120 retrieves a transaction
history of the vending machine for a recent period of time, such as
a previous week or a previous month, identifies a patron or a
corresponding payment mechanism supplied in multiple transactions
at the vending machine, and selects the patron (or an account of
profile associated with the payment mechanism) as a potential
customer for the unit of the product accordingly. For example,
Block S120 can identify a past patron making a greatest number of
distinct transactions at the vending machine or purchasing a
greatest dollar amount of product from the vending machine within
the past week as a primary or prime interested party for the
purchase of the unit from the vending machine. Block S120 can thus
pass a name, a phone number, an email address, an account name or
pointer, a payment mechanism pointer, or other identifier of the
selected patron to Block S130 and/or Block S140. In this
implementation, Block S120 can also select multiple past patrons,
such as five patrons completing the top five number of distinct
transactions and/or the top five greatest purchase dollar amount
within a preset period of time, such as the past week or past ten
weekdays, and Block S120 can then pass identifiers of these
multiple selected patrons to Blocks S130 and S140. Block S120 can
also select a user exhibiting a greatest or a high number of
distinct transactions or transaction dollar amount on a particular
day of the week coinciding with a day of the week of the sell-by
date of the item, on a sequence of contiguous days of the week
ending in a day coinciding with a day of the week of the sell-by
date of the item, or on a particular day of the week preceding a
day of the week of the sell-by date of the item (e.g., by one day),
etc.
[0029] In another implementation, Block S120 extrapolates--from a
transaction history of the vending machine--purchase trends amongst
patrons to predict a time during which a particular patron may be
near the vending machine or otherwise sensitive to a prompt to make
a purchase at the vending machine. For example, Block S120 can
identify a patron who makes a purchase at the vending machine
between 2:07 PM and 2:33 PM on 83% of weekdays over the past eight
weeks, and select this patron as a candidate for the discount rate.
In this example, Block S120 can detect purchase habits of multiple
patron, each habit defining one or more days of a week and a
purchase time window, and Block S120 can prioritize or order these
patrons as candidates for a discount for items from the vending
machine based on a confidence in anticipated future purchasing
behavior, start times of purchase time windows, and/or durations of
purchase times windows, etc. Block S120 can then pass a primary
patron or an ordered list of patrons for delivery of notifications
of discount rates. Block S120 can thus analyze a purchase history
of a patron to identify a daily time window during which the patron
historically initiates a transactions at the vending machine (or at
another vending machine grouped with the vending machine), compare
the daily purchase time window to a current time and/or to the
sell-by date of the item, and select the patron as the candidate
for the discount rate and the notification accordingly.
[0030] In yet another implementation, Block S120 extrapolates--from
a transaction history of patrons at the vending machine--patron
interest in one or more particular products vended from the vending
machine. In one example, Block S120 analyzes purchase trends
associated with one patron (e.g., based on a common payment
mechanism supplied across multiple transaction) to identify a
particular product commonly purchased by the patron and to match
the particular product to a particular unit selected for discount
in Block S110, to a unit of a particular product selected for
discount in Block S110, to a unit stored on a particular shelf
(within a vending machine) selected for discount in Block S110, to
a unit stored within a particular vending machine selected for
discount in Block S110, to a unit stored in a particular group of
vending machines selected for discount in Block S110, etc. Block
S120 can thus identify and select a past patron who frequently
and/or consistently purchased a product selected for discount
either directly or indirectly in Block S110 and who therefore may
be particularly sensitive (e.g., substantially likely to purchase)
to a discount for a unit of the product.
[0031] Block S120 can similarly detect user interest in a product
that is complementary to a discount unit of a product based on a
transaction history of the user and select the user as a candidate
for the discounted unit of product accordingly. For example, for a
user who commonly purchases bacon cheeseburgers from the vending
machine, Block S120 can select the user for as a candidate for a
discounted plate of French fries, which may be complementary to the
cheeseburger. Block S120 can thus select the user as a candidate
for a discounted unit that may complement or improve the user's
experience with a product expected to be purchased by the user
prior to expiration of the sell-by date of the discounted unit.
[0032] For a particular vending machine or for a particular shelf
within a particular vending machine selected for discount in Block
S110, Block S120 can similarly select a user who commonly or
consistently purchases items from the particular vending machine as
a candidate for a discount rate of product arranged within the
particular vending machine or stored on the particular shelf of the
vending machine.
[0033] In another implementation, Block S120 identifies mobile
computing devices local to the vending machine (or to one vending
machine within a group of set of vending machines) and selects one
or more local mobile computing devices (each corresponding to a
user) as a candidate for the discount rate set in Block S130. For
example, Block S120 can interface with a wireless communication
module arranged within the vending machine to detect with one or
more smartphones, tablets, or other wireless-enabled computing
devices near the vending machine, such as by communicating with the
computing devices over Bluetooth or Wi-Fi communication protocol.
In this example, Block S120 can select all of the computing
devices--and/or users associated with the computing devices--as
candidates for notifications for the discounted unit of product.
Alternatively, Block S120 can pair data (e.g., a phone number, a
unique wireless ID, an email address) collected from each of the
local computing devices with particular past patrons of the vending
machine and then filter transaction history of the vending machine
down to transactions completed between the vending machine and the
particular past patrons detected as near the vending machine. Block
S120 can then implement any of the methods or techniques described
herein to select a particular patron or a subset of the detected
local patrons as candidates of the notification for the discount.
Block S120 can also set threshold distance between a patron and the
vending machine, such as fifty feet (e.g., based on a wireless
signal strength or GPS coordinate received from a mobile computing
device), to select or deselect local patrons as candidates for the
notification for the discount. Block S120 can additionally or
alternatively prioritize transmission of notifications to local
patrons, such as by selecting a first detected patron nearest the
vending machine as the first candidate of the notification and by
selecting a second detected patron furthest from vending machine
(but within a threshold distance from the vending machine) as a
last candidate of the notification while the unit of product
remains available from the vending machine. However, Block S120 can
function in any other way to detect a set of mobile computing
devices near (or within a threshold proximity of) the vending
machine and to select one or more mobile computing devices, from
the set of detected mobile computing devices, linked to a patron
account as the candidate for the discount rate and the
notification.
[0034] In the foregoing implementations, Block S120 can analyze
transaction history stored in or associated with accounts of
patrons who have frequented the vending machine, provided contact
information into the vending machine, provided a cashless payment
mechanism into the vending machine, created an account or profile
for making purchases from the vending machine, etc. Block S120 can
also group and analyze transaction histories across multiple
vending machines, such as physically adjacent vending machines,
vending machines arranged in one building or in one room, wing, or
floor of the building, vending machines installed on one campus,
vending machines installed throughout an airport, vending machines
stocked by the same single or set of suppliers, vending machines
owner and/or operated by the same entity, etc.
[0035] In yet implementation, Block S120 selects the user based on
an input from a third party. For example, the vending machine can
be arranged in a company office, an office manager can enter
employee-of-the-week information into the vending machine or
through a browser-based vending machine management interface, and
Block S120 can select a particular user who is the employee of the
week as the candidate for the discount or prioritize the particular
user above other potential users as the candidate for the discount
based on the particular user's status as an employee of the week at
the company.
[0036] In another implementation, Block S120 selects the user based
on a perceived or recorded dietary need, dietary preference, and/or
food allergy of the user. In one example, Block S120 extrapolates a
first patron's preference for blueberry yogurt based on the first
patron's repeated purchase of blueberry yogurt around 2:30 pm on
most (e.g., >75% of) weekdays, Block S120 can thus select the
first patron as the candidate for a discount for a last blueberry
yogurt stored in the vending machine. However, in this example,
Block S120 can also determine that a second patron is
lactose-intolerant based on the second patron's purchase history
that excludes any dairy product despite availability of dairy
products in local vending machines, and Block S120 can thus mark
the second patron as an improper candidate for a discount for a
blueberry yogurt. In another example, Block S120 accesses a user
profile including dietary needs of the user, identifies the user as
gluten-intolerant and a vegetarian, and selects the patron as a
candidate for discount of a gluten-free and vegetarian unit
selected for discount in Block S110, and Block S120 excludes the
user from notifications for products containing animal products
and/or gluten. As in the foregoing implementations, Block S120 can
also prioritize notifications of discounts for users according to
various dietary needs and/or preferences of multiple users, such as
by prioritizing users with more dietary restrictions or by
prioritizing user with dietary restrictions yielding viewer
suitable product options.
[0037] Block S120 can similarly select the user based on a
perceived sensitivity of the user to fresh products. For example,
if transaction records indicate that a first patron only purchases
fresh items (e.g., items stored in the vending machine for fewer
than four hours) and that a second patron exhibits little
statistically significant interest in fresh or older products,
Block S120 can select the second patron as the candidate for the
discounted unit because the second patron may be more likely to
purchase the unit than the first patron.
[0038] Block S120 can additionally or alternatively select the user
based on a perceived price sensitivity of the user. For example,
Block S120 can retrieve user interaction data stored with the
user's account on the remote database, the interaction data
including records of if and/or how many times the user reviewed a
receipt of a past transaction at one or more vending machines, if
the user reviewed a product price list or menu before selecting an
item from a vending machine in a past transaction, if the user
previously responded to a price reduction incentive (e.g., by
entering into a rewards program, by supplying additional contact
info in exchange for a future discount), etc. Block S120 can then
extrapolate a sensitivity of the user from these data and then
select the user--from a set of other patrons also associated with a
qualitative or quantitative measure of price
sensitivity--accordingly. For example, Block S120 can select the
user who is most price-sensitive--from the set of patrons--to
supply the user with a discount, thereby encouraging the user to
complete a transaction at the vending machine, thereby possibly
creating or reinforcing a habit for purchasing product from the
vending machine and reducing the user's price sensitivity over
time.
[0039] Block S120 can similarly select the user based on the user's
history of responding to discount notifications. In particular,
Block S120 can select the user--from a set of local patrons--to
whom to direct the discount because the user responded to 73% of
previous discount notifications by purchasing the discounted
product, wherein other patrons in the set of local patrons
responded to a lower percentage of such discount notifications by
purchasing the discounted product. In this implementation, Block
S120 can additionally or alternatively select the user--from the
set of patrons--based on how quickly the user responds to the
discount notification by completing a transaction with a vending
machine.
[0040] However, Block S120 can function in any other way to select
the user to whom Blocks S130 and S140 cooperate to direct a
notification for a discounted rate for a particular unit of a
product, units stored within a particular vending machine, or units
stored within a group of vending machines, etc.
4. Price Adjustment
[0041] Block S130 of the method recites, in response to an
approaching sell-by date for a unit of a product loaded into the
vending machine and based on the purchase pattern, setting a
discount rate for the unit of the product for the user. Generally,
Block S130 functions to adjust a current price of the unit of the
product selected in Block S110 based on various product-related
and/or time-dependent factors in order to increase demand for the
unit and thus move the unit from the vending machine. Block S130
can therefore manipulate a price of the unit--such as by setting a
discount rate for the unit of product--to sell the unit prior to
the sell-by date of the unit, thereby preventing waste, spoilage,
or under-consumption of the product. For example, Block S130 can
set a price for the unit at a new discounted price predicted to
provoke the user (selected in Block S120) to purchase the unit of
the product prior to the sell-by date based on the user interest in
the product. In another example, Block S130 can set a discount rate
(e.g., 20%) for all units of all products stored in a vending
machine to prompt multiple users selected in Block S120 to
(completely) empty the vending machine prior to a scheduled restock
time and date.
[0042] In one implementation, Block 130 applies a standard or
preset discount rate, such as 20%, defined for all products vended
from the vending machine and stored locally on the vending machine
or remotely on a server or computer network. In a similar
implementation, Block S130 retrieves a product-specific discount
rate from a file corresponding to the product and stored on a
remote database.
[0043] Alternatively, Block S130 can calculate a discount rate
(e.g., a percentage discount or a final discounted price) for the
unit of the product based on an age of the unit. In one
implementation, Block S130 adjusts the price of the unit of the
product inversely with the age and/or shelf time of the unit. For
example Block S130 can thus apply a shelf time of the unit (i.e.,
an amount of time between when the unit was loaded into the vending
machine and a current time) to a pricing scheme to set the new
product price. In the example, a price of the unit can be set at an
initial price while the unit shelf time is less than a threshold
shelf time, and Block S130 can reduce the price of the unit to a
second preset price when the shelf time of the unit is greater than
the threshold shelf time. Block S130 can also implement additional
product pricing tiers, such as by reducing the price of the
unit--continuously or according to a step function (as shown in
FIG. 2)--as the shelf life of the unit increases and/or as the
sell-by date of the unit approaches. For example, once the unit
reaches a shelf time of twelve hours, Block S130 can reduce the
price of the unit at the rate of 5% for every hour after twelve
hours. Alternatively, Block S130 can reduce the price of the
product every half hour, every hour, or every four hours and
linearly, exponentially, or otherwise with time or according to any
other schedule after once the unit is stocked in the vending
machine or after the unit reaches a threshold shelf time after
being loaded into the vending machine.
[0044] Block S130 can also decrement the price of the product
according to an upcoming event or time. For example, if the vending
machine is arranged in an office that is open Monday through Friday
but closed on the weekends and a unit of a product was loaded into
the machine on Friday morning but still remains at 2 pm the same
day, Block S130 can significantly lower the price of the unit to
substantially ensure purchase of the unit prior to close of office
later that day, thereby substantially reducing a likelihood that
the unit remains in the vending machine over the weekend (and
spoils before the office opens again the following Monday). In a
similar example, if the vending machine is arranged in an office in
which employees often work later into the evening, Block S130 can
significantly lower the price of the unit after 7 pm to
substantially ensure purchase of the product prior to the following
morning.
[0045] In addition to the age of the unit, the amount of time the
product has been in the vending machine, the pricing scheme
associated with the product, and/or the shelf life (or time) of the
unit, Block S130 can adjust the discount rate (e.g., price) of the
unit based on any one or more of a time of day, day of the week,
local "deal," location of the containing vending machine, user
preferences, upcoming deliveries or scheduled restocking times of
the vending machine, product or vending machine subsides, a number
of other similar or complementary units stocked in the vending
machine, a local weather condition, a day of the year or current
holiday, etc. For example, Block S130 can discount flowers stocked
in the vending machine on Valentine's Day or discount a unit of a
patron's favorite (or more-often purchased) product on the patron's
birthday. In another example, Block S130 can discount cold drinks
or sunscreen stocked in a vending machine on hot or sunny days and
discount hot soup or umbrellas on cold or rainy days. Block S130
can therefore also cooperate with Block S110 to identify other
products in the vending machine that are similar or complementary
to the product, access a restocking schedule, a date or time of
day, a GPS location of the vending machine, a transaction profile
of the vending machine, stored vending machine- or
location-specific user profile or preference data, or any other
relevant data, such as stored locally on the vending machine or
remotely in a database on a remote server and apply any one or more
of these data to a current or original price of the unit to
calculate a new price (or a new discount) for the unit.
[0046] Thus, in one implementation, Block S130 can adjust a price
(or discount) of the unit according to similar or complementary
units loaded into the vending machine. For example, if the unit
selected in Block S110 is a breakfast burrito originally stocked
with several similar breakfast burritos, Block S130 can cut the
price of the unit when all other breakfast burritos have been sold
to entice a patron to remove the last breakfast burrito from the
vending machine before a supplier stocks the vending machine with a
fresh supply of breakfast burritos. In another example, if the
product is a bowl of coleslaw that local users commonly pair with
pulled pork sandwiches also vended from the vending machine, Block
S130 can cut the price of a bowl of coleslaw when only one pulled
pork sandwich remains in the vending machine to thus further ensure
that a patron who selected the last pulled pork sandwich will also
select the bowl of coleslaw.
[0047] In other implementations, Block S130 can adjust a price of
the unit based on a daily deal, based on a government or office
subsidy, or based on nutritional (e.g., caffeine) content of the
unit (which may be standard across units of the product). For
example, between the hours of 2 pm and 3:30 pm when office
employees commonly purchase calorie-dense, unhealthy foods from the
vending machine, Block S130 can increase the price of unhealthy
foods like prepackaged cookies and decrease the price of healthier
foods like a hummus and veggie plate, thereby encouraging patrons
to consume healthier snack options. Block S130 can also apply new
product pricing data to the price of the unit substantially in
real-time, such as in response to entry of new pricing data from a
corresponding supplier or vendor.
[0048] Block S130 can also set the discount rate of one or more
units vended from the vending machine based on a traffic or
transaction rate at the vending machine. For example, for a vending
machine that is highly trafficked (e.g., a vending machine at which
an average of ninety transactions are completed each weekday),
Block S130 can set a discount rate of 20% for an item selected for
discount in Block S110. However, in this example, for a vending
machine subject to significantly less traffic (e.g., a vending
machine at which an average of twenty transactions are completed
each weekday), Block S130 can set a lower discount rate of 50% for
an item selected for discount in Block S110. However, Block S130
can decrement the price of (or increase a discount for) the unit in
any other way and according to any other schedule, pricing scheme,
or variable.
[0049] In an alternative implementation, Block S130 increases the
price of (or decreases the discount for) the unit. For example, if
the unit is a breakfast burrito with a specified shelf life of
forty-eight hours and was loaded into the vending machine on a
Monday morning, Block S130 can first reduce the price of the
product on Monday afternoon or evening as described above, and
Block S130 can then increase the price of the product on Tuesday
morning (e.g., when local demand for breakfast burritos increases).
Block S130 can also predict current or upcoming product demand,
such as based on purchase history from the vending machine (and
other local vending machines). For example, Block S130 can set an
increased price of (or reduced discount for) snacks loaded into the
vending machine between 2 pm and 4 pm on weekdays for a vending
machine that is arranged in an office with employees who frequently
purchase snacks during weekday afternoons. However, Block S130 can
raise or adjust the price of the unit of the product according to
any other schema.
[0050] In the foregoing implementations, Block S130 can set the
discount rate that is specific to a single user. For example, Block
S130 can assign a discounted price for the unit of the product to a
transaction with the selected user but assign an original price for
the unit of the product to a transaction with an other patron of
the vending machine, wherein the original price is greater than the
discount price. In this example, Block S110 can select the user who
has completed more transactions with the vending machine, spent a
greater amount of money at the vending machine, or exhibited a
greater affinity for one or more products vended from the vending
machine during a period of time than the other patron, such as
indicated in a transaction history of the vending machine, and
Block S130 can set different prices for the unit (or different
discounts for various units of one or more products contained in
one or more vending machines) for various patrons of the vending
machine(s).
[0051] Block S130 can also set the discount rate that applies to
all units of the same or different products stored on a particular
shelf (or set of shelves) within a particular vending machine. For
example, Block S110 can identify a single unit stored on a
particular shelf of a vending machine and associated with a sell-by
date scheduled within a threshold period of time (e.g., twelve
hours), identify all other units of the same or different product
also stored on the particular shelf, and pass identifiers of all of
these units to Block S130. In this example, Block S130 can retrieve
pricing information for each of these units (e.g., original prices,
current prices, discount models or algorithms, etc.), such as from
the remote database, and then manipulate this pricing information
to set a common discount rate for all of the units stored on the
particular shelf or to set new independently-discounted prices for
all of the units of the particular shelf to encourage one or more
users to purchase items from the particular shelf (rather than
another shelf within the vending machine).
[0052] In one implementation, Block S130 can similarly calculate,
generate, and/or apply a discount to all items currently stored in
a particular vending machine, such as if the particular vending
machine is scheduled to be completely restocked within a threshold
period of time (e.g., within four hours). Block S110 and Block S130
can thus cooperate to inventory a set of foodstuffs arranged on a
particular shelf within the vending machine, to retrieve sell-by
dates for the set of foodstuffs (e.g., from a remote server), to
identify a current time as within a threshold time of the sell-by
date of the unit, and to set a percentage discount across the set
of foodstuffs within the vending machine. Thus, in this
implementation and as shown in FIG. 5, the method can further
include Block S132, which recites setting a visual indicator
coupled to the particular shelf to visually distinguish the
percentage discount applicable to units arranged on the particular
shelf from a second discount applicable to units arranged on a
second shelf within the vending machine. For example, Block S130
can control a first set of LEDs within the vending machine to
illuminate the particular shelf green to visually indicate that
product arranged on the particular shelf is discounted, and Block
S130 can control a second set of LEDs within the vending machine to
illuminate a second shelf within the vending machine blue to
visually indicate that product arranged on the second shelf is not
discounted. In another example, Block S130 can set different
discount rates for different shelves of product within the vending
machine, and Block S130 can control various LEDs within the vending
machine to illuminate the shelves within according to discount
rates assigned for different shelves, such as by illuminating a
first shelf assigned a 0% discount green, illuminating a second
shelf assigned a 10% discount yellow, and illuminating a third
shelf assigned a 20% discount red, such as shown in FIG. 5. Block
S132 can additionally or alternatively control a digital display,
another light source, or other signage coupled to the vending
machine to present discount information to patrons within visual
range of the vending machine.
[0053] Similar to the foregoing implementation, Block S130 can also
set a discount rate (or corresponding unit prices) that is
applicable to all products currently stored in multiple vending
machines, such as by a set of vending machines installed within a
particular build or geographic location. In this implementation,
Block S132 can thus control a visual indicator coupled to the
vending machine to indicate a discount across all products within
the vending machine. In these implementations, Block S130 can
control a visual indicator coupled to the vending machine at all
times that a discount is applicable, or Block S132 can cooperate
with Block S150 to identify a user in a new transaction, to match
the identified user to the user selected in Block S110, and to
actuate the visual indicator to visually present one or more
discount specifically for the select user who is now engaging in a
transaction with the vending machine. However, Block S132 can
function in any other way to provide a visual indicator of a unit,
product, shelf, or vending machine-wide discount.
[0054] Block S130 can also set an expiration time for the discount
rate for the unit. In one implementation, Block S130 sets a timer
for selection of the unit of the product by the user, wherein the
set discount rate for the unit (or for a product, a shelf within a
vending machine, all units in a vending machine, or for all units
stocked across multiple vending machines) is applied to purchase of
the unit by the user up to the time that the timer expires. In one
example, Block S130 sets the timer to expire at the sell-by date
and time of the unit and triggers the vending machine to lock or to
otherwise prevent sale of the unit if the unit is not sold upon
expiration of the timer. In another example, Block S130 sets the
timer to expire before the sell-by date and decreases the discount
for (i.e., increases the price of) the unit for the user if the
user does not purchase the unit before expiration of the timer.
Alternatively, Block S130 can increase the discount for (i.e.,
decrease the price of) the unit for the user if the user does not
purchase the unit before expiration of the timer, such as to
further urge the user to purchase the unit.
[0055] In another example, Block S130 sets the timer to expire
before the sell-by date and, if the unit is not sold to a first
user upon expiration of the timer, triggers Block S110 to select an
alternative second user to whom to target a subsequent discount of
the unit. In this example, Block S130 can apply the same discount
rate set for the first user to purchase of the unit by the second
user, or Block S130 can increase the discount for the second user,
such as in light of the approaching sell-by date of the unit.
Therefore, if the discount timer set in Block S130 expires prior
purchase of the unit--by the user or by another patron--Block S110
can implement methods described above to identify interest in the
product by a second user (e.g., based on a purchase history of the
second user at the vending machine or a set of vending machines
within a geographic area), and Block S130 can implement methods
described above to set a second discount rate for the unit of the
product for the second user according to the (perceived) interest
of the second user in the product. Block S140 can then transmit a
second electronic communication to an account associated with the
second user to notify the second user that a unit of the product is
available from a (local) vending machine at the second discounted
rate. Alternatively, Block S110 can pass an ordered or prioritized
list of users for whom the unit may be of interest to Block S130,
and Block S130 can step through the list in order to set discount
rates accordingly for these users and to trigger Block S140 to
notify these users of their discounts as discount timers for these
users' discount expire.
[0056] Furthermore, if the unit of the product is purchased by
another patron or the particular shelf or complete vending machine
is emptied by one or more other patrons during a period of time
during which the discount assigned to the user is valid, Block S130
can renege the user's discount.
[0057] However, Block S130 can function in any other way to set one
or more discounts for one or more users based on selection of a
particular unit, a particular product, or product stored on a
particular or across one or more vending machines for discount and
substantially immediate sale.
5. Electronic Communication
[0058] Block S140 of the method recites transmitting an electronic
communication to an account associated with the user, the
electronic communication indicating the discount rate for the unit
of the product. Generally, Block S140 functions to notify the user
selected in Block S110 of the availability of the unit stocked in
the vending machine and/or a new price of the unit. Block S140 can
thus generate the electronic communication that indicates the
discount rate (e.g., a percentage discount) or new price for the
unit of a product, a discount for a product or group of products, a
discount for a shelf of units within a vending machine, and/or a
discount for all units stocked in a vending machine, as well as
corresponding the unit, product, shelf, and/or vending machine,
etc. Block S140 can generate the communication that also specifies
a number of units of the product and/or units of other product(s)
stocked in the vending machine, nutritional information of the unit
or product, original cost of the unit or product, and/or an
expiration date and time of the discount, etc.
[0059] In one implementation, Block S140 accesses user data
supplied by the user during a previous transaction made by the user
and/or user data linked to a vending account associated with the
user and selects an address to which to deliver the notification
from these user data. For example, Block S140 can select an email
address, a phone number, a social networking profile, an employee
or office account, a credit card, or an other payment system or an
account or profile previously entered into a vending machine by the
user during a previous transaction, such as described in U.S.
patent application Ser. No. 14/201,369. For example, Block S140 can
transmit the electronic communication to a smartphone linked to the
user's account--such as via SMS text message or via an
in-application notification within a native vending transaction
application executing on the user's smartphone--if the vending
machine is substantially removed from an office or similar
workplace such that the user is likely to receive and view the
communication while the communication is timely. However, if the
vending machine is located near an office or similar workplace,
Block S140 can transmit the communication to an email address
associated with the user such that the user may receive and review
the communication while working at a computer. Block S140 can also
transmit a form of the communication to multiple addresses
associated with the user substantially simultaneously.
[0060] Block S140 can additionally or alternatively push a
notification to the user in the form of a public or private
communication (e.g., a post, a message, a "tweet") within a social
networking system, a phone call or voicemail message, a calendar
alert, etc. However, the method can track user purchases and
collect user contact information in any other way, and Block S140
can transmit the notification to the user through any such
communication channel.
[0061] In one example implementation, during a previous
transaction, the vending machine can request a phone number and/or
email address from the user, send a transaction receipt to the
user's phone number via SMS text message or to the user's email
address in an email, and create transaction account for the user,
the transaction account linked to the phone number and/or email
address provided by the user and containing a database of purchase
records of the user at the vending machine (and other linked or
related vending machines). In this example implementation, when
Block S110 later selects the user as a candidate for a discounted
unit of product, Block S140 can push a notification to the user's
phone number or to the user's email address. Furthermore, in this
example implementation, Block S110 can track proximity of a phone
assigned with the user's phone number or linked to the user's email
address to determine a proximity of the user to the vending
machine--such as by polling a GPS sensor within the user's
phone--and can thus select the user when within a threshold
distance (e.g., fifty feet) of the vending machine, and Block S140
can then transmit the notification to the user when the user is
within the threshold distance from the vending machine.
[0062] Block S140 can also time transmit the electronic
communication to the user at a particular time at which the user
may be particularly sensitive to a discount for the unit. For
example, Block S140 can cooperate with Block S110 to identify a
window of time during which the selected user often engages in a
transaction with the vending machine, engage in a transaction with
a linked or nearby vending machine, purchases the product from the
same or nearby vending machine, or purchases a complementary
product from the vending machine, etc., and Block S140 can transmit
the notification to the user just before, at the start of, or
during this time window (and prior to the sell-by date).
[0063] Block S140 can also cooperate with Block S110 to implement
hierarchical notifications to selectively inform users of product
availability and pricing. In one example implementation, Block S140
selectively pushes the notification to a frequent return user, a
"high-dollar" user who often purchases several units and/or a
product of greater-than-average cost, a "mayor" of the vending
machine who frequently "checks-in" to the vending machine, a user
who positively posts to a social networking system in reference to
the vending machine and/or a product purchased from the vending
machine, etc. In this example implementation, Block S140 can thus
reward a user for a past purchase from the vending machine by
notifying the user, prior to other users, of product availability
and adjusted pricing for the product. Alternatively, Block S140 can
push the notification to several users simultaneously, such as to
users with a threshold distance from the vending machine.
[0064] Block S140 can also push the electronic communication to the
user based on user notification preferences. In one implementation,
the user sets notification preferences by accessing his vending
account through a web browser-based interface or through a native
vending transaction application executing on a mobile computing
device. The user can thus adjust or correct predicted user
preferences based on prior user purchases and/or set when or what
types of product-related notifications he prefers to receive. For
example, if the user often purchases two lunches in the same
transaction, including a lunch for himself and a lunch for a
coworker, the method may combine the contents of both lunches in
predicting the user's taste preferences. Thus, in this example, the
user can access his vending account and remove his coworker's lunch
products from the set of lunch products that the method analyzes to
determine user taste preferences. In another example, the user can
access his vending account to request notifications for spicy
burritos, fresh soups, and discounted fruit. However, the method
can receive any another other suitable user notification preference
through any other account, profile, or communication channel, and
Block S110 and Block S140 can implement these user's notification
preferences in any other suitable way to selectively push product
availability and/or discount information to the user.
[0065] In one variation of the method, Blocks S130, S140, and S150
cooperate to identify the user, to adjust the price of the product
for the user specifically, and to greet the user with a
notification for the product and its adjusted price when the user
interfaces with (i.e. walks up to and engages) the vending machine.
In one example implementation, Block S150 identifies the user based
on payment information, an account login, etc. entered into the
vending machine by the user at the beginning of a transaction with
the vending machine. In another example implementation, Block S150
identifies the user by accessing an image from a camera arranged on
the vending machine and implementing machine vision techniques to
identify the user. In yet another example implementation, Block
S150 retrieves identifying information (e.g., a phone number, a
unique wireless communication ID) from a nearby smartphone and
identifies the proximity of the user to the vending machine based
on this identifying information (though Block S150 can identify the
user near the vending machine in any other way). Subsequently,
Block S130 can analyze user and/or product information
substantially in real-time to set an adjusted price of the unit
currently stocked in the vending machine, and Block S140 can
interface with a display (e.g., a touchscreen) or other visual
indicator arranged on the vending machine to greet the user and to
present an advertisement for the product and its adjusted price to
the user. Thus, in this variation, Blocks S130 and S140 can
cooperate to dynamically adjust a price of a vended product for a
particular user substantially in real-time when the user is
engaging directly with the vending machine.
[0066] Similarly, Block S150 can detect a user walking by the
vending machine, Block S110 and S120 can cooperate to identify a
relevant unit of a product stocked in the vending machine to the
user, and Block S140 displays a message on a display coupled to the
vending machine and/or plays an audible message through a speaker
coupled to the vending machine. For example, Block S140 can
visually or audibly present a prompt that recites, "Hey Alex, swipe
your credit card to receive your surprise discount" or "Hey Alex,
there is only one [Alex's favorite item] left, come get it!" to the
user. In this implementation, Block S120, S140, and S150 can
additionally or alternatively cooperate to deliver an audible or
visual message to the user--through the vending machine--to inform
the user of an upcoming or recent vending machine restocking event,
installation of a new local vending machine, availability of a new
product at the vending machine, etc.
[0067] In one variation, Block S140 further functions to receive a
reservation for the discounted unit or product, as shown in FIGS. 1
and 2. For example, Block S140 can transmit to the selected user
the notification that includes unit information, discount
information, and a prompt to reserve the unit. In this example,
when reviewing the notification, the user can select the prompt to
reserve the unit, and Block S140 can collect and implement this
selection to hold the unit (or another unit of the same product)
for the user until the user returns to the vending machine to
collect the unit. Thus, in this variation, the vending machine can
recognize the user when the user returns to the vending machine to
collect the unit--such as by extracting identifying information
from a payment system supplied to the vending machine by the user
or from facial recognition of an image taken of the user at the
vending machine, as described above--and then unlock or release the
reserved item for the user accordingly.
6. Transaction
[0068] Block S170 of the method recites identifying the user in a
transaction initiated at the vending machine. Generally, Block S170
functions to determine that the user is presently engaged with the
vending machine and is associated with a valid discount. In one
example, Block S170 cooperates with Block S180 to extract
identifying information from a payment system (e.g., a credit card)
supplied by the user at the start of, during, or upon the
conclusion of a transaction and then matches the identifying
information to a pointer to the user selected in Block S110. In
another example, Block S170 retrieves identifying information--such
as a phone number of unique wireless ID--from a smartphone or other
computing device carried by the user and matches this information
to an account associated with the user to identify the user and the
corresponding discount. Block S170 can also interface with a camera
to capture an image of the user at the vending machine and can
implement machine vision techniques to identify the user from the
image, as described above. However, Block S170 can function in any
other way to identify the user in a transaction with the vending
machine and to match the user to the available discount set in
Block S130.
[0069] Block S180 of the method recites, in response to selection
of the unit of the product from the vending machine during the
transaction, initiating a payment with a payment mechanism supplied
by the user according to the discount rate in Block S180.
Generally, Block S180 functions to apply the discount rate to the
purchase of the unit from the vending machine during pendency of
the discount, such as prior to expiration of the timer set in Block
S130 and/or prior to the sell-by data and time.
[0070] In one process flow described in U.S. patent application
Ser. No. 14/201,369, Block S180 handles a transaction between the
user and the vending machine by locking a door of the vending
machine following a previous transaction, recording an initial
inventory of products arranged within the vending machine,
initiating the transaction in response to receiving the payment
mechanism from the user, unlocking the door in response to
authentication of the payment mechanism, and recording a final
inventory of foodstuffs within the vending machine in response to
closure of the door.
[0071] In particular, in this process flow, Block S180 can lock a
door of the vending machine to secure items stored within until a
new transaction is initiated with a valid payment mechanism
supplied by the positively-identified user (or until a vendor
unlocks the door to stock new items into the vending machine).
Thus, once a previous patron closes the door of the vending machine
after making an item selection, Block S180 can trigger a locking
mechanism to lock the door of the vending machine until a
subsequent patron (e.g., the user) later approaches the vending
machine and furnishes a valid payment mechanism, such as by swiping
a credit card or tapping an NFC-enabled smartphone on a NFC reader
in the vending machine.
[0072] Then, with the door now closed and locked, Block S180 can
record the final inventory of product stocked in the vending
machine, such as by polling RFID tags arranged on product stocked
in the vending machine and identifying each unit of product based
on unique ID data received from each RFID tag, as described above.
For example, Block S180 can control an RFID antenna and reader to
broadcast a power signal into a volume of the vending machine
containing the unit of the product, to receive a signal from a
wireless transmitter (e.g., RFID tag) arranged on the unit of the
product, and to identify the unit stored within the vending machine
based on the signal and product data stored on a computer
network.
[0073] Later, Block S180 can initiate a new transaction when a new
patron supplied a payment mechanism, such as cash or a credit card.
Block S180 can also authorize, authenticate, and/or validate the
received payment mechanism and cooperate with Block S170 to confirm
the new patron as the user selected in Block S170, as described
above. Once the user is identified and the payment mechanism
authenticated, Block S180 can trigger the locking mechanism to
unlock the door, thereby providing the user with access to product
stocked in the vending machine.
[0074] Once the user closes the door and the locking mechanism
again locks the door, Block S180 can again inventory remaining
product within the vending machine, such as by polling RFID tags
arranged on the remaining product and identifying each item by a
unique received ID, as described above. Block S180 then compares
this final inventory to the previous inventory recorded before the
door was unlocked for the user to determine one or more particular
units removed from the vending machine and cross-references the
particular removed unit(s) against the item, product, and/or shelf,
selected in Block S110 to determine if a pending discount
associated with the user is applicable to the transaction. If the
discount is confirmed as applicable to the transaction, Block S180
applies the discount to each corresponding unit removed from the
vending machine during the transaction and calculated a total bill
for the user.
[0075] Block S180 can then automatically trigger payment for
transaction total via the payment system supplied by the user.
Block S180 can also transmit a receipt for the transaction to the
user, such as to the same address selected for transmission of the
electronic communication in Block S140 (e.g., the user's
smartphone) or to a new address (e.g., phone number, email address)
supplied by the user during the transaction. However, Block S180
can handle a transaction between the user and the vending machine
in any other suitable way.
7. Restocking
[0076] As shown in FIGS. 3 and 6, one variation of the method
includes Block S190, which recites transmitting a restock order for
the vending machine to a product supplier in response to removal of
the unit of the product from the vending machine. Generally, Block
S190 functions to transmit a notification or other electronic
communication to a vendor or supplier of one or more products for
the vending machine based on an inventory of the vending machine.
In one example, once the unit selected in Block S110 is purchased
and removed from the vending machine, Block S190 can transmit a
notification to a supplier associated with the corresponding
product to prompt the supplier to restock the vending machine with
new units of the product. In another example, once all units of a
particular product selected in Block S110 are purchased and removed
from the vending machine, Block S190 can similarly transmit a
notification to a supplier of the product to prompt the supplier to
restock the vending machine with new units of the product. In yet
another example, once one or more patrons empty a particular shelf
of the vending machine selected in Block S110, Block S190 can
transmit a notification to one or more suppliers associated with
product designated for the particular shelf to prompt the
supplier(s) to restock the shelf of the vending machine with new
units of the designated products. However, Block S190 can function
in any other way to automatically prompt a vendor or supplier to
restock the vending machine according to any other trigger, event,
or inventory status.
8. Method
[0077] As shown in FIG. 3, one variation of the method includes
Block S160, which recites receiving, from a user, a pre-order for a
unit of a product supplied by a vendor and/or stocked in the
vending machine. Generally, Block S160 functions to capture an
order for a product prior to scheduled restocking of the vending
machine by a vendor such that the vendor may supply both pre-sold
products and products for retail simultaneously and through a
single point of sale (i.e. the vending machine). For example, a
bakery can schedule to restock a particular vending machine with a
limited menu every morning. In this example, on a Tuesday
afternoon, a user can access an online ordering interface for the
bakery, select a custom product or a product not on a limited menu
designated for the vending machine, specify the particular vending
machine as a pickup location for the product, set the following
morning as the fulfillment date, and submit payment (e.g., with a
credit card) to the bakery via the online ordering interface. The
following morning, the bakery can stock the vending machine with
both standard limited menu items and the user's pre-ordered item.
When convenient, the user can retrieve his order from vending
machine to complete the transaction. Alternatively, if the user
decides on the following day that he is no longer "in the mood" for
the particular product, he can return the product and request a
refund, the bakery (or vending machine or vending machine service)
can refund all or a portion of the product's cost to the user, and
the vending machine can repost the item as for sale to other
patrons through the vending machine. However, Block S160 can
function in any other way to receive and/or fulfill a product
pre-order through the vending machine.
[0078] As shown in FIG. 4, one variation of the method includes
Block S150, which recites receiving a gift order, from a sender,
specifying a recipient and a vended product in a vending machine,
notifying the recipient, and applying the gift order to purchase of
the vended product from the vending machine by the recipient.
Generally, Block S150 functions to enable electronic gifting of
tangible product through a local vending machine. For example, the
sender can be a friend and coworker of the recipient, the vending
machine can be stocked with cupcakes, and the sender can gift a
cupcake, available through the vending machine, to the recipient on
the recipient's birthday. In this example, the sender can avoid the
hassle of ordering, picking up, storing, and eventually delivering
the cupcake to the recipient upon the recipient's birthday, and the
sender can instead gift a cupcake--from a set of already available
cupcakes stocked in the vending machine--to the recipient who can
then pick up the cupcake from the vending machine when convenient.
Block S150 can also send the notification of the gift order to the
recipient through a SMS text message, email, or any other suitable
communication channel, such as described above. Block S150 can
further cooperate with Block S160 described above to pre-order a
gift for the recipient such that the gift can be stocked in the
vending machine alongside a standard selection of vended products
supplied by a vendor. However, Block S150 can handle a gift order
or a gift pre-order for a sender on behalf of a recipient in any
other suitable way.
[0079] The foregoing systems and methods can be embodied and/or
implemented at least in part as a machine configured to receive a
computer-readable medium storing computer-readable instructions.
The instructions can be executed by computer-executable components
integrated with the vehicle, scheduling kiosk(s), a remote
scheduling server, hardware/firmware/software elements of a user
computer or mobile device, or any suitable combination thereof.
Other systems and methods of the invention can be embodied and/or
implemented at least in part as a machine configured to receive a
computer-readable medium storing computer-readable instructions.
The instructions can be executed by computer-executable components
integrated by computer-executable components integrated with
apparatuses and networks of the type described above. The
computer-readable medium can be stored on any suitable computer
readable media such as RAMs, ROMs, flash memory, EEPROMs, optical
devices (CD or DVD), hard drives, floppy drives, or any suitable
device. The computer-executable component can be a processor but
any suitable dedicated hardware device can (alternatively or
additionally) execute the instructions.
[0080] As a person skilled in the art will recognize from the
previous detailed description and from the figures and claims,
modifications and changes can be made to the embodiments of the
invention without departing from the scope of this invention as
defined in the following claims.
* * * * *