Note : Les descriptions sont présentées dans la langue officielle dans laquelle elles ont été soumises.
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
COMPUTER SYSTEM WITH
PROGRAM CONFIGURATIONS AND METHODS FOR A STORE
BACKGROUND OF THE INVENTION
This Application is a Continuation-in-Part of copending Application Serial No.
09/301,749, of Ken R. Powell, Kevin W. Hartley, Eleanor B. Maxwell, and Corey
C.
Snook, filed April 29, 1999 for COMPUTER SYSTEM CONFIGURATION AND
METHOD FOR A STORE, the contents of which are hereby incorporated by
reference;
and is a Continuation-in-Part of copending Application Serial No. No.
09/317,440 of Ken
R. Powell, Eleanor B. Maxwell, And Corey C. Snook, filed May 24, 1999 for
REGISTER
SYSTEM CONFIGURATIONS AND METHODS FOR A STORE, the contents of which
are hereby incorporated by reference.
Field of the Invention
This invention relates generally to a store and, more particularly, to a
computer
system configuration and method for processing discount information in a
retail store.
Description of Related Art
Product promotions employing price discounts are a popular means to stimulate
sales of products such as grocery store items. One type of product promotion
is a discount
coupon. It has been estimated that in-store couponing coupled with advertising
increases
sales by 544%.
SUMMARY OF THE INVENTION
It is an object of the present invention to provide a computer system with
program
configurations and methods for processing discount information to adjust a
price in a retail
system.
To achieve these and other objects of the present invention, there is a system
in a
store with a plurality of products. The system comprises a plurality of
register stations,
each register station including a bar code reader that generates a first
signal identifying a
product selected by the customer; a first instruction set with a first
instruction location
signal; and a signal path that transfers the first signal to the first
instruction set, wherein
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
register station is associated with a respective second instruction set, with
a respective
second instruction location signal, that sends a second signal to the first
instruction set; and
a signal path that transfers the first signal from the bar code reader to the
second instruction
set, and wherein the first instruction set includes logic that determines a
total amount due,
by receiving the first signal and second signals.
According to another aspect of the present invention, there is a method in a
system
including a store with a plurality of products, and a plurality of register
stations, each
including a bar code reader, and a first instruction set with a first
instruction location
signal, wherein the system further includes a plurality of second instruction
sets, each with
to a respective second instruction location signal. The method comprises the
steps, performed
in each register station to perform a checkout transaction for a customer, of
using the bar
code reader to generate a first signal identifying a product selected by the
customer;
sending the first signal to the first instruction set; and sending the first
signal to a
respective one of the second instruction sets,
~ 5 and the method further includes subsequently sending, from the respective
one of the
second instruction sets, a second signal to the first instruction set; and
determining, in the
first instruction set, a total amount due from the customer, by receiving the
first signal and
second signals.
2o BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a schematic diagram of a retail system in accordance with a first
preferred
embodiment of the present invention.
Figs. 2A and 2B are another type of view of a retail store in the first
preferred
embodiment.
25 Figs. 3A and 3B are the other type of view of another part of the retail
store.
Fig. 4 is a flow chart of a process performed by the first preferred
embodiment.
Fig. 5 is a block diagram of the first preferred computer system.
Fig. 6 is a block diagram of a checkout station in the first preferred
embodiment.
Fig. 7 is a flow chart of a processing performed by a part of the checkout
station.
3o Fig. 8 is a flow chart of a processing performed by a part of the checkout
station.
Fig. 9 is a flow chart of a processing performed by a part of the checkout
station.
Fig. 10 represents a content of a customer card.
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
Fig. 11 represents a table employed by the checkout station to process coupon
redemptions.
Fig. 12 and 12B are a view of a part of a retail store in accordance with a
second
preferred embodiment of the present invention.
Fig. 13 is a block diagram of the second preferred computer system.
Fig. 14 is a block diagram of a check out station in the second preferred
computer
system.
Fig. 15A and 1 SB are a view of a retail store in accordance with a third
preferred
embodiment of the present invention.
1o Fig. 16 is a block diagram of the third preferred computer system.
Fig. 17 is a block diagram of a check out station in the third preferred
embodiment.
Fig. 18A and 18B are a view of a retail store in a fourth preferred embodiment
of
the present invention.
Fig. 19 is a block diagram of the fourth preferred computer system.
Fig. 20 is a block diagram of a checkout station in the fourth preferred
embodiment.
The accompanying drawings which are incorporated in and which constitute a
part
of this specification, illustrate embodiments of the invention and, together
with the
description, explain the principles of the invention, and additional
advantages thereof.
2o Throughout the drawings, corresponding elements are labeled with
corresponding reference
numbers.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
First Preferred Embodiment
Fig. 1 shows a store 1 including roof structure 6, computer network 7 under
roof
structure 6, in accordance with a first preferred embodiment of the present
invention. Roof
structure 6 includes roof section 4, window 5 coupled to roof section 4, and
roof section 3
coupled to window 5.
Figs. 2A, 2B, 3A, and 3B are each a partial view of store 1. Store 1 has a
plurality
of product areas, each corresponding to a respective product. For example,
product area
3
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
110 has bottles 112 of Delta brand detergent. Each bottle of detergent 112 has
a common
Universal Product Code (UPC) symbol, which is a group of parallel lines
encoding a
number that is part of a product identification system documented by the
Uniform Code
Council, Inc., Dayton, OH. The first digit is a number system character, which
in this case
is 0. The next five digits are a manufacturer ID. The next 5 digits are an
item number.
The last digit is a check digit. UPC product code 0 17075 00003 3 uniquely
identifies
Delta Detergent.
Product area 120 has boxes of pasta 122. Each box of pasta 122 has a common
UPC symbol encoding a UPC product code (0 17031 00005 3) uniquely identifying
Old
t0 World pasta.
Product area 130 has boxes of light bulbs 132. Each box of light bulbs 132 has
a
common UPC symbol encoding a UPC product code (0 17054 1017 6) uniquely
identifying Lighthouse light bulbs.
Similarly, other product areas in store 1 each have a set of respective
products
contiguously grouped together. Respective units of a certain product have a
common UPC
symbol. different from UPC symbols on units of other products, that uniquely
identifies the
certain product. Respective units of a certain product also have a common
human readable
word label, different from labels on units of other products, that uniquely
identifies the
certain product with words. Product area 140 has bottles of ABC brand ketchup
142
2o contiguously grouped together. Product area 150 has boxes of Fido brand dog
food 152
contiguously grouped together. Product area 160 has loaves of Boxer brand
bread 162
contiguously grouped together. Product area 170 has cartons of Clover brand
milk 172
contiguously grouped together. Product area 180 has packages of Chicago brand
bacon
182. Product area of 190 has packages of Clover brand butter 192 contiguously
grouped
together.
Customers 210, 220, 230, 250, 280, and 290, shop in store 1. Some of the
customers, such as customer 210 in Fig. 2A, shop an electronic card, such as
customer card
215, which is approximately the length and width of a typical financial credit
card. While
shopping in store l, each of customers 210, 220, 230, 250, and 280 carries his
or her
3o respective customer card. Customer 210 carries card 215, customer 220
carries card 225,
4
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
customer 230 carries card 235, customer 250 carries card 255, customer 280
carries card
285.
Each customer tows a shopping cart to hold selected products. Customer 210
tows
cart 212, customer 220 tows cart 222, customer 230 tow cart 232, customer 250
tows cart
252, customer 280 tows cart 282. and customer 290 tows cart 292. Each customer
removes
one or more desired products from a shelf and places the removed product into
her cart.
Upon completion of shopping, the customer brings selected products from the
shelves to checkout station 300, 301, or 302.
A customer may redeem electronic coupons by presenting her customer card for
1o insertion into smart card reader/writer 315. For example, referring to
Figs. 2A, 2B, 3A,
and 3B, customer 280 completes the purchase of her selected products 283 by
transferring
products 283 from her cart 282 to station 300, and by presenting card
285;customer 390
completes the purchase of her selected products 393 by transferring products
393 from her
cart 392 to station 301, and by presenting card 395; customer 490 completes
the purchase
~ 5 of his selected products 493 by transferring products 493 from his cart
492 to station 302,
and by presenting card 495;customer 480 completes the purchase of his selected
products
483 by transferring products 483 from his cart 482 to station 302, and by
presenting card
485. Customer 210 completes the purchase of her selected products 214 by
transferring
products 214 from her cart 212 to station 300, and by presenting card 215 for
insertion into
2o card interface slot 314.
An overview of a process performed by the customers and circuitry of the first
preferred embodiment will now be described. In this Patent Application, the
word circuitry
encompasses dedicated hardware, and/or programmable hardware, such as a
central
processing unit (CPU) or reconfigurable logic array, in combination with
programming
25 data, such as sequentially fetched CPU instructions or programming data for
a
reconfigurable array.
Before shopping in the store, each of these customers obtained a customer
card.
For example, customer 230 obtained customer card 235 from a bank, by
completing an
application. The application contained questions to collect demographic data,
including
3o birth date, income level, past buying patterns, geographic location, size
of family, level of
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
education, and job-related data. The bank subsequently wrote customer
identification data
for customer 230 onto customer card 235, and issued customer card 235 to
customer 230,
and sent the customer's demographic data to headquarters site 13100 (see Fig.
25) which
then stored the demographic data on a magnetic disk in center 13100. Each of
customers
210, 220, 250, 280, and 290 obtained a respective customer card in a similar
manner.
Fig. 4 shows a process performed by the preferred embodiment embodiments of
the
present invention. While shopping in store 1, each of customers 210, 220, 230,
250, 280,
and 290 carnes his or her respective customer card. Customer 210 carries card
215.
customer 220 carries card 225, customer 230 carries card 235, customer 250
carries card
255, customer 280 carnes card 285, and customer 290 carries card 295. Each
customer
tows a shopping cart to hold selected products. Customer 210 tows cart 212,
customer 220
tows cart 222, customer 230 tow cart 232, customer 250 tows cart 252, customer
280 tows
cart 282, and customer 290 tows cart 292. Each customer removes one or more
desired
products from a shelf and places the removed product into her cart. (step 15).
Upon completion of shopping, the customer brings selected products from the
shelves to checkout station 300, 301, or 302. (step 17).
The customer redeems the electronic coupons by presenting her customer card
for
insertion into smart card reader/writer 315. For example, referring to Figs.
3A, 3B, 6A,
and 6B, a customer such as customer 290 completes the purchase of her selected
products
293 by transferring products 293 from her cart 292 to station 300, and by
presenting card
295 for insertion into card interface slot 314; customer 280 completes the
purchase of her
selected products 283 by transferring products 283 from her cart 282 to
station 300, and by
presenting card 285;customer 390 completes the purchase of her selected
products 393 by
transferring products 393 from her cart 392 to station 301, and by presenting
card
395;customer 380 completes the purchase of his selected products 383 by
transferring
products 383 from his cart 382 to station 301, and by presenting card
385;customer 490
completes the purchase of his selected products 493 by transfernng products
493 from his
cart 492 to station 302, and by presenting card 495;customer 480 completes the
purchase of
his selected products 483 by transferring products 483 from his cart 482 to
station 302, and
3o by presenting card 485;customer 470 completes the purchase of his selected
products 473
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
by transferring products 473 from his cart 472 to station 302, and by
presenting card 475.
Customer 210 completes the purchase of her selected products 214 by
transferring products
214 from her cart 212 to station 300, and by presenting card 215 for insertion
into card
interface slot 314. It is presently preferred that card insertion occur at the
beginning of the
checkout transaction, although card insertion could happen later.
Reader/writer 315 reads
the coupon offers from the card. (step 20).
A checkout clerk (not shown) scans each selected product past bar code reader
3I0,
or enters the product selection information manually via keyboard 318, to
generate a UPC
product code for the most recently processed product. Checkout station 300
sends this
UPC product code to both execution thread 330 and execution thread 320.
The clerk also scans paper coupons past bar code reader 310, or manually reads
the
paper coupons and enters the coupon information manually via keyboard 3 I 8.
Execution
thread 330 makes a list of the products selected by the customer. Execution
thread 330
processes the paper coupon information in the context of the selected products
to determine
15 discount eligibility.
Execution thread 320 is also responsive to products selected by the customer.
Execution thread 320 makes a list of the products selected by the customer.
Execution
thread 320 performs electronic coupon redemption, by processing the selected
products in
the context of the coupon information from the customer's card to determine
discount
2o eligibility (step 30).
In response to the results of steps 25 and 30, checkout station 300 determines
a total
amount due and prints the total amount due on display 317 and on the
customer's paper
receipt. (step 35).
Execution thread 330 determines a basic price for the product by processing a
25 pricing information message received from financial computer 40, via cable
8. Execution
thread 330 scans and processes each product 293 in a similar manner.
Similarly, customer 390 in Fig. 3A will complete the purchase of her selected
products 393 by transferring products 393 from her cart 392 to station 301,
and by
presenting card 395 for insertion into interface slot 314 of station 301; and
the clerk will
3o scan each selected product 393 past UPC bar code reader 310. Customer 490
in Fig. 3B
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
will complete the purchase of his selected products 493 by transferring
products 493 from
his cart 422 to station 302, and by presenting card 495 for insertion into
interface slot 314
of station 302; and the clerk (not shown) will scan each selected product 493
past UPC bar
code reader 310 of station 302.
The preferred embodiments of the present invention will now be described in
more
detail.
Fig. 5 shows another aspect of the first preferred system. Local Area Network
(LAN) 7 in store 1 includes ethernet cable 8, financial computer 40, station
300, station
301, and station 302. Each of stations 300, 301, and 302 includes a respective
bar code
1o reader 310. Execution thread 330 is in checkout station 300, execution
thread 331is in
checkout station 301, and execution thread 332 is in checkout station 302.
Each of
computer 40 and stations 300, 301, and 302 has a respective network address
uniquely
identifying it in network 7. Each of computer 40 and stations 300, 301, and
302 has a
respective network interface card for recognizing when a packet containing its
address is
sent over cable 8.
Computer 40 and threads 330, 331, and 332 communicate by sending data packets
in a format conforming to the communication protocol of network 7, meaning,
for
example, that the packet has a destination address field offset a certain
number of bits from
the start of the packet, and that the destination address field has a certain
number of bits.
2o Each packet is essentially a type of signal.
Fig. 6 is a block diagram of checkout station 300. Cash register keyboard 318
allows manual entry of alpha-numeric-data. Disk 325 provides long term
storage. Bar
code reader 310 generates a bar code signal, and sends the bar code signal to
thread 330 via
bus 351. Poll display 317 displays product data in response to signals from
thread 330.
CPU 350 executes instructions in random access, addressable memory 323.
CPU 350 executes operating system 305 to run one of programs 342 or 343 at a
particular time. CPU 350 and operating system 305 execute program 342 to
effect
execution thread 330. CPU 350 and operating system 305 execute program 343 to
effect
execution thread 320, as a thread separate from thread 330.
3o Execution thread 330 includes program 343, which is essentially a plurality
of
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
instructions, sequentially fetched and executed by CPU 350, and a program
counter (PC)
363 indicating a next instruction to be executed in program 343. Operating
system 305
manages PC 363.
Execution thread 320 includes a program 342, which is essentially a plurality
of
instructions, sequentially fetched and executed by CPU 350, and a program
counter (PC)
362 indicating a next instruction to be executed in program 342. Operating
system 305
managers PC 362 independently of PC 363.
The single CPU 350 may execute each of programs 342 and 343 essentially
concurrently, by using a time sharing scheme, in which CPU 350 executes one
program for
1o a time, ceases execution of the program, saves the current PC and other
state information
for the program, and resumes execution of a previously saved program at the
instruction
indicated by the saved PC of the previously saved program.
Programs 342 and 343 run in a common address space, meaning that a certain
address in one of the programs accesses the same memory location than the
certain
addresses accesses in the other program.
Thus, each thread is essentially a computation that proceeds independently of
the
other thread, except for execution of synchronizing or blocking instructions.
Various parts of the components shown in random access memory 323 may be
transferred between memory 323 and disk memory 325 using a virtual memory
mapping
2o scheme, as is well known in the art.
Execution thread 320 acts to receive electronic coupons from a customer card,
via
reader/writer 315. Memory 323 also includes a redemption control table 347,
which
enables Execution thread 320 to determine if a product has a corresponding
electronic
coupon offer.
Checkout stations 301 and 302 each have the same capabilities and hardware as
checkout station 300.
Fig. 7 represents a basic process performed by execution thread 330, effected
by
CPU 350 and program 343. To prepare for processing a new customer, thread 330
initializes various customer lists, including a list of products selected by
the customer. (step
5). thread 330 determines whether bar code reader 310 has data. (step 10). If
bar code
9
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
reader 310 has data, thread 330 passes control to a subprogram of program 343
to handle
data from bar code reader 310. (step 15).
thread 330 determines whether keyboard 318 has data. (step 20). If thread 330
determines that keyboard 318 has data, thread 330 passes control to a
subprogram of
program of 343 for handling input from keyboard 318. (step 25).
Fig. 8 shows processing of step 15 of Fig. 7 in more detail. When the clerk
(not
shown) moves an object past UPC reader 310, UPC reader 310 detects the bar
code on the
object and sends the bar code to program 343. If a bar code has been received
and the first
digit is a 5 (step 5), program 343 exchanges messages with computer 40 to get
the discount
1 o corresponding to the UPC coupon code. Program 343 then makes a record
including the
coupon and the discount amount, and adds this record to a temporary UPC coupon
list 344
in memory 323 (stepl0).
If the first digit is not a 5, meaning that the code is a UPC product code,
program
343 gets the price of the product, the UPC coupon family code of the product,
and the
textual description of the product. (step 15). Program 343 then sends a signal
encoding the
textual description of the product to display 317, and display 317 generates a
human
readable output describing the product. (step 20).
Fig. 9 shows a processing of step 25 of Fig. 7 in more detail. If the clerk
enters a
key sequence for processing a coupon code, program 343 exchanges messages with
2o computer 40, to get the discount corresponding to the UPC coupon code.
Program 343
then makes a record including the coupon and the discount amount, and adds
this record to
the UPC coupon list 344 in memory 20 (step 10).
If the clerk enters a key sequence for entering a UPC product code (step 15),
program 343 gets the price of the product, the UPC coupon family code of the
product, and
the textual description of the product. (step 25). Program 343 then sends a
signal encoding
the textual description of the product to display 317, and display 317
generates a human
readable output describing the product (step 30).
If the clerk enters a key sequence for a discount entry (step 31 ), program
343 adds
the value of the tender to a total discount amount, to offset a subsequently
calculated
3o amount due (step 32).
to
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
When the clerk activates the TOTAL button 349 (step 35), program 343
determines
the total amount due for the checkout transaction, by subtracting the total
discount amounts
from the results of a total product price calculation. (step 40). Program 343
then displays
the resulting total amount due on display 317 (step 45).
Part of the processing of step 15 of Fig. 28 and step 25 of Fig. 9 is to sends
the UPC
product code to program 342.
In the first preferred embodiment, it is presently preferred that sending of
the UPC
product code to program 342 be implemented by sending the product code in a
shared
buffer, or by sending the product code in a message using a messaging facility
of operating
1o system 305.
Some processing performed by thread 330, executing program 342. will now be
described in more detail. Execution thread 320 communicates with a card in
interface slot
314 through smart card reader/writer 315. A switch (not shown) in interface
slot 314 alerts
reader/writer 315, which alerts execution thread 320, that a card has been
inserted into the
slot. Subsequently, Execution thread 320 causes smart card reader/writer 315
to reset the
card. The card then answers the reset by sending an ''answer to reset" data
block in
accordance with the ISO standard ISO 7816-3: 1989 (E). Execution thread 320
then reads
a customer card ID record, via reader/writer 315. Execution thread 320 then
reads a
pointer record and, using the pointer record, reads table 8435 from an EEPROM
of the
2o customer card, and temporarily stores table 8435 contents in memory 333.
Fig. 10 shows coupon table 8435, which is in a data structure within other
data
structures in EEPROM 8462 of customer card 215. Each row in Fig.20 represents
an entry
in table 8435. Each entry includes a 4 hexadecimal digit coupon number. Table
8435 has
three entries, reflecting the fact that customer 210 has received three
electronic coupons
from coupon dispensing devices. The entry having the coupon number 1317
corresponds
to a coupon for purchase of a box of Old World Pasta 122. The entry having the
coupon
number 0054 corresponds to a coupon for purchase of a box of Lighthouse Light
Bulbs
134. The entry having the number 3656 corresponds to a coupon for purchase of
detergent
bottles 112.
3o Each of the customer cards has the same hardware structure as customer card
215.
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
Fig. 11 is a simplified diagram of redemption control table 347. Each row in
Fig.
11 represents an entry in redemption control table 347, and each of the 4
columns shown
represents an entry field. The first field is a coupon identifier (ID), the
second field is a
UPC product code corresponding to the coupon ID. Redemption control table 347
is sorted
by UPC product code.
The third field is a reward type. A reward type of 2 represents a percent off
coupon, and a reward type of 0 represents a cents off coupon.
The fourth field in Fig. 11 is the reward quantity.
The first entry shows a reward quantity of 20 percent, as the reward type
field is 2.
to The second entry shows a reward quantity of 75 cents off as the reward type
is 0. The third
entry shows a reward of 50 cents off, as the reward type is 0.
When Execution thread 320 receives a product message containing a product UPC
code from Program 343, Execution thread 320 searches for the product UPC code
in
redemption control table 347. If this search of table 347 does not result in a
match, there is
not discount resulting from the current product. If this search of table 347
does result in a
match, Execution thread 320 searches coupon table 8435, from the customer
card, for the
value in the coupon ID field of the matching entry in table 347. If this
search of table 8435
does not result in a match, there is no discount resulting from the current
product.
If the searches of redemption control table 347 and coupon table 8435 both
result in
matches, Execution thread 320 increments an accumulator corresponding to the
matching
entry in table 347, to record the quantity of the product. More specifically,
Execution
thread 320 increments an array element: PRODUCT COUNT [TABLE_347 INDEX] _
PRODUCT COUNT [TABLE 347 INDEX] +l, wherein PRODUCT COUNT is an array
and TABLE 347 INDEX is the index of the matching entry in table 347.
Execution thread 320 determines whether the qualifier conditions are satisfied
for
the currently selected coupon. If the qualifier conditions are satisfied and
the coupon is a
manufacturer coupon, the coupon quantity is added to a variable
DISCOUNT TENDER PRETAX. If the qualifier are satisfied and the coupon is a
retailer
coupon, the coupon quantity is added to a variable DISCOUNT TENDER POSTTAX.
3o Thus, thread 320's processing, of the product UPC messages received from
thread
12
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
330, iterates through each combination of coupon and product. Essentially,
this iteration is
performed with products changing in an outerloop and coupons changing in an
innerloop.
Execution thread 320 sends discount information to thread 330, in the form of
messages reflecting values of DISCOUNT TENDER PRETAX, and containing
information to be displayed to the customer. In response to such messages,
thread 330
adds to a total discount amount and may print text on printer 354.
Execution thread 320 sends discount information to thread 330, in the form of
messages reflecting values of DISCOUNT TENDER POSTTAX, and containing
information to be displayed to the consumer. In response to such messages,
thread 330
adds to a total discount amount, and may print text on printer 354.
It is presently preferred that thread 320 send discount information messages
to
thread 330 in a shared buffer, or by sending the discount information using a
messaging
facility of operating system 305.
A signal path that carries a UPC product code from bar code reader 310 to
program
343 includes interface hardware 311, bus 351, and CPU 350. A signal path that
carnes the
bar code signal from reader 310 to program 342 includes interface hardware
311, bus 351,
CPU 350, and program 343.
Headquarters site 13100 may manage and send flights of electronic coupon data
to
systems 320, 321, and 322 by way of computer 42 or a system program card. A
type of
system program card is disclosed in copending application of KEN R. POWELL,
ELEANOR B. MAXWELL, and COREY C. SNOOK for SYSTEM AND METHOD
EMPLOYING A PORTABLE CARD TO CONFIGURE A STORE FOR PRODUCT
PROMOTION, Serial No. 09/301,747, filed April 29, 1999, the contents of which
is herein
incorporated by reference. A customer may start shopping with a customer card
preloaded with electronic coupons. For example, the store may preload new
cards as an
incentive for completing and submitting a check cashing application. The
customer may
also have a device at home for loading coupons onto the card, as described in
U.S. Patent
No. 5,806,044 issued September 8, 1998 of KEN R. POWELL for SYSTEM AND
METHOD FOR DISTRIBUTING COUPONS THROUGH A SYSTEM OF COMPUTER
3o NETWORKS, Serial No. 08/603,482, filed February 20, 1996, the contents of
which is
13
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
herein incorporated by reference. The customer may also load coupons onto the
card from
in-store shelf units, as described in copending U.S. Patent Application of KEN
R.
POWELL for RETAIL SYSTEM, Serial No. 08/468,816, filed June 6, 1995, the
contents
of which is herein incorporated by reference; and in copending application of
KEN R.
POWELL, KEVIN W. HARTLEY, THOMAS M. HINTZ, ELEANOR B. MAXWELL,
and COREY C. SNOOK for SYSTEM AND METHOD EMPLOYING PORTABLE
CARDS TO MONITOR A COMMERCIAL SYSTEM, Serial No. 09/301,748, filed April
29, 1999, the contents of which is herein incorporated by reference.
Second Preferred Embodiment
A system in accordance with a second preferred embodiment of the present
invention will now be described. The second preferred embodiment includes the
features
of the first preferred embodiment, except for differences as described below.
Figs. 12A and 12B are each a partial view of store 1'. Fig. 13 shows another
aspect
of the second preferred system. Execution thread 330' is in checkout station
300',
execution thread 331'is in checkout station 301', and execution thread 332' is
in checkout
station 302'.
Fig. 14 a block diagram of checkout station 300'. CPU 350 executes
instructions in
random access, addressable memory 323.
CPU 350 executes operating system 305' to run one of application programs 342'
or
343' at a particular time. CPU 350 and operating system 305 execute
application program
342' to effect execution thread 330'. CPU 350 and operating system 305 execute
application program 343' to effect execution thread 320', as a thread separate
from thread
330'.
Execution thread 330' includes application program 343', which is essentially
a
plurality of instructions, sequentially fetched and executed by CPU 350, and a
program
counter (PC) 363 indicating a next instruction to be executed in application
program 343'.
Operating system 305' manages PC 363.
Execution thread 320' includes application program 342', which is essentially
a
plurality of instructions, sequentially fetched and executed by CPU 350, and a
program
14
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
counter (PC) 362 indicating a next instruction to be executed in application
program 342'.
Operating system 305' managers PC 362 independently of PC 363.
The single CPU 350 may execute each of application programs 342' and 343'
essentially concurrently, by using a time sharing scheme, in which CPU 350
executes one
application program for a time, ceases execution of the application program.
saves the
current PC and other state information for the application program, and
resumes execution
of a previously saved application program at the instruction indicated by the
saved PC of
the previously saved application program.
Application programs 342' and 343 'run in separate address spaces, meaning
that a
to certain address in one of the application programs accesses a different
memory location
than the certain addresses accesses in the other application program.
A signal path that transfers a UPC product code from bar code reader 310 to
application program 343' includes interface hardware 311, bus 351, and CPU
350. A
signal path that carries the UPC bar code from reader 310 to application
program 342'
15 includes interface hardware 31 l, bus 351, CPU 350, and application program
343'.
Thus, each thread is essentially a computation that proceeds independently of
the
other thread, except for execution of synchronizing or blocking instructions.
Execution thread 320' acts to receive electronic coupons from a customer card,
via
reader/writer 315. Memory 323 also includes a redemption control table 347,
which
2o enables Execution thread 320 to determine if a product has a corresponding
electronic
coupon offer.
Execution thread 320' in the second embodiment performs essentially the same
processes as those described in connection with execution thread 320 in the
first
embodiment. Execution thread 330' in the second embodiment performs
essentially the
25 same processes as those described in connection with execution thread 330
in the first
embodiment.
Checkout stations 301' and 302' each have the same capabilities and hardware
as
checkout station 300'.
30 Third Preferred Embodiment
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
A system in accordance with a third preferred embodiment of the present
invention
will now be described. The third preferred embodiment includes the features of
the first
preferred embodiment, except for differences as described below.
Figs. 15A and 15B are each a partial view of store 1". Fig. 16 shows another
aspect
of the third preferred system. Execution thread 330" is in checkout station
300", execution
thread 331"is in checkout station 301", and execution thread 332" is in
checkout station
302".
Fig. 17 is a block diagram of checkout station 300 including cash register
system 30
and card interface system 20. Cash register system 30 includes an IBM 4680-
4690 Point of
1o Sale System. CPU 350 executes program 343" in random access, addressable
memory
323.
CPU 350 in system 30 communicates with CPU 352 in system 20 via RS232 line
328.
In card interface system 20, CPU 352 executes program 342" in memory 333. CPU
352 and program 342" act to receive electronic coupons from a customer card,
via
reader/writer 315. Memory 333 also includes a redemption control table 347,
which
enables CPU 352 to determine if a product has a corresponding electronic
coupon offer.
CPU 350 sends a product message including the UPC product code to CPU 352 via
RS232 line 328.
2o When CPU 352 receives a product message containing a product UPC code from
CPU 350, CPU 352 searches for the product UPC code in redemption control table
347.
CPU 352 sends discount information to CPU 350, via RS232 line 328, in the form
of messages reflecting values of redeemed coupons from table 347. In response
to such
messages, CPU 350 adds to a total discount amount, and, subsequently,
calculates a total
amount due based on the total discount amount.
Thus, CPU 350 executes program 342" to effect execution thread 330". CPU 352
executes program 343" to effect execution thread 320", as a thread separate
from thread
330".
Execution thread 330' includes program 342", which is essentially a plurality
of
3o instructions, sequentially fetched and executed by CPU 350, and a program
counter (PC)
16
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
362' indicating a next instruction to be executed in program 342".
Execution thread 320" includes program 343", which is essentially a plurality
of
instructions, sequentially fetched and executed by CPU 350, and a program
counter (PC)
363' indicating a next instruction to be executed in program 343".
Because programs 342" and 343" run in separate random access memories,
programs 342" and 343" run in separate address spaces.
Thus, each thread is essentially a computation that proceeds independently of
the
other thread, except for execution of any synchronizing or blocking
instructions.
Execution thread 320" in the third embodiment performs essentially the same
1 o processes as those described in connection with execution thread 320 in
the first
embodiment. Execution thread 330" in the third embodiment performs essentially
the
same processes as those described in connection with execution thread 330 in
the first
embodiment.
A signal path that carries a UPC product code from bar code reader 310 to
program
15 343" includes interface hardware 311, bus 351, and CPU 350. A signal path
that carries
the UPC product code from bar code reader 310 to program 342" includes
interface
hardware 311, bus 351, CPU 350, and program 343".
More detailed information for implementation of the third embodiment of the
invention in the instant application may be found in copending Application
Serial No.
20 09/301,749, of Ken R. Powell, Kevin W. Hartley, Eleanor B. Maxwell, and
Corey C.
Snook, filed April 29, 1999 for COMPUTER SYSTEM CONFIGURATION AND
METHOD FOR A STORE, the contents of which are hereby incorporated by
reference.
Checkout stations 301' and 302' each have the same capabilities and hardware
as
checkout station 300'.
Fourth Preferred Embodiment
A system in accordance with a fourth preferred embodiment of the present
invention will now be described. The fourth preferred embodiment includes the
features
of the first preferred embodiment, except for differences as described below.
17
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
Figs. 18A and 18B are each a partial view of store 1 "'. Fig. 19 shows another
aspect of the third preferred system. Execution thread 330"' is in checkout
station 300"',
execution thread 331"'is in checkout station 301"', and execution thread 332"'
is in checkout
station 302"'.
Fig. 20 is a block diagram of checkout station 300"' including cash register
system
30 and card interface system 20. Cash register system 30 may include an IBM
4680-4690
Point of Sale System. CPU 350 executes a plurality of instructions 343"' in
random access,
addressable memory 323. Memory 323 stores total price 346, which is a sum of a
basic
retail price for the products selected by the current customer. Memory 323
stores total
tender amounts 339, which are sums of various types of value tenders for the
current
customer. Tender amounts 339 include a respective memory area for cash, a
respective
memory area for checks, a respective memory area for food stamps, a respective
memory
area for a certain kind of credit card, a respective memory area for another
kind of credit
card, etc.
Memory 323 stores total discount amounts 340, which are sums of various types
of
discounts for the current customer. Memory 323 also stores an amount due 348,
which is a
result of a calculation including total price 346, total discount amounts 340,
and total
tender amounts 339.
Each of bus interfaces 324 and 311 recognizes a respective bus address on RS-
485
2o serial bus 351. Interface 324 recognizes a bus address for poll display
317, and interface
311 recognizes a bus address for bar code reader 310. CPU 350 communicates
with a
peripheral device by first sending the device's bus address on bus 351. For
example, to
write data to pole display 317, CPU 350 sends the bus address of pole display
317 via bus
351 and then sends data to be written via bus 351. Pole display 317 acts to
receive a
command for writing the data in response to a recognition of pole display 317
bus address
by interface 324.
To read data from peripheral devices, CPU 350 polls each input device by
sending a
respective device bus addresses on bus 351 and listening for a response.
Cash register keyboard 318 allows manual entry of alpha-numeric-data, which is
3o sent to CPU 350 via bus interface hardware 357, bus 353, bus interface
hardware 356, CPU
18
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
352, bus interface hardware 341, and bus 351. CPU 352 and bus interface
hardware 341
cooperate to recognize a bus 351 address for cash register keyboard 318. Thus,
to CPU
350, cash register keyboard 318 appears to be a device on bus 351.
CPU 352 in the fourth preferred embodiment receives product UPC codes,
generated by bar code reader 310, from the IBM 4680-4690 cash register system
via
RS-485 serial bus 351.
In card interface system 20, CPU 352 executes program 342"' in memory 333.
CPU 352 and program 342"' act to receive electronic coupons from a customer
card, via
reader/writer 315. Memory 333 also includes a redemption control table 347,
which
1o enables CPU 352 to determine if a product has a corresponding electronic
coupon offer.
When the clerk activates the TOTAL key on keyboard 318, CPU 350 determines
the total amount due for the checkout transaction by subtracting each of
discount amounts
25, 26, 27, and 28 from the results of a total product price calculation based
on total price
346. This subtraction acts to effect discounts received from CPU 350 because
card
15 interface system 20 will have sent discount entries as emulated keyboard
input via interface
341 and bus 351. Such emulated keyboard input will have been processed by CPU
350.
CPU 352 does not receive UPC product codes via a signal dedicated to CPU 352.
Instead, CPU 352 monitors bus 351, via interface hardware 341, to detect UPC
product
codes from bar code reader 310. Hardware 341 may assume a variety of forms.
Hardware
20 341 may effect digital logic to recognize a bus address for bar code reader
310, to interrupt
CPU 352 and cause CPU 352 to execute an interrupt routine to monitor any
response sent
from bar code reader 310 to CPU 350. Alternately, hardware 341 may both
recognize the
bus address for bar code reader 310 and monitor any data response from reader
310 to CPU
350, to buffer a complete UPC product code for sending to CPU 352.
25 Because CPU 352 is in the signal path between cash register keyboard 318
and
CPU 350, CPU 352 also detects UPC product codes entered manually via cash
register
keyboard 318.
When CPU 352 receives a product UPC code, CPU 352 searches for the product
UPC code in redemption control table 347. CPU 352 determines whether the
qualifier
3o conditions are satisfied for the coupon of the matching entry in table 347.
If the qualifier
19
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
conditions are satisfied.
CPU 352 sends discount information to CPU 350, in the form of key sequences
for
discount entries reflecting values of the discount. In response to such a key
sequence,
CPU 350 adds to discount amount 26 and may print text on printer 354 via bus
351 and
interface hardware 358.
In summary, station 300"' includes bar code reader 310 for generating product
code
signals identifying products selected for purchase, and keyboard 318 for
sending keyboard
signals to the CPU 350. Station 300"' acts to send each product code signal
from reader
310 to CPU 350. Station 300"' also acts to send each product code signal to
CPU 352, via
to a signal path that excludes program 343"' and CPU 350. CPU.350 acts to
determine a basic
price responsive to the product code signal. Responsive to receiving a product
code
signal, CPU 352 acts to send a discount signal in a format of emulated
keyboard signals.
Responsive to the basic total price 346 and the discount signal, CPU 350 acts
to determine
a total amount due 348 .
~5 Thus, CPU 350 executes program 342"' to effect execution thread 330"'. CPU
352
executes program 343"' to effect execution thread 320"', as a thread separate
from thread
330"'.
Execution thread 330"' includes program 342"', which is essentially a
plurality of
instructions, sequentially fetched and executed by CPU 350, and a program
counter (PC)
20 362' indicating a next instruction to be executed in program 342"'.
Execution thread 320"' includes program 343"', which is essentially a
plurality of
instructions, sequentially fetched and executed by CPU 3~0, and a program
counter (PC)
363' indicating a next instruction to be executed in program 343"'.
Because programs 342"' and 343"' run in separate random access memories,
25 programs 342" and 343" run in separate address spaces.
Thus, each thread is essentially a computation that proceeds independently of
the
other thread, except for execution of any synchronizing or blocking
instructions.
A signal path that carries a UPC product code from bar code reader 310 to
program
343"' includes interface hardware 311, bus 351, and CPU 350. A parallel signal
path that
3o carries the UPC product code from bar code reader 310 to program 342"'
includes interface
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
hardware 31 l, bus 351, interface hardware 341 and CPU 352. This parallel
signal path
excludes program 343"' and CPU 350.
Execution thread 320"' in the fourth embodiment performs essentially the same
processes as those described in connection with execution thread 320 in the
first
embodiment. Execution thread 330"' in the fourth embodiment performs
essentially the
same processes as those described in connection with execution thread 330 in
the first
embodiment.
More detailed information for implementation of the fourth embodiment of the
invention in the instant application may be found in copending Application of
Ken R.
1o Powell, Eleanor B. Maxwell, And Corey C. Snook, filed May 24, 1999 for
REGISTER
SYSTEM CONFIGURATIONS AND METHODS FOR A STORE, the contents of which
are hereby incorporated by reference.
Thus, the embodiments of the invention described above process card-based
promotions without monitoring network 7, or otherwise being responsive to
signals on
network 7. Execution threads 320, 320', 320", and 320"' receive signals,
identifying
purchase products, through a signal path that excludes network 7.
Although the execution threads 320, 320', 320", and 320"' described above each
generate a signal, affecting a total amount due, responsive to a customer
specific signal, in
the form of coupons on a customer's card, generation of this Type of signal
need not be
2o responsive to customer specific information, and may instead be a fiznction
of a
all-customer discount as disclosed in the second embodiment of the invention
in copending
application of KEN R. POWELL, ELEANOR B. MAXWELL, and COREY C. SNOOK
for SYSTEM AND METHOD EMPLOYING A PORTABLE CARD TO CONFIGURE A
STORE FOR PRODUCT PROMOTION, Serial No. 09/301,747, filed April 29, 1999, the
contents of which is herein incorporated by reference.
Further, in its broadest sense the invention my encompass sending this type of
signal responsive solely to a profile of the customer or solely to past
purchasing patterns as
represented by accumulated points for example.
Additional advantages and modifications will readily occur to those skilled in
the
21
CA 02371678 2001-10-29
WO 00/67175 PCT/US00/11662
art. The invention in its broader aspects is therefore not limited to the
specific details,
representative apparatus, and illustrative examples shown and described.
Accordingly,
departures may be made from such details without departing from the spirit or
the scope of
Applicants' general inventive concept. The invention is defined in the
following claims.
22