US20190303896A1 - Point-of-sale terminal for reconciling order states under non-persistent connection conditions - Google Patents
Point-of-sale terminal for reconciling order states under non-persistent connection conditions Download PDFInfo
- Publication number
- US20190303896A1 US20190303896A1 US15/941,312 US201815941312A US2019303896A1 US 20190303896 A1 US20190303896 A1 US 20190303896A1 US 201815941312 A US201815941312 A US 201815941312A US 2019303896 A1 US2019303896 A1 US 2019303896A1
- Authority
- US
- United States
- Prior art keywords
- order
- orders
- pos terminal
- pos
- state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002085 persistent effect Effects 0.000 title claims abstract description 11
- 230000008859 change Effects 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 42
- 230000001413 cellular effect Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 description 26
- 238000010586 diagram Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 13
- 238000011156 evaluation Methods 0.000 description 10
- 230000015654 memory Effects 0.000 description 10
- 235000013305 food Nutrition 0.000 description 6
- 230000000977 initiatory effect Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 235000008694 Humulus lupulus Nutrition 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 235000021167 banquet Nutrition 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 241000234282 Allium Species 0.000 description 1
- 235000002732 Allium cepa var. cepa Nutrition 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000009365 direct transmission Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 235000021110 pickles Nutrition 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Lists, e.g. purchase orders, compilation or processing
- G06Q30/0635—Processing of requisition or of purchase orders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/202—Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/12—Hotels or restaurants
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Definitions
- This invention relates in general to the field of point-of-sale (POS) systems, and more particularly to a synchronization mechanism for intermittently-connected POS terminals.
- POS point-of-sale
- POS terminals point-of-sale terminals
- the POS terminals do not merely record orders, but rather account for available inventory, modify items available for order based upon recent orders, and optionally provide for payment for the orders.
- wait staff may employ manual techniques to enter and modify orders, such orders are entered by the wait staff themselves into electronic POS terminals at selected positions within the restaurants.
- present-day technology provides for hardwired connection of multiple POS terminals to the server, typically over a local area network.
- the on-premise server may be coupled to the internet for ancillary functions, such as for processing credit card payments, order fulfillment and synchronization of order stats between POS terminals is generally coordinated by the on-premise server. If the local area network goes down, then staff is forced to resort to fully manual order entry and fulfillment. And since the POS terminals are hardwired to the local area network, they must reside in fixed locations and are not portable.
- POS terminal may be configured as a mobile device, such as a smartphone or tablet, that is equipped with a card or chip reader (typically plugged into an audio jack).
- the mobile device may run an application program that provides for order entry and fulfillment, and which further may synchronize with a server in the cloud for purposes of order payment processing and inventory management.
- Food trucks, mobile kiosks, and pop-ups generally use these mobile devices for order entry, fulfillment, and payment.
- these mobile devices are not scalable. That is, present-day technology only allows for one mobile device per order, which is the reason for long lines around food trucks at noon. While portable, these devices cannot be employed to efficiently service an order for a large group. In the case of a restaurant, the same device must be carried from patron to patron within a given ordering party. In the case of a party of 50, the wait to take and fulfill the party's order.
- these mobile POS devices provide for recovery of state in the presence of intermittent wireless connectivity (as is common in Wi-Fi and cellular networks), they are still limited order throughput because two or more mobile POS devices may not share a single order.
- POS terminal that reconciles multiple order states under non-persistent connection conditions with an associated server in the cloud.
- a server in the cloud for synchronizing multiple POS terminals, wired and wireless, under intermittent network conditions, where certain ones of the POS terminals are synchronized with order states within one or more geofenced service areas.
- a point-of-sale (POS) terminal for fulfilling orders under non-persistent network conditions.
- the POS terminal includes a state processor and an order processor.
- the state processor is configured to queue state changes in one or more durable order queues that correspond to one or more orders in a restaurant.
- the order processor is coupled to the state processor, and is configured to generate the state changes and access and transmit the state changes in each one of the one or more durable order queues to a synchronization server, from oldest to youngest, when operably connected to a network, where the order processor comprises current order state fields corresponding to all of the orders, and where the order processor utilizes domain specific rules disposed therein to resolve conflicts in the one or more orders occurring from state change updates received from the synchronization server which result from other state changes to the one or more orders generated by one or more other POS terminals.
- the POS terminal has a state processor, order entry and display circuits, and an order processor.
- the state processor is configured to queue state changes in one or more durable order queues that correspond to one or more orders in a restaurant.
- the order entry and display circuits are configured to input menu selections and/or payment options.
- the order processor is coupled to the order entry and display circuits and state processor, and is configured to generate the state changes, and is configured to access and transmit the state changes in each one of the one or more durable order queues to a synchronization server, from oldest to youngest, when operably connected to a network, where the order processor comprises current order state fields corresponding to all of the orders, and where the order processor utilizes domain specific rules disposed therein to resolve conflicts in the one or more orders occurring from state change updates received from the synchronization server which result from other state changes to the one or more orders generated by one or more other POS terminals.
- a further aspect of the present invention comprehends a method for fulfilling orders under non-persistent network conditions.
- the method includes, within a point-of-sale POS terminal: generating state changes that correspond to one or more orders in a restaurant; queuing the state changes in one or more durable order queues that correspond to the one or more orders; accessing and transmitting the state changes in each one of the one or more durable order queues to a synchronization server, from oldest to youngest, when operably connected to a network; and maintaining current order state fields corresponding to all of the orders and utilizing domain specific rules to resolve conflicts in the one or more orders occurring from state change updates received from the synchronization server which result from other state changes to the one or more orders generated by other POS terminals.
- FIG. 1 is a block diagram illustrating a present-day method for fulfilling product orders to one or more patrons
- FIG. 2 is a block diagram depicting a synchronization system for intermittently-connected point-of-sale (POS) terminals according to the present invention
- FIG. 3 is a block diagram featuring a synchronization server according to the present invention.
- FIG. 4 is a block diagram showing durable POS terminal according to the present invention.
- FIG. 5 is a block diagram illustrating exemplary update/status messages according to the present invention that flow between a synchronization server and a durable POS terminal;
- FIG. 6 is a flow diagram detailing a POS terminal queuing method according to the present invention.
- FIG. 7 is a flow diagram illustrating a synchronization server queuing method according to the present invention.
- FIG. 8 is a block diagram depicting a selective synchronization server according to the present invention that employs received signal strength indication (RSSI) in the selection of POS terminals for update according to geofenced service areas;
- RSSI received signal strength indication
- FIG. 9 is a block diagram featuring a selective synchronization server according to the present invention that employs ping latencies in the selection of POS terminals for update according to geofenced service areas;
- FIG. 10 is a block diagram showing a selective synchronization server according to the present invention that employs Global Positioning System (GPS) coordinates in the selection of POS terminals for update according to geofenced service areas; and
- GPS Global Positioning System
- FIG. 11 is a block diagram illustrating a multiple domain synchronization system according to the present invention.
- FIG. 1 a discussion of the disadvantages and limitation of those POS will now be presented with reference to FIG. 1 . Following this, a discussion of the present invention is presented with reference to FIGS. 2-11 .
- the present invention provides superior mechanisms and techniques whereby multiple intermittently-connected POS terminals may be employed to efficiently process portions of one or more orders in a manner that effectively serves ordering patrons, and that moreover improves the performance of the POS terminals themselves.
- FIG. 1 a block diagram is presented illustrating a present-day method for fulfilling product orders for one or more patrons.
- the method is indicative of how the one or more patrons may interact with retail staff within a retail establishment for the purpose of ordering, modifying, fulfilling, paying for, and closing out an order for goods and/or services.
- the retail establishment may comprise, but is not limited to, a restaurant at a fixed location, a mobile restaurant (e.g., food truck), a retail store (e.g., big box store), a hotel lobby having product kiosks, a sports stadium having product stands, an entertainment venue (e.g., movie theater, concert hall), a cruise ship, an airliner, or any other scenario within which one or more patrons may select, pay for, and enjoy goods and/or services.
- Flow then proceeds to block 104 .
- the one or more patrons select their goods and/or services and an order is created at a POS terminal.
- the order may be created by the patrons themselves (e.g., self-ordering on the POS terminal) or the order may be initiated by a retail staff member.
- the order may have identifying information (e.g., an order number) attached thereto. Flow then proceeds to decision block 106 .
- an evaluation is made to determine if the order is to be modified. For example, one of the one or more patrons may make a change to the order (e.g., “cut the pickles,” “the green lampshade instead of the blue lampshade,” etc.). If so, then flow proceeds to block 108 . If the order remains unchanged, then flow proceeds to block 110 .
- the POS terminal may transmit the order to an order fulfillment area of the retail establishment.
- this area may comprise a warehouse area in the back.
- this area may comprise a kitchen.
- Other examples abound. Accordingly, retail staff members in the order fulfillment area begin preparations to fulfill the order. Flow then proceeds to decision block 112 .
- an evaluation is made to determine if the order is to be modified, yet again. As one skilled in the art will appreciate, patrons are finicky and inconsistent and, as the saying goes, “the customer is always right.” If the order remains unchanged, then the order is fulfilled and flow proceeds to block 114 . If the order is to be modified, then flow proceeds to block 108 .
- the payment sources may include, but are not limited to, cash, check, gift cards, gift tokens, magnetic strip credit cards, Europay, MasterCard, and Visa (EMV) credit cards (i.e. chip-and-signature credit cards, chip-and-PIN credit cards), credit cards employing near-field communications (NFC), credit cards employing radio frequency identification (RFID), loyalty accounts, house accounts, and bitcoins and other types of digital currencies.
- EMV Europay, MasterCard, and Visa
- RFID radio frequency identification
- an evaluation is made to determine if the order is to be modified even once more. For example, even after initial payment occurs in block 114 , the one or more patrons may decide to modify the paid-for order by ordering additional goods and/or services (e.g. “Can I get a coffee in a to go cup?”, “Oh, wrong credit card. Use this one.”). Accordingly, if the order is to be modified, flow then proceeds to block 108 , where the state of the order is modified to allow for consistency, regardless of whether additional fulfillment is required. If the order is not to be modified, flow proceeds to block 118 .
- additional goods and/or services e.g. “Can I get a coffee in a to go cup?”, “Oh, wrong credit card. Use this one.”.
- the POS terminal may change the state of the order to “closed.” Flow then proceeds to block 120 .
- the method completes whereby the one or more patrons may exit the retail establishment, having purchased their goods/and or services, or they may remain for purposes of placing a new order.
- the method of FIG. 1 is a general and simple case of what may occur in any present-day retail establishment. Though orders may be taken by manually in smaller establishments, more often than not the POS terminal is an electronic data entry and display device in one of two configurations:
- the POS terminal is one of several electronic ordering devices that are coupled to an on-premise server via a hardwired connection, generally a local area network (e.g., Ethernet). That is, an order, its modifications, and its state (e.g., open, fulfilled, paid, closed) are communicated between the POS terminal and the on-premise server via the local area network in the retail establishment.
- the server may also communicate with one or more order fulfillment terminals in a back warehouse or kitchen area, which are also part of the hardwired local area network.
- the retail establishment may provide for payment using a different financial system (generally provided for by banking institutions) or payment processing may be an integral part of the POS terminals and on-premise server.
- the resulting order for the one or more patrons is typically processed through a single POS terminal, along with orders from other patrons.
- the attendant delay is still present waiting for food, payment processing, etc.
- the POS terminal may be coupled via wireless connection, generally via Wi-Fi or cellular (e.g., 3G, 4G, LTE) connection to the internet and may communicate with a server in the cloud for purposes of inventory management and payment, an example of which are the ubiquitous card readers and cloud services provided for by Square, Inc., that turn smartphones and tablet computers into POS terminals.
- Wi-Fi Wireless Fidelity
- cellular e.g., 3G, 4G, LTE
- the present inventor has also observed that even though a wireless POS terminal maintains consistency of order and transaction data in the presence of network interruptions (as is the case in most Wi-Fi and cellular network configurations), present-day wireless POS configurations are limited in that only one POS terminal may be employed to process a single order.
- the retail establishment may have more than one wireless POS terminal, but, as one skilled in the art will appreciate, a single order may only be processed by a single POS terminal. In other words, two orders may be processed by two wireless POS terminals, but a single order for a group of patrons cannot be processed by more than one POS terminal, without breaking up the order.
- the present invention overcomes the above-noted disadvantages and limitations, and other disadvantages and limitations of present-day POS systems by providing apparatus and methods for synchronizing and processing orders in a cloud-based POS system having multiple wired and/or wireless on-site POS terminals, without requiring an on-premise server.
- the present invention with now be discussed with reference to FIGS. 2-11 .
- the synchronization system 200 may include one or more service areas 202 , such as a front service area 202 , service area 1 -service area N 202 , and service area kitchen 202 .
- service areas 202 such as a front service area 202 , service area 1 -service area N 202 , and service area kitchen 202 .
- the service areas 202 may comprise one or more wireless access points 201 .
- the service areas 202 may also comprise one or more wireless POS terminals 211 , 221 , 231 , coupled to the access points 201 via wireless links 203 , and which are distinguished in the system 200 as a host terminal 211 , mobile terminals 221 , and order processing terminals 231 .
- the service areas 202 may further comprise a gateway 213 to which are coupled one or more fixed hardwired terminals 212 , and which provides for coupling of the fixed terminals 212 and access points 201 an internet cloud 260 via conventional wired links 205 such as, but not limited to, Ethernet, cable, fiber optic, and digital subscriber line (DSL)
- conventional wired links 205 such as, but not limited to, Ethernet, cable, fiber optic, and digital subscriber line (DSL)
- providers of internet connectivity e.g., ISPs
- the wireless links 203 may comprise, but are not limited to, Wi-Fi, Bluetooth, near field communications, infrared links, IEEE 802.15.4, Zigbee radio links, and cellular based links (e.g., 3G, 4G, LTE) or a combination of the noted links.
- the POS terminals 211 , 212 , 221 , 231 may be configured differently to comport with intended function (i.e., host seating, order and payment entry, order fulfillment, etc.), or they may be configured similarly.
- the mobile terminals 221 may comprise a touch screen display and integral payment processor (e.g., card/chip reader) that provides for both order entry, display of order status, and payment processing.
- the host terminal 211 , fixed terminals 212 , and order processing terminals 231 may comprise larger touch screens to allow for easier viewing by restaurant staff, or they may comprise displays with keyboard entry.
- terminals 211 , 212 , 231 may comprise desktop computers, laptop computers, smartphones, or tablets that are running application programs or web-enabled application programs that provide for communication with the synchronization server 270 for purposes of order entry, status updates, and optionally, payment processing.
- the system 200 may further comprise a synchronization server 270 that is coupled to the internet cloud 260 , and an administrative console 271 that is operably coupled to the synchronization server 270 via a conventional wired link 205 and/or a wireless link 203 .
- the synchronization server 270 is not on-premise and is thus referred to as a cloud server 270 .
- the administrative console 271 may be disposed within the restaurant premises and coupled to the synchronization server 260 via the links 203 , 205 , or the console 271 may be disposed in another location, say, at an operations headquarters for multiple restaurants within a given region.
- the system 200 may comprise one or more browser-based terminals 281 that are coupled to the synchronization server 270 via links 205 .
- the browser-based terminals 281 may comprise desktop computers, laptop, computers, smartphones, or tablets that are running stand-alone applications or web-enabled applications that provide for communication with the synchronization server 270 for purposes of order entry, status updates, and optionally, payment processing.
- the system may further comprise one or more third-party-based terminals 241 that are coupled to the synchronization server 270 via the conventional links 205 though the cloud 260 .
- the third party-based terminals 241 may comprise desktop computers, laptop, computers, smartphones, or tablets that are running stand-alone third-party applications or web-enabled third-party applications that provide for communication with the synchronization server 270 for purposes of order entry, status updates, and optionally, payment processing via a proprietary application programming interface (API) 242 .
- An example of such a terminal 241 may include the well-known GrubHub third-party application that is configured to communicate with the synchronization server 270 via the API 241 .
- the system 200 may further comprise one or more delivery terminals 251 that are coupled to one or more cellular access points 201 via conventional cellular wireless links 203 , and the cellular access points 201 are coupled to the synchronization server 270 via the cloud 260 .
- the delivery terminals 251 are identical to the mobile terminals 221 , and are configured to provide services for order entry, order fulfillment (i.e., delivery), and payment processing.
- the delivery terminals 251 are disposed as smartphone or tablets with a detachable payment processor (e.g., card/chip reader).
- the delivery terminals 251 are disposed as smartphone or tablets with a payment processor integrated within a single housing. Other embodiments are contemplated.
- Service areas 202 corresponding to the mobile terminals 221 may have one or more tables 204 corresponding to one or more orders.
- service area 1 202 depicts two tables 204 , one of which corresponds to order 1 OD 1 , and the other of which corresponds to order 2 OD 2 .
- the mobile terminals 221 within service area 1 202 may processes portions of both order 1 OD 1 and order 2 OD 2 .
- Service area N 202 depicts two tables 204 , both of which correspond to order A ODA.
- the mobile terminals 221 within service area N 202 may both process portions order A ODA.
- the mobile terminals 221 therein may be further configured to process portions of any and all orders within the restaurant and may roam from service area 202 to service area to support work load of the restaurant.
- the order processing terminals 231 may process all orders in the restaurant, or they may be configured to each process a portion of all of the orders in the restaurant according to preparation station or inventory station.
- the host terminal 211 and fixed terminals 212 may be configured to process all orders in the restaurant to provide for on-premise seating assignment, order initiation, order selection, and payment processing, including closeout of orders.
- One or more restaurant staff members (not shown) within service area 1 202 -service area N 202 may have a personal device (e.g., smartphone, tablet, laptop) 206 that can provide an ad hoc network (i.e., hotspot) to which one or more of the mobile terminals 221 may tether for purposes of communicating with the synchronization server 270 in the absence of Wi-Fi connectivity to the access points 201 .
- a personal device e.g., smartphone, tablet, laptop
- an ad hoc network i.e., hotspot
- operations are initiated when the one or more patrons enter the restaurant.
- a host (not shown) will create an order (along with corresponding order identifier ( 01 D) via the host terminal 211 for the one or more patrons and will seat the patrons at one or more tables 204 .
- the created order may include service area designation and assignment of the order to one or more mobile terminals 221 .
- mobile terminals 221 within a service area 202 are assigned to all orders within that service area 202 .
- Other embodiments are contemplated.
- the created order and service area assignment are transmitted over the cloud 260 to the synchronization server 270 , which maintains a durable terminal queues within which are stored order updates for all orders in the restaurant.
- Each of the plurality of durable queues correspond to each of the POS terminals 211 , 212 , 221 , 231 , 251 within the system 200 .
- connection status to a given terminal 211 , 212 , 221 , 231 , 251 is down (i.e., the server 270 cannot verify communication with the given terminal 211 , 212 , 221 , 231 , 251 )
- the server maintains the order updates for that terminal 211 , 212 , 221 , 231 , 251 until connectivity is reestablished, at which time the server 270 may transmit one or more of the order updates to the terminal, verifying with each transmission that the terminal 211 , 212 , 221 , 231 , 251 received the update.
- each of the terminals 211 , 212 , 221 , 231 , 251 is capable of processing portions of any of the orders in the restaurant.
- each of the terminals 211 , 212 , 221 , 231 , 251 maintains durable order queues within which are stored order updates only for each of the orders being processed by the terminal 211 , 212 , 221 , 231 , 251 .
- Each of the terminals 211 , 212 , 221 , 231 , 251 also maintains a plurality of order states that depict a current state for each of the orders in the restaurant. As a seated patron selects one or more menu items, wait staff enters the menu items as an update in one of the terminals 211 , 212 , 221 , 231 , 251 , generally a mobile terminal 221 assigned to the given service area 202 .
- the order update is entered into one of the durable order queues that corresponds to the order ID. If connectivity if present, then the terminal 211 , 212 , 221 , 231 , 251 transmits the order update to the server 270 and waits for the server 270 to acknowledge the order update. If acknowledged, the terminal 211 , 212 , 221 , 231 , 251 removes the order update from the one of the durable order queues.
- the terminal 211 , 212 , 221 , 231 , 251 maintains the order update in the one of the durable order queues until such time as connectivity is reestablished, and the terminal 211 , 212 , 221 , 231 , 251 completes transmission of the order update with acknowledgement by the server 270 .
- the terminals 211 , 212 , 221 , 231 , 251 may check one of their plurality of order states that correspond to the particular update for conflicts, as will be described in further detail below. If a conflict exists, the terminals 211 , 212 , 221 , 231 , 251 may utilize domain specific rules to resolve the conflict in order to establish a valid order state. Each of the terminals 211 , 212 , 221 , 231 , 251 is configured with the same domain specific rules to provide for consistent resolution of order states.
- the one or more of the terminals 211 , 212 , 221 , 231 , 251 may enter the order updates and transmit/durably queue the order updates to the server 270 in accordance with connectivity conditions.
- the server 270 may also queue/transmit order updates for all orders in the restaurant to each of the terminals 211 , 212 , 221 , 231 , 251 according each terminal's connectivity.
- Order fulfillment, payment, and closeout are likewise handled as order updates through the server 270 and are queued/transmitted to all of the terminals 211 , 212 , 221 , 231 , 251 in accordance with the connection status of each terminal.
- Patrons outside of the restaurant are also handled in similar fashion via the browser-based terminals 281 , and third-party terminals 241 , though without feedback from the server 270 regarding all orders in the restaurant.
- the server 270 When accessed through the browser-based terminals 281 and third-party terminals 241 , the server 270 creates and order ID and assigns it to one of the order processing terminals 231 for fulfillment, while sending status updates on the order ID to all of the terminals 211 , 212 , 221 , 231 , 251 via the durable terminal queue therein.
- the server 270 may designate a specific delivery terminal 251 for pickup, delivery, and payment based upon geofenced proximity to the restaurant, or based upon workload corresponding to the delivery terminal. Proximity to the restaurant may be determined by a number of different mechanisms, as will be described in further detail below.
- the administrative console 271 may maintain a master record of all order states and order updates according to all of the terminals 211 , 212 , 221 , 231 , 251 in order to provide for restaurant management, maintenance, analytics, and network traffic analyses.
- the console 271 may alternatively be disposed in an expediter's area of the restaurant for use by expediters in assignment and allocation of patron seating and terminals 211 , 212 , 221 , 231 , 251 .
- the durable terminal queues and durable order queues may be disposed as battery backed random-access memory, electrically-erasable programmable read-only memory, solid state memory, hard disk memory, or a combination of the above that will provide for maintaining order updates within the queues across network and power interruptions.
- the present invention provides for more efficient performance of computational resources within the server 270 and the POS terminals 211 , 212 , 221 , 231 , 251 over that which has heretofore been provided because multiple terminals 211 , 212 , 221 , 231 , 251 may be assigned to process portions of a single order, resulting in more timely processing of the single order.
- any of the terminals 211 , 212 , 221 , 231 , 251 in the restaurant may be immediately reassigned to a particular order to replace a malfunctioning terminal or to increase throughput of the server 270 .
- computational resources 211 , 212 , 221 , 231 , 251 , 270 within the system 200 are afforded an overall performance improvement as a result of the present invention.
- the synchronization server 300 may comprise communications circuitry COMMS 302 (e.g., transceivers, modems, message formatter, etc.) that is coupled to one or more wired or wireless communications links 301 , examples of which are described above with reference to FIG. 2 .
- the server 300 may also comprise a terminal status element 305 , a terminal update element 306 , and a payment processor 304 , all of which are coupled to COMMS 302 via a message bus MSG.
- the terminal status element 305 is coupled to the terminal update element 306 via a status bus STS.
- the terminal update element 306 may comprise a service area map SA MAP 307 .
- the terminal update element 306 is coupled to the payment processor 304 and to an order initiation element ORDER INIT 303 via a terminal bus TBUS.
- the terminal update element 306 is also coupled to a queue processor 310 via a queue bus QBUS.
- the queue processor 310 may include a durable terminal queue 311 that includes terminal update records 312 , each of which are associated with a corresponding POS terminal (not shown) that is employed within a given restaurant.
- terminal update records 312 are shown, each associated with a corresponding one of N POS terminals for the given restaurant.
- N may be roughly equal to 100 POS terminals, though larger and smaller numbers are contemplated.
- Each of the terminal update records 312 may comprise update fields 313 , which are employed to queue order updates for transmission to each of the corresponding POS terminals as connectivity to the corresponding POS terminals permits.
- Update fields 313 nearest to OUT are the oldest order updates queued for transmission to the corresponding POS terminals.
- Update fields 313 nearest to IN are youngest (or most recent) order updates queued for transmission to the corresponding POS terminals. Fields 313 between the oldest order updates and the youngest order updates descend in age from oldest to youngest update according to when those updates are received from others of the corresponding POS terminals.
- Values of the order update fields 313 may include, but are not limited to, an order ID along with order details taken by the others of the corresponding POS terminals. Accordingly, the terminal update record 312 for POS terminal 1 TERM 1 depicts a plurality of order update fields 313 to be transmitted to TERM 1 when connectivity is reestablished with TERM 1 . In decreasing age from oldest to youngest order update, the fields 313 depict updates to order 64 U 64 , then order 6 U 6 , then order 22 U 22 , and so on, culminating with an update to order 17 U 17 .
- the terminal update record 312 for TERM 1 is indicative that TERM 1 has been offline (i.e., no connectivity) longer than any of the other POS terminals in the restaurant. This length of time may correspond to a mobile POS terminal that is serving a party on a restaurant porch that has poor Wi-Fi connectivity, or may correspond to a delivery POS terminal that is traversing an area with poor cellular coverage.
- the terminal update records 312 corresponding to TERM 2 , TERM 3 , and TERMN depict a number of populated order update fields 313 less than the number of fields for TERM 1 , which may correspond to mobile POS terminals within the restaurant that have only slightly intermittent Wi-Fi connectivity.
- the terminal update record for TERM 4 through TERM N ⁇ 1 contain only empty order update fields 313 , thus indicated that these POS terminals are up to date on all order state changes within the restaurant.
- the terminal status element 305 may periodically transmit a first message to each of the POS terminals and update the connectivity status of the POS terminals based upon whether they acknowledge the first message or not.
- the first message may comprise a ping message.
- acknowledgment may comprise a simple acknowledge message.
- acknowledgement may comprise additional data such as received signal strength indication RSSI, number of hops, or Global Positioning System (GPS) coordinates, as will be described in further detail below.
- RSSI received signal strength indication
- number of hops number of hops
- GPS Global Positioning System
- the terminal status element 305 may provide connectivity status of each of the POS terminals to the terminal update element 306 via bus STS.
- the service area map 307 is a table that associates each of the POS terminals to one or more service areas within the restaurant.
- the terminal update element 306 may generate order update messages from oldest to youngest update for each of the POS terminals that are connected. Connectivity is maintained when a POS terminal acknowledges receipt of an order update message. Once acknowledged, the terminal update element 306 directs the queue processor 310 to delete the oldest order update for that POS terminal and shift pending order updates so that the next oldest order update becomes the oldest order update.
- order updates are transmitted to a given POS terminal until its terminal update record 312 is empty, or until connectivity is broken.
- all of the POS terminals associated with the restaurant are updated by the terminal update element 306 .
- POS terminals are selectively updated in accordance with their mapping to the one or more service areas.
- the delivery POS terminals may only require knowledge of orders that are to be delivered outside the restaurant, and thus they may be mapped to a “delivery” service area so that order updates that correspond to the delivery service area are transmitted to the delivery POS terminals.
- the restaurant or retail establishment may be so large that management dedicates certain POS terminals to designate service areas. Accordingly, all of the POS terminals in a given service area may be employed to update any order placed within the given service area, but they may not be employed to update orders placed outside of the given service area.
- Messages received from the communications circuit 302 may also require additional functions to be performed by the synchronization server 300 .
- the terminal update element 306 may transmit the order update to the order initiation element 303 via TBUS.
- the order initiation element 303 may then create an order ID for the order update and may assign the order ID to one or more of the POS terminals within the restaurant.
- the payment processor 304 may generate messages to complete the transactions and the messages are transmitted via COMMS 302 .
- the payment processor 304 may further generate order updates (e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.) to be transmitted to the POS terminals and may provide these updates to the terminal update element 306 via TBUS.
- order updates e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.
- the terminal update element 306 may then provide those updates to the durable queue 311 via QBUS, and the updates are transmitted to the POS terminals in due course dependent upon connection status, as is described above.
- the present inventor notes that the term “restaurant” is employed to include those fixed and mobile POS terminals within the restaurant along with corresponding delivery POS terminals associated with the restaurant, such as delivery POS terminals 251 depicted in FIG. 2 .
- the synchronization server 300 is configured to perform the functions and operations as discussed above.
- the server 300 may comprise digital and/or analog logic, circuits, devices, or microcode (i.e., micro instructions or native instructions), or a combination of logic, circuits, devices, or microcode, or equivalent elements that are employed to execute the functions and operations according to the present invention as noted.
- the elements employed to accomplish these operations and functions within the server 300 may be shared with other circuits, microcode, etc., that are employed to perform other functions and/or operations within the server 300 .
- microcode is a term employed to refer to a plurality of micro instructions.
- a micro instruction (also referred to as a native instruction) is an instruction at the level that a unit executes.
- micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor.
- RISC reduced instruction set computer
- CISC complex instruction set computer
- x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a unit or units within the CISC microprocessor.
- the durable POS terminal 400 may comprise a communications circuit COMMS 402 (e.g., transceivers, modems, message formatter, etc.) that is coupled to one or more wired or wireless communications links 301 , examples of which are described above with reference to FIG. 2 .
- the durable POS terminal 400 may also comprise a connection monitor 404 , an order processor 410 , and a payment processor 406 , all of which are coupled to COMMS 302 via a message bus MSG.
- the durable POS terminal 400 may also comprise a link select element 405 that is coupled to the connection monitor via bus CS and to the COMMS 402 via bus LNK.
- the order processor 410 is coupled to the connection monitor 404 via bus CBUS and to the payment processor 406 , an order initiation element 407 , and a GPS receiver 408 via bus SBUS.
- the order processor 410 is coupled to order entry and display circuits 403 via bus DATA and to terminal ID logic 409 via bus TID.
- the order processor 410 is also coupled to a state processor 420 via a queue bus QBUS.
- the state processor 420 may include a durable order update queue 421 that includes order update records 422 , each of which are associated with a corresponding order for the durable POS terminal 400 .
- Individual POS terminals 400 are identified by their corresponding terminal ID, which may be stored within and accessed from the terminal ID element 409 .
- Each of the order update records 422 may comprise order state fields 423 , which are employed to queue order state changes (i.e., order updates) for transmission to a synchronization server (not shown) as connectivity to the synchronization server permits.
- State fields 423 nearest to OUT are the oldest order state changes queued for transmission to the synchronization server.
- State fields 423 nearest to IN are youngest (or most recent) order state changes queued for transmission to the synchronization server.
- Fields 423 between the oldest state fields 423 and the youngest state fields 423 descend in age from oldest to youngest order state change according to when those state changes are entered by POS terminal 400 .
- Values of the order state fields 423 may include, but are not limited to, an order ID along with order details taken by the POS terminal 400 . Accordingly, the order update record 422 for order 27 O 27 depicts a plurality of order state fields 423 to be transmitted to the server when connectivity is reestablished. In decreasing age from oldest to youngest order state change, the fields 423 depict order state changes S 1 through SN. As one skilled in the art will appreciate, the order update record 422 O 27 depicts that many more state changes have been entered while connection status of the POS terminal 400 is down than have been entered for orders 62 O 62 through order 3 O 3 .
- the POS terminal 400 according to the present invention may be employed for entry of order updates even in the presence of network interruptions, which is characteristic of most Wi-Fi networks.
- order state changes result from two sources: the order entry/display circuit 403 and messages received over COMMS 402 from the synchronization server.
- wait staff in possession of the POS terminal 400 may enter order items as requested by patrons, or in the case of a self-service terminal 400 , the patrons may enter the order items themselves.
- the present invention contemplates provisions within the POS terminal 400 to display menu selections and payment options to both wait staff and patrons.
- Order items received from the order entry/display circuit 403 are provided to the order processor 410 via bus DATA, which generates the state changes.
- State changes received from the server are provided to the order processor 410 in messages over bus MSG.
- the connection monitor 404 may monitor reception of a first message (e.g., a ping message) from the synchronization server and direct transmission of an acknowledgement message.
- the connection monitor 404 may update the connectivity status of the POS terminal 400 accordingly.
- acknowledgment may comprise a simple acknowledge message.
- acknowledgement may comprise additional data such as received signal strength indication RSSI associated with one or more access points, number of hops between the synchronization server and the POS terminal 400 , or Global Positioning System (GPS) coordinates, as will be described in further detail below.
- RSSI received signal strength indication
- GPS Global Positioning System
- the link select element 405 may be employed to direct the COMMS to change links 401 over which to communicate with the server, such as switching from Wi-Fi to LTE, for example.
- the link select element 405 may direct the COMMS 402 to tether to a cellular equipped device corresponding to an order ID, such as devices 206 in FIG. 2 , in order to transmit acknowledgements and order state changes to the synchronization server.
- the connection monitor 404 may provide connectivity status of the POS terminal 400 to the order processor 410 via bus CBUS.
- the order processor 410 may generate order state change messages from oldest to youngest update for each of the orders in the queue 421 . Connectivity is maintained when the POS terminal 400 receives acknowledgement of a previously transmitted order state change message from the server. Once acknowledged, the order processor 410 directs the state processor 420 to delete the oldest state change update for a corresponding order ID and shift pending updates so that the next oldest state change update becomes the oldest order update.
- state change updates are transmitted to the server until its order state change record 422 is empty, or until connectivity goes down.
- Messages received from the communications circuit 402 may also require additional functions to be performed by the POS terminal. For example, when orders are placed by a browser-based or third-party based terminal, the synchronization server may transmit the order state change to the POS terminal 400 and the order processor 410 may direct the state processor 420 to create a corresponding order status record 422 in the queue 421 . Similarly, when processing of transactions outside of the POS terminal's capabilities (e.g., financial transactions with credit card providers, loyalty card discounts, etc.) are required, order processor 410 may direct the payment processor 406 to generate messages to the server to provide data (e.g., amounts, payment source type, card swipe/chip information, etc.) to complete the transactions. Such messages are transmitted via COMMS 302 .
- data e.g., amounts, payment source type, card swipe/chip information, etc.
- the payment processor 304 may further receive state changes (e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.) to from the server and may provide these state changes to the order processor 410 via TBUS.
- the terminal update element 306 may then provide those updates to the durable queue 311 via SBUS.
- the POS terminal 400 may further be employed to create an order, as in the case of a delivery terminal, a fixed terminal, or a host terminal. Accordingly, from order entry data received over DATA, the order processor 410 may direct the order initiation element to create an order ID and may also direct the state processor to create a corresponding order state record 422 in the queue 421 .
- the POS terminal 400 terminal is employed to maintain a current state of all orders being fulfilled by the restaurant.
- the current state of each of the orders are stored in order current state fields 412 within the order processor 410 .
- the order processor 410 may also comprise domain specific rules 411 , which define actions required to synchronize conflicting order state changes being received and/or processed by the POS terminal 400 , where the domain specific rules 411 are unique to all of the POS terminals 400 employed within the restaurant. For example, suppose that one POS terminal 400 transmits a state change for a specific order to the server, which is acknowledged by the server. Concurrently, a second POS terminal 400 sends a state change for the same order.
- the server may respond to the second POS terminal with a message indicating that the order current state field 412 for the order ID within the second POS terminal 400 state is out of date (due to connection status) and providing the most recent current state of the order.
- the domain specific rules 411 are employed by the order processor within the second POS terminal 400 to merge the state changes local to the second POS terminal 400 and may store the merged state in the corresponding current state field 412 .
- the order processor may then direct the COMMS 402 to transmit the corresponding (reconciled) state field 412 contents to the synchronization server for distribution to all the POS terminals 400 .
- the key component of correct conflict resolution i.e. merging of state changes to generate a valid current order state is the domain specific rules 411 .
- the rules capture dependencies between individual current state field values and validate state transitions.
- the domain specific rules 411 may include, but are not limited, rules corresponding to pricing, tax, discount, refund, inventory calculations, and loyalty accrual logic. For example, consider the following sequence of events:
- a generic conflict resolution framework would merge the updates by adding the new item to the order, resulting in the following a closed order having 3 items with a total of $100. This is undesirable because under such a scheme the restaurant will lose money.
- the order processor 410 may employ the domain specific rules 411 to detect that the total amount required for the order is greater than the payment amount, to determine that the total needs to be recomputed, to change the state of the order from closed back to open, and to recalculate the total.
- This new current order state is then transmitted to the server and stored in the corresponding order current state field 412 .
- the domain specific rules 411 according to the present invention comprehend that total is dependent upon individual order items, and the status of closed or open is dependent upon the total. Thus, when the additional item is added to the order under (3) above, the order processor 410 changes the status of the order back to open and recalculates the total.
- the present invention provides for improvements in performance of computational resources within the POS terminals 400 over that which has heretofore been provided because the terminal 400 may be employed to process orders in the absence of network connectivity.
- unnecessary communications with the server are precluded due to on-board conflict resolution logic.
- computing performance is increased because the terminal 400 may be employed to process any of the other orders within the restaurant because the current states of all restaurant orders are resident therein.
- the POS terminal is configured to perform the functions and operations as discussed above.
- the terminal 400 may comprise digital and/or analog logic, circuits, devices, or microcode (i.e., micro instructions or native instructions), or a combination of logic, circuits, devices, or microcode, or equivalent elements that are employed to execute the functions and operations according to the present invention as noted.
- the elements employed to accomplish these operations and functions within the terminal 400 may be shared with other circuits, microcode, etc., that are employed to perform other functions and/or operations within the terminal 400 .
- microcode is a term employed to refer to a plurality of micro instructions.
- a micro instruction also referred to as a native instruction
- a micro instruction is an instruction at the level that a unit executes.
- micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor.
- RISC reduced instruction set computer
- CISC complex instruction set computer
- x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a unit or units within the CISC microprocessor.
- FIG. 5 a block diagram 500 is presented illustrating exemplary update/status messages according to the present invention that flow between a synchronization server and a durable POS terminal.
- An order assignment message 510 transmitted by the server to one or more POS terminals may comprise fields 501 having a specific terminal ID TERMID assigned fora particular order ID ORDERID along with a table number TABLENUM having a given number of seats NUMSEATS.
- the message 510 may further comprise a SPECIAL field 501 via which special requirements (e.g., high chair, wheel chair access) are communicated to the POS terminal.
- An order state change message 520 transmitted from a POS terminal to the server may comprise TERMID and ORDERID fields 501 as described above, along with one or more groups of ITEM, MOD, and SEAT# fields 501 , where contents of the ITEM field 501 indicated a menu item ordered for a given seat number at the table along with any modifications to the item number (e.g., rare, no onions, etc.).
- a payment state change message 530 transmitted from a POS terminal to the server may comprise TERMID and ORDERID fields along with one or more groups of PMTREQ, AMT, and TIP fields 501 , where contents of the PMTREQ field 501 indicate a payment type (e.g., cash, MasterCard, etc.), and contents of AMT and TIP indicate amount of payment for the particular payment type along with a tip amount.
- PMTREQ field 501 indicates a payment type (e.g., cash, MasterCard, etc.)
- contents of AMT and TIP indicate amount of payment for the particular payment type along with a tip amount.
- An order closeout message 540 may comprise TERMID and ORDER ID fields 501 as noted above, along with a CLOSED field 501 , the contents of which indicate whether the particular order ID is open or closed.
- a time clock message 550 exchanged between a POS terminal and the server may comprise a TERMID field 501 as noted above along with a STAFFID, TIMEIN, and TIMEOUT fields 501 , where the contents of TIMEIN and TIMEOUT indicate a duration of time for which a staff member identified by STAFFID has employed a particular POS terminal.
- the server may employ such messages 550 to calculate hours worked by the staff member.
- An inventory message 560 may comprise a group of INVITEM and INVAMT fields 501 , the contents of which indicate the amount of inventory remaining for a given inventory item as a result of processing current orders in the restaurant. Accordingly, the server may employ the noted amounts to expedite ordering of additional inventory items, or to instruct the POS terminals to remove certain corresponding menu items from their menus that are displayed to wait staff or patrons.
- the messages 510 , 520 , 530 , 540 , 550 , 560 are not exhaustive of those what may be employed according to the present disclosure but are provided herein to teach further aspects and advantages according to the present invention.
- a flow diagram 600 is presented detailing a POS terminal queuing method according to the present invention, such as may be employed in a POS terminal as described above with reference to FIGS. 2-5 .
- Flow begins at block 602 where the POS terminal is assigned to a station or wait staff within the restaurant. Flow then proceeds to block 604 .
- the POS terminal accesses it terminal identifier TERMID and transmits a message to the synchronization server that it is online. Flow then proceeds to decision block 606 .
- an evaluation is made to determine if order state change data has been entered on or received by the POS terminal. If so, then flow proceeds to block 608 . If not, then flow proceeds to block 612 .
- the POS terminal employs domain specific rules therein to resolve conflicts and update a persistent order state field corresponding to the entered/received data. Flow then proceeds to block 610 .
- any state changes resulting from the resolution along with the updated state field are entered into the POS terminal's local durable state change queue for transmission to the server. Flow then proceeds to block 612 .
- the oldest state change for the given order is transmitted to the server. Flow then proceeds to decision block 614 .
- an evaluation is made to determine if an acknowledgement message has been received from the server. If not, then flow proceeds to decision block 606 . If so, then flow proceeds to block 616 .
- the oldest state change is deleted from the local durable state change queue and all the younger state change for the order, if present, are moved up in the queue. Flow then proceeds to decision block 618 .
- an evaluation is made to determine if the local durable state change queue for the particular order is empty. If not, then flow proceeds to decision block 606 . If so, then flow proceeds to block 620 .
- the method completes, whereby the POS terminal may access local queue updates for other orders for which is it assigned.
- FIG. 7 a flow diagram 700 is presented illustrating a synchronization server queuing method according to the present invention, such as may be employed by the server described above with reference to FIGS. 2-5 .
- Flow begins at block 702 , where the server accesses its durable terminal update queue comprising terminal update records corresponding to all POS terminals employed within a restaurant (or other retail establishment). Flow then proceeds to block 704 .
- a terminal update record corresponding to a next terminal ID is selected. Flow then proceeds to decision block 706 .
- an evaluation is made to determine if a network connection exists between the server and a corresponding POS terminal. If so, then flow proceeds to block 708 . If not, then flow proceeds to block 704 .
- the server transmits the oldest order update in the terminal update record to the corresponding POS terminal. Flow then proceeds to decision block 710 .
- an evaluation is made to determine if the server has received an acknowledgement message from the corresponding POS terminal. If so, then flow proceeds to block 712 . If not, then flow proceeds to block 704 .
- the oldest order update is deleted from the local durable terminal update record and all the younger order updates for the POS terminal, if present, are moved up in the queue. Flow then proceeds to decision block 714 .
- decision block 714 an evaluation is made to determine if any order updates remain queued for the corresponding POS terminal. If so, then flow proceeds to decision block 706 . If not, then flow proceeds to decision block 716 .
- an evaluation is made to determine if all of the terminal update records in the local durable terminal update queue are empty. If not, then flow proceeds to block 704 . If so, then flow proceeds to block 718 .
- FIG. 8 a block diagram is presented depicting a selective synchronization server 800 according to the present invention that employs received signal strength indication (RSSI) in the selection of POS terminals for update according to geofenced service areas.
- the server 800 is substantially similar to the server 300 described above with reference to FIG. 3 . Configuration and operation of like numbered elements is identical to those of FIG. 3 , wherein the hundreds digit is changed from “3” to “8.”
- the selective synchronization server 800 additionally includes RSSI stores 820 that is coupled to the terminal status element 805 via bus R.
- the RSSI stores 820 includes RSSI records 821 for each of the terminals employed within the restaurant.
- Each of the RSSI records 821 may comprise RSSI fields 822 that each are associated with a corresponding access point located in the restaurant, where the access points include both Wi-Fi access points within the restaurant and cellular access points that are associate with delivery terminals for the restaurant.
- Contents of each of the RSSI fields 822 comprise an RSSI value for a particular access point as measure for a particular terminal ID.
- Contents of the RSSI stores 820 are accessed by the terminal status element 805 and are provided to the terminal update element 806 over bus STS.
- POS terminals may be selectively updated in accordance with their mapping to the one or more service areas, as indicated by the service area map 807 .
- the service area map 807 defines geofenced service areas associated with the restaurant as a function of RSSI values for each of the access points. For example, POS terminals having an RSSI value above a prescribed threshold for certain access points may be mapped within the service area map 807 to correspond with a given area of the restaurant (e.g., banquet room A, warehouse, front desk, kitchen, etc.). Accordingly, the selective synchronization server 800 will only update those POS terminals within a given geofenced service area with updates for orders that are associated with the given geofenced service area.
- FIG. 9 is a block diagram featuring a selective synchronization server according to the present invention that employs ping latencies in the selection of POS terminals for update according to geofenced service areas;
- FIG. 9 a block diagram is presented featuring a selective synchronization server 900 according to the present invention that employs ping latencies in the selection of POS terminals for update according to geofenced service areas.
- the server 900 is substantially similar to the server 300 described above with reference to FIG. 3 . Configuration and operation of like numbered elements is identical to those of FIG. 3 , wherein the hundreds digit is changed from “3” to “9.”
- the selective synchronization server 900 additionally includes latency stores 920 that is coupled to the terminal status element 905 via bus R.
- the latency stores 920 includes a latency field 922 for each of the terminals employed within the restaurant. Contents of each of the latency fields 922 comprise a latency value indicating a number of access point hops for transmission of a message from the server 900 to a corresponding POS terminal. Contents of the latency stores 920 are accessed by the terminal status element 905 and are provided to the terminal update element 906 over bus STS.
- POS terminals may be selectively updated in accordance with their mapping to the one or more service areas, as indicated by the service area map 907 .
- the service area map 907 defines geofenced service areas associated with the restaurant as a function of the number of hops required to transmit a message from the server 900 to a given POS terminal.
- POS terminals having latency field values within prescribed ranges may be mapped within the service area map 907 to correspond to given areas of the restaurant (e.g., banquet room A, warehouse, front desk, kitchen, etc.).
- the selective synchronization server 900 will only update those POS terminals within a given geofenced service area with updates for orders that are associated with the given geofenced service area.
- FIG. 10 a block diagram is presented showing a selective synchronization server 1000 according to the present invention that employs Global Positioning System (GPS) coordinates in the selection of POS terminals for update according to geofenced service areas.
- the server 1000 is substantially similar to the server 300 described above with reference to FIG. 3 . Configuration and operation of like numbered elements is identical to those of FIG. 3 , wherein the hundreds digit is changed from “3” to “10.”
- the selective synchronization server 100 additionally includes coordinate stores 1020 that is coupled to the terminal status element 1005 via bus R.
- the coordinate stores 1020 includes a GPS coordinates field 1022 for each of the terminals employed within the restaurant. Contents of each of the GPS coordinates field 1022 comprise GPS coordinates for a corresponding POS terminal. Contents of the coordinate stores 1020 are accessed by the terminal status element 1005 and are provided to the terminal update element 1006 over bus STS.
- POS terminals may be selectively updated in accordance with their mapping to the one or more service areas, as indicated by the service area map 1007 .
- the service area map 1007 defines geofenced service areas associated with the restaurant as a function of GPS coordinates.
- POS terminals having GPS coordinate field values within prescribed ranges may be mapped within the service area map 907 to correspond to given areas of the restaurant (e.g., banquet room A, warehouse, front desk, kitchen, etc.).
- the selective synchronization server 1000 will only update those POS terminals within a given geofenced service area with updates for orders that are associated with the given geofenced service area.
- the synchronization system 1100 may comprise a network operations center 1110 having a plurality of synchronization servers 1111 as described above with reference to FIGS. 2-10 .
- the servers 1111 are coupled to the internet cloud as is described above.
- the system 1111 may also comprise a plurality of retail locations 1131 that are also coupled to the cloud 1120 . Subsets of the retail locations 1131 are divided into domains 1130 , where each of the domains 1130 comprise a unique set of domain specific rules as are described above.
- Each of the retail locations 1131 may be coupled to one or more of the synchronization severs 1111 to allow for synchronization of order updates for POS terminals (not shown) disposed within the retail locations.
- POS terminals in retail locations 1 and 2 1131 are within domain 1 1130 and may be served by synchronization server 1 1111 .
- Synchronization server 1 1111 may utilize the same domain specific rules to synchronize updates between POS terminals in locations 1 and 2 1131 , where the server 1111 may update all POS terminals within both locations, or selectively update terminals in location 1 1131 with orders corresponding to location 1 1131 , and terminals in location 2 1131 with orders corresponding to location 2 .
- the present invention contemplates synchronization mechanisms that enable business owners having multiple business locations (e.g., locally, s nationwide, nationwide, and worldwide) to be uniformly provided with order synchronization services via the one or more synchronization servers 1111 assigned thereto. Additionally, the present invention envisages a plurality of servers 1111 disposed within a NOC 1110 that may be assigned to perform order synchronization services for numerous and differing retail establishments (e.g., different restaurants, big box stores, concert halls, etc.)
- the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium.
- the program storage medium may be electronic (e.g., read only memory, flash read only memory, electrically programmable read only memory), random access memory magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or “CD ROM”), and may be read only or random access.
- the transmission medium may be metal traces, twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art.
- the storage medium may be non-transitory or transitory. The invention is not limited by these aspects of any given implementation.
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Tourism & Hospitality (AREA)
- Marketing (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
- This application is related to the following co-pending U.S. patent applications, each of which has a common assignee and common inventors.
-
SERIAL FILING NUMBER DATE TITLE SYNCHRONIZATION MECHANISM FOR INTERMITTENTLY-CONNECTED (TST.0103) POINT-OF-SALE TERMINAL ORDER STATES DURABLE QUEUING (TST.0105) APPARATUS AND METHOD SELECTIVE SYSTEM FOR RECONCILING ORDER STATES UNDER NON-PERSISTENT (TST.0106) CONNECTION CONDITIONS SELECTIVE POINT-OF-SALE TERMINAL FOR RECONCILING ORDER STATE UNDER NON-PERSISTENT (TST.0107) CONNECTION CONDITIONS SELECTIVE ORDER STATES DURABLE (TST.0108) QUEUING APPARATUS AND METHOD SYNCHRONIZATION SYSTEM FOR INTERMITTENLY-CONNECTED POINT-OF- SALE TERMINALS EMPLOYING BROWSER (TST.0109) BASED ORDERING SYNCHRONIZATION SYSTEM FOR INTERMITTENLY-CONNECTED POINT-OF- SALE TERMINALS EMPLOYING BROWSER (TST.0110) BASED ORDERING - This invention relates in general to the field of point-of-sale (POS) systems, and more particularly to a synchronization mechanism for intermittently-connected POS terminals.
- It is rare these days to walk into a retail store or restaurant that has a manually operated cash register along with manual (i.e., pencil and paper) order entry. Rather, it is more common to find one or more electronic point-of-sale (POS) terminals through which a patron may order goods and/or services. And the POS terminals do not merely record orders, but rather account for available inventory, modify items available for order based upon recent orders, and optionally provide for payment for the orders. In many scenarios, most notably restaurants, though wait staff may employ manual techniques to enter and modify orders, such orders are entered by the wait staff themselves into electronic POS terminals at selected positions within the restaurants.
- In the case where a server is on-premise within the store or restaurant, present-day technology provides for hardwired connection of multiple POS terminals to the server, typically over a local area network. Though the on-premise server may be coupled to the internet for ancillary functions, such as for processing credit card payments, order fulfillment and synchronization of order stats between POS terminals is generally coordinated by the on-premise server. If the local area network goes down, then staff is forced to resort to fully manual order entry and fulfillment. And since the POS terminals are hardwired to the local area network, they must reside in fixed locations and are not portable.
- Another type of POS terminal may be configured as a mobile device, such as a smartphone or tablet, that is equipped with a card or chip reader (typically plugged into an audio jack). The mobile device may run an application program that provides for order entry and fulfillment, and which further may synchronize with a server in the cloud for purposes of order payment processing and inventory management. Food trucks, mobile kiosks, and pop-ups generally use these mobile devices for order entry, fulfillment, and payment.
- Though useful, the present inventor has noted that these mobile devices are not scalable. That is, present-day technology only allows for one mobile device per order, which is the reason for long lines around food trucks at noon. While portable, these devices cannot be employed to efficiently service an order for a large group. In the case of a restaurant, the same device must be carried from patron to patron within a given ordering party. In the case of a party of 50, the wait to take and fulfill the party's order. In addition, though these mobile POS devices provide for recovery of state in the presence of intermittent wireless connectivity (as is common in Wi-Fi and cellular networks), they are still limited order throughput because two or more mobile POS devices may not share a single order.
- Accordingly, what is needed is an apparatus and method for synchronizing multiple POS terminals, wired and wireless, under intermittent network conditions.
- What is also needed is a POS terminal that reconciles multiple order states under non-persistent connection conditions with an associated server in the cloud.
- What is further needed is a server in the cloud for synchronizing order states between a plurality of wired and wireless POS terminals.
- What is moreover needed is a server in the cloud for synchronizing multiple POS terminals, wired and wireless, under intermittent network conditions, where certain ones of the POS terminals are synchronized with order states within one or more geofenced service areas.
- The present invention, among other applications, is directed to solving the above-noted problems and addresses other problems, disadvantages, and limitations of the prior art. In one aspect, a point-of-sale (POS) terminal for fulfilling orders under non-persistent network conditions is provided. The POS terminal includes a state processor and an order processor. The state processor is configured to queue state changes in one or more durable order queues that correspond to one or more orders in a restaurant. The order processor is coupled to the state processor, and is configured to generate the state changes and access and transmit the state changes in each one of the one or more durable order queues to a synchronization server, from oldest to youngest, when operably connected to a network, where the order processor comprises current order state fields corresponding to all of the orders, and where the order processor utilizes domain specific rules disposed therein to resolve conflicts in the one or more orders occurring from state change updates received from the synchronization server which result from other state changes to the one or more orders generated by one or more other POS terminals.
- Another aspect of the present invention contemplates a point-of-sale (POS) terminal for fulfilling orders under non-persistent network conditions. The POS terminal has a state processor, order entry and display circuits, and an order processor. The state processor is configured to queue state changes in one or more durable order queues that correspond to one or more orders in a restaurant. The order entry and display circuits are configured to input menu selections and/or payment options. The order processor is coupled to the order entry and display circuits and state processor, and is configured to generate the state changes, and is configured to access and transmit the state changes in each one of the one or more durable order queues to a synchronization server, from oldest to youngest, when operably connected to a network, where the order processor comprises current order state fields corresponding to all of the orders, and where the order processor utilizes domain specific rules disposed therein to resolve conflicts in the one or more orders occurring from state change updates received from the synchronization server which result from other state changes to the one or more orders generated by one or more other POS terminals.
- A further aspect of the present invention comprehends a method for fulfilling orders under non-persistent network conditions. The method includes, within a point-of-sale POS terminal: generating state changes that correspond to one or more orders in a restaurant; queuing the state changes in one or more durable order queues that correspond to the one or more orders; accessing and transmitting the state changes in each one of the one or more durable order queues to a synchronization server, from oldest to youngest, when operably connected to a network; and maintaining current order state fields corresponding to all of the orders and utilizing domain specific rules to resolve conflicts in the one or more orders occurring from state change updates received from the synchronization server which result from other state changes to the one or more orders generated by other POS terminals.
- These and other objects, features, and advantages of the present invention will become better understood with regard to the following description, and accompanying drawings where:
-
FIG. 1 is a block diagram illustrating a present-day method for fulfilling product orders to one or more patrons; -
FIG. 2 is a block diagram depicting a synchronization system for intermittently-connected point-of-sale (POS) terminals according to the present invention; -
FIG. 3 is a block diagram featuring a synchronization server according to the present invention; -
FIG. 4 is a block diagram showing durable POS terminal according to the present invention; -
FIG. 5 is a block diagram illustrating exemplary update/status messages according to the present invention that flow between a synchronization server and a durable POS terminal; -
FIG. 6 is a flow diagram detailing a POS terminal queuing method according to the present invention; -
FIG. 7 is a flow diagram illustrating a synchronization server queuing method according to the present invention; -
FIG. 8 is a block diagram depicting a selective synchronization server according to the present invention that employs received signal strength indication (RSSI) in the selection of POS terminals for update according to geofenced service areas; -
FIG. 9 is a block diagram featuring a selective synchronization server according to the present invention that employs ping latencies in the selection of POS terminals for update according to geofenced service areas; -
FIG. 10 is a block diagram showing a selective synchronization server according to the present invention that employs Global Positioning System (GPS) coordinates in the selection of POS terminals for update according to geofenced service areas; and -
FIG. 11 is a block diagram illustrating a multiple domain synchronization system according to the present invention. - Exemplary and illustrative embodiments of the invention are described below. In the interest of clarity, not all features of an actual implementation are described in this specification, for those skilled in the art will appreciate that in the development of any such actual embodiment, numerous implementation specific decisions are made to achieve specific goals, such as compliance with system-related and business-related constraints, which vary from one implementation to another. Furthermore, it will be appreciated that such a development effort might be complex and time-consuming, but would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. Various modifications to the preferred embodiment will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the particular embodiments shown and described herein, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed.
- The present invention will now be described with reference to the attached figures. Various structures, systems, and devices are schematically depicted in the drawings for purposes of explanation only and so as to not obscure the present invention with details that are well known to those skilled in the art. Nevertheless, the attached drawings are included to describe and explain illustrative examples of the present invention. The words and phrases used herein should be understood and interpreted to have a meaning consistent with the understanding of those words and phrases by those skilled in the relevant art. No special definition of a term or phrase (i.e., a definition that is different from the ordinary and customary meaning as understood by those skilled in the art) is intended to be implied by consistent usage of the term or phrase herein. To the extent that a term or phrase is intended to have a special meaning (i.e., a meaning other than that understood by skilled artisans) such a special definition will be expressly set forth in the specification in a definitional manner that directly and unequivocally provides the special definition for the term or phrase.
- In view of the above background discussion on present-day POS systems and associated techniques employed therein for dealing with intermittent wired or wireless connections, a discussion of the disadvantages and limitation of those POS will now be presented with reference to
FIG. 1 . Following this, a discussion of the present invention is presented with reference toFIGS. 2-11 . The present invention provides superior mechanisms and techniques whereby multiple intermittently-connected POS terminals may be employed to efficiently process portions of one or more orders in a manner that effectively serves ordering patrons, and that moreover improves the performance of the POS terminals themselves. - Turning to
FIG. 1 , a block diagram is presented illustrating a present-day method for fulfilling product orders for one or more patrons. The method is indicative of how the one or more patrons may interact with retail staff within a retail establishment for the purpose of ordering, modifying, fulfilling, paying for, and closing out an order for goods and/or services. - Flow begins at
block 102, where one or more patrons enter into the retail establishment desirous of purchasing goods and/or services. The retail establishment may comprise, but is not limited to, a restaurant at a fixed location, a mobile restaurant (e.g., food truck), a retail store (e.g., big box store), a hotel lobby having product kiosks, a sports stadium having product stands, an entertainment venue (e.g., movie theater, concert hall), a cruise ship, an airliner, or any other scenario within which one or more patrons may select, pay for, and enjoy goods and/or services. Flow then proceeds to block 104. - At
block 104, the one or more patrons select their goods and/or services and an order is created at a POS terminal. The order may be created by the patrons themselves (e.g., self-ordering on the POS terminal) or the order may be initiated by a retail staff member. The order may have identifying information (e.g., an order number) attached thereto. Flow then proceeds todecision block 106. - At
decision block 106, an evaluation is made to determine if the order is to be modified. For example, one of the one or more patrons may make a change to the order (e.g., “cut the pickles,” “the green lampshade instead of the blue lampshade,” etc.). If so, then flow proceeds to block 108. If the order remains unchanged, then flow proceeds to block 110. - At
block 108, the order is modified on the POS terminal according to the requested change. Flow then proceeds to block 110. - At
block 110, the POS terminal may transmit the order to an order fulfillment area of the retail establishment. For example, in a big box store, this area may comprise a warehouse area in the back. In a restaurant, this area may comprise a kitchen. Other examples abound. Accordingly, retail staff members in the order fulfillment area begin preparations to fulfill the order. Flow then proceeds todecision block 112. - At
decision block 112, an evaluation is made to determine if the order is to be modified, yet again. As one skilled in the art will appreciate, patrons are finicky and inconsistent and, as the saying goes, “the customer is always right.” If the order remains unchanged, then the order is fulfilled and flow proceeds to block 114. If the order is to be modified, then flow proceeds to block 108. - At
block 114, following fulfillment of the order, one or more payment sources for the order are processed by the POS terminal. The payment sources may include, but are not limited to, cash, check, gift cards, gift tokens, magnetic strip credit cards, Europay, MasterCard, and Visa (EMV) credit cards (i.e. chip-and-signature credit cards, chip-and-PIN credit cards), credit cards employing near-field communications (NFC), credit cards employing radio frequency identification (RFID), loyalty accounts, house accounts, and bitcoins and other types of digital currencies. Flow then proceeds todecision block 114. - At
decision block 116, an evaluation is made to determine if the order is to be modified even once more. For example, even after initial payment occurs inblock 114, the one or more patrons may decide to modify the paid-for order by ordering additional goods and/or services (e.g. “Can I get a coffee in a to go cup?”, “Oh, wrong credit card. Use this one.”). Accordingly, if the order is to be modified, flow then proceeds to block 108, where the state of the order is modified to allow for consistency, regardless of whether additional fulfillment is required. If the order is not to be modified, flow proceeds to block 118. - At
block 118, the POS terminal may change the state of the order to “closed.” Flow then proceeds to block 120. - At
block 120, the method completes whereby the one or more patrons may exit the retail establishment, having purchased their goods/and or services, or they may remain for purposes of placing a new order. - The method of
FIG. 1 is a general and simple case of what may occur in any present-day retail establishment. Though orders may be taken by manually in smaller establishments, more often than not the POS terminal is an electronic data entry and display device in one of two configurations: - In a first configuration, the POS terminal is one of several electronic ordering devices that are coupled to an on-premise server via a hardwired connection, generally a local area network (e.g., Ethernet). That is, an order, its modifications, and its state (e.g., open, fulfilled, paid, closed) are communicated between the POS terminal and the on-premise server via the local area network in the retail establishment. The server may also communicate with one or more order fulfillment terminals in a back warehouse or kitchen area, which are also part of the hardwired local area network. The retail establishment may provide for payment using a different financial system (generally provided for by banking institutions) or payment processing may be an integral part of the POS terminals and on-premise server.
- The present inventor has noted, however, that the above configuration is limiting in that patrons are required to wait to order, process payment, etc., until a POS terminal is available. Lines in grocery store or big box store are illustrative of problems with the on-premise, hardwired POS configuration. And when one or more legs of the local area network fail for a period of time (i.e., an occasionally-connected network), retail establishment members much resort to manual methods of order processing, or order processing may be halted altogether until the network is restored. When restored, the individual POS terminals coordinate their particular order statuses and states with the on-premise server. In the case of a restaurant, though multiple wait staff may interact with the one or more patrons, the resulting order for the one or more patrons is typically processed through a single POS terminal, along with orders from other patrons. In a restaurant, though lines of patrons aren't generally seen, the attendant delay is still present waiting for food, payment processing, etc.
- In another configuration, as in the case of a smaller or mobile retail establishment, the POS terminal may be coupled via wireless connection, generally via Wi-Fi or cellular (e.g., 3G, 4G, LTE) connection to the internet and may communicate with a server in the cloud for purposes of inventory management and payment, an example of which are the ubiquitous card readers and cloud services provided for by Square, Inc., that turn smartphones and tablet computers into POS terminals. However, the present inventor has also observed that even though a wireless POS terminal maintains consistency of order and transaction data in the presence of network interruptions (as is the case in most Wi-Fi and cellular network configurations), present-day wireless POS configurations are limited in that only one POS terminal may be employed to process a single order. Such is sufficient for a food truck or small retail store where the one or more patron's portions of the order must be processed by only one POS terminal, but the present inventor notes that this configuration is highly inefficient when employed to process an order for a larger group of patrons. Granted, the retail establishment may have more than one wireless POS terminal, but, as one skilled in the art will appreciate, a single order may only be processed by a single POS terminal. In other words, two orders may be processed by two wireless POS terminals, but a single order for a group of patrons cannot be processed by more than one POS terminal, without breaking up the order.
- The present invention overcomes the above-noted disadvantages and limitations, and other disadvantages and limitations of present-day POS systems by providing apparatus and methods for synchronizing and processing orders in a cloud-based POS system having multiple wired and/or wireless on-site POS terminals, without requiring an on-premise server. The present invention with now be discussed with reference to
FIGS. 2-11 . - Referring now to
FIG. 2 , a block diagram is presented depicting asynchronization system 200 for intermittently-connected point-of-sale (POS) terminals according to the present invention. Thesynchronization system 200 may include one ormore service areas 202, such as afront service area 202, service area 1-service area N 202, andservice area kitchen 202. Going forward, the present inventor notes that though the present invention is applicable to any type of retail establishment as is described above, a restaurant establishment will be henceforth employed in order to teach relevant aspects of the present invention. The present inventor further notes that though restaurant terms such as host, wait staff, cook, kitchen, food item, etc. may be employed, such terms are used to more clearly teach the present invention in a given context, however, broader and different retail establishment types are contemplated. - The
service areas 202 may comprise one or more wireless access points 201. Theservice areas 202 may also comprise one or morewireless POS terminals access points 201 viawireless links 203, and which are distinguished in thesystem 200 as ahost terminal 211,mobile terminals 221, andorder processing terminals 231. Theservice areas 202 may further comprise agateway 213 to which are coupled one or more fixedhardwired terminals 212, and which provides for coupling of the fixedterminals 212 andaccess points 201 aninternet cloud 260 via conventionalwired links 205 such as, but not limited to, Ethernet, cable, fiber optic, and digital subscriber line (DSL) As part of the network path to and through the cloud, providers of internet connectivity (e.g., ISPs) may employ wireless technologies from tower to tower, etc., but for purposes of this application,such links 205 will be referred to as conventionalwired links 205 to distinguish them from local and cellular wireless links. The wireless links 203 may comprise, but are not limited to, Wi-Fi, Bluetooth, near field communications, infrared links, IEEE 802.15.4, Zigbee radio links, and cellular based links (e.g., 3G, 4G, LTE) or a combination of the noted links. ThePOS terminals mobile terminals 221 may comprise a touch screen display and integral payment processor (e.g., card/chip reader) that provides for both order entry, display of order status, and payment processing. As such, thehost terminal 211, fixedterminals 212, andorder processing terminals 231 may comprise larger touch screens to allow for easier viewing by restaurant staff, or they may comprise displays with keyboard entry. In one embodiment,terminals synchronization server 270 for purposes of order entry, status updates, and optionally, payment processing. - The
system 200 may further comprise asynchronization server 270 that is coupled to theinternet cloud 260, and anadministrative console 271 that is operably coupled to thesynchronization server 270 via a conventionalwired link 205 and/or awireless link 203. Thesynchronization server 270 is not on-premise and is thus referred to as acloud server 270. Theadministrative console 271 may be disposed within the restaurant premises and coupled to thesynchronization server 260 via thelinks console 271 may be disposed in another location, say, at an operations headquarters for multiple restaurants within a given region. In addition, thesystem 200 may comprise one or more browser-basedterminals 281 that are coupled to thesynchronization server 270 vialinks 205. In one embodiment, the browser-basedterminals 281 may comprise desktop computers, laptop, computers, smartphones, or tablets that are running stand-alone applications or web-enabled applications that provide for communication with thesynchronization server 270 for purposes of order entry, status updates, and optionally, payment processing. - The system may further comprise one or more third-party-based
terminals 241 that are coupled to thesynchronization server 270 via theconventional links 205 though thecloud 260. The third party-basedterminals 241 may comprise desktop computers, laptop, computers, smartphones, or tablets that are running stand-alone third-party applications or web-enabled third-party applications that provide for communication with thesynchronization server 270 for purposes of order entry, status updates, and optionally, payment processing via a proprietary application programming interface (API) 242. An example of such a terminal 241 may include the well-known GrubHub third-party application that is configured to communicate with thesynchronization server 270 via theAPI 241. - The
system 200 may further comprise one ormore delivery terminals 251 that are coupled to one or morecellular access points 201 via conventionalcellular wireless links 203, and thecellular access points 201 are coupled to thesynchronization server 270 via thecloud 260. In one embodiment, thedelivery terminals 251 are identical to themobile terminals 221, and are configured to provide services for order entry, order fulfillment (i.e., delivery), and payment processing. In another embodiment, thedelivery terminals 251 are disposed as smartphone or tablets with a detachable payment processor (e.g., card/chip reader). In a further embodiment, thedelivery terminals 251 are disposed as smartphone or tablets with a payment processor integrated within a single housing. Other embodiments are contemplated. -
Service areas 202 corresponding to themobile terminals 221 may have one or more tables 204 corresponding to one or more orders. For clarity,service area 1 202 depicts two tables 204, one of which corresponds toorder 1 OD1, and the other of which corresponds toorder 2 OD2. Themobile terminals 221 withinservice area 1 202 may processes portions of bothorder 1 OD1 andorder 2 OD2. -
Service area N 202 depicts two tables 204, both of which correspond to order A ODA. Themobile terminals 221 withinservice area N 202 may both process portions order A ODA. - Though disposed within separate service areas (
service area 1 202-service area N 202), themobile terminals 221 therein may be further configured to process portions of any and all orders within the restaurant and may roam fromservice area 202 to service area to support work load of the restaurant. - The
order processing terminals 231 may process all orders in the restaurant, or they may be configured to each process a portion of all of the orders in the restaurant according to preparation station or inventory station. - The
host terminal 211 and fixedterminals 212 may be configured to process all orders in the restaurant to provide for on-premise seating assignment, order initiation, order selection, and payment processing, including closeout of orders. - One or more restaurant staff members (not shown) within
service area 1 202-service area N 202 may have a personal device (e.g., smartphone, tablet, laptop) 206 that can provide an ad hoc network (i.e., hotspot) to which one or more of themobile terminals 221 may tether for purposes of communicating with thesynchronization server 270 in the absence of Wi-Fi connectivity to the access points 201. - In one embodiment, operations are initiated when the one or more patrons enter the restaurant. Generally, a host (not shown) will create an order (along with corresponding order identifier (01D) via the
host terminal 211 for the one or more patrons and will seat the patrons at one or more tables 204. The created order may include service area designation and assignment of the order to one or moremobile terminals 221. In another embodiment,mobile terminals 221 within aservice area 202 are assigned to all orders within thatservice area 202. Other embodiments are contemplated. The created order and service area assignment are transmitted over thecloud 260 to thesynchronization server 270, which maintains a durable terminal queues within which are stored order updates for all orders in the restaurant. Each of the plurality of durable queues correspond to each of thePOS terminals system 200. When connection status to a giventerminal server 270 cannot verify communication with the giventerminal server 270 may transmit one or more of the order updates to the terminal, verifying with each transmission that the terminal 211, 212, 221, 231, 251 received the update. Advantageously, each of theterminals - Likewise, each of the
terminals terminals terminals mobile terminal 221 assigned to the givenservice area 202. The order update is entered into one of the durable order queues that corresponds to the order ID. If connectivity if present, then the terminal 211, 212, 221, 231, 251 transmits the order update to theserver 270 and waits for theserver 270 to acknowledge the order update. If acknowledged, the terminal 211, 212, 221, 231, 251 removes the order update from the one of the durable order queues. If unacknowledged (i.e., in the case of non-persistent network connectivity), the terminal 211, 212, 221, 231, 251 maintains the order update in the one of the durable order queues until such time as connectivity is reestablished, and the terminal 211, 212, 221, 231, 251 completes transmission of the order update with acknowledgement by theserver 270. - Upon reception of a particular update from the
server 270, theterminals terminals terminals - As patrons continue to order items corresponding to the order ID, the one or more of the
terminals server 270 in accordance with connectivity conditions. Theserver 270 may also queue/transmit order updates for all orders in the restaurant to each of theterminals server 270 and are queued/transmitted to all of theterminals - Patrons outside of the restaurant are also handled in similar fashion via the browser-based
terminals 281, and third-party terminals 241, though without feedback from theserver 270 regarding all orders in the restaurant. When accessed through the browser-basedterminals 281 and third-party terminals 241, theserver 270 creates and order ID and assigns it to one of theorder processing terminals 231 for fulfillment, while sending status updates on the order ID to all of theterminals server 270 may designate aspecific delivery terminal 251 for pickup, delivery, and payment based upon geofenced proximity to the restaurant, or based upon workload corresponding to the delivery terminal. Proximity to the restaurant may be determined by a number of different mechanisms, as will be described in further detail below. - The
administrative console 271 may maintain a master record of all order states and order updates according to all of theterminals console 271 may alternatively be disposed in an expediter's area of the restaurant for use by expediters in assignment and allocation of patron seating andterminals - The durable terminal queues and durable order queues may be disposed as battery backed random-access memory, electrically-erasable programmable read-only memory, solid state memory, hard disk memory, or a combination of the above that will provide for maintaining order updates within the queues across network and power interruptions.
- Advantageously, the present invention provides for more efficient performance of computational resources within the
server 270 and thePOS terminals multiple terminals terminals server 270. Accordingly,computational resources system 200 are afforded an overall performance improvement as a result of the present invention. - Turning now to
FIG. 3 , a block diagram is presented featuring asynchronization server 300 according to the present invention, substantially similar to thesynchronization server 270 ofFIG. 2 . Thesynchronization server 300 may comprise communications circuitry COMMS 302 (e.g., transceivers, modems, message formatter, etc.) that is coupled to one or more wired orwireless communications links 301, examples of which are described above with reference toFIG. 2 . Theserver 300 may also comprise a terminal status element 305, aterminal update element 306, and apayment processor 304, all of which are coupled toCOMMS 302 via a message bus MSG. The terminal status element 305 is coupled to theterminal update element 306 via a status bus STS. Theterminal update element 306 may comprise a service areamap SA MAP 307. Theterminal update element 306 is coupled to thepayment processor 304 and to an order initiationelement ORDER INIT 303 via a terminal bus TBUS. Theterminal update element 306 is also coupled to aqueue processor 310 via a queue bus QBUS. - The
queue processor 310 may include a durableterminal queue 311 that includes terminal update records 312, each of which are associated with a corresponding POS terminal (not shown) that is employed within a given restaurant. In the embodiment ofFIG. 3 , Nterminal update records 312 are shown, each associated with a corresponding one of N POS terminals for the given restaurant. In a large restaurant or big box environment, N may be roughly equal to 100 POS terminals, though larger and smaller numbers are contemplated. - Each of the terminal update records 312 may comprise
update fields 313, which are employed to queue order updates for transmission to each of the corresponding POS terminals as connectivity to the corresponding POS terminals permits. Update fields 313 nearest to OUT are the oldest order updates queued for transmission to the corresponding POS terminals. Update fields 313 nearest to IN are youngest (or most recent) order updates queued for transmission to the corresponding POS terminals.Fields 313 between the oldest order updates and the youngest order updates descend in age from oldest to youngest update according to when those updates are received from others of the corresponding POS terminals. - Values of the order update fields 313 may include, but are not limited to, an order ID along with order details taken by the others of the corresponding POS terminals. Accordingly, the
terminal update record 312 forPOS terminal 1 TERM1 depicts a plurality of order update fields 313 to be transmitted to TERM1 when connectivity is reestablished with TERM1. In decreasing age from oldest to youngest order update, thefields 313 depict updates to order 64 U64, then order 6 U6, then order 22 U22, and so on, culminating with an update to order 17 U17. As one skilled in the art will appreciate, theterminal update record 312 for TERM1 is indicative that TERM1 has been offline (i.e., no connectivity) longer than any of the other POS terminals in the restaurant. This length of time may correspond to a mobile POS terminal that is serving a party on a restaurant porch that has poor Wi-Fi connectivity, or may correspond to a delivery POS terminal that is traversing an area with poor cellular coverage. Theterminal update records 312 corresponding to TERM2,TERM 3, and TERMN depict a number of populated order update fields 313 less than the number of fields for TERM1, which may correspond to mobile POS terminals within the restaurant that have only slightly intermittent Wi-Fi connectivity. And the terminal update record for TERM4 through TERM N−1 contain only empty order update fields 313, thus indicated that these POS terminals are up to date on all order state changes within the restaurant. - Operationally, the terminal status element 305 may periodically transmit a first message to each of the POS terminals and update the connectivity status of the POS terminals based upon whether they acknowledge the first message or not. In one embodiment, the first message may comprise a ping message. In one embodiment, acknowledgment may comprise a simple acknowledge message. In other embodiments, acknowledgement may comprise additional data such as received signal strength indication RSSI, number of hops, or Global Positioning System (GPS) coordinates, as will be described in further detail below.
- The terminal status element 305 may provide connectivity status of each of the POS terminals to the
terminal update element 306 via bus STS. Theservice area map 307 is a table that associates each of the POS terminals to one or more service areas within the restaurant. In one embodiment, theterminal update element 306 may generate order update messages from oldest to youngest update for each of the POS terminals that are connected. Connectivity is maintained when a POS terminal acknowledges receipt of an order update message. Once acknowledged, theterminal update element 306 directs thequeue processor 310 to delete the oldest order update for that POS terminal and shift pending order updates so that the next oldest order update becomes the oldest order update. In one embodiment, order updates are transmitted to a given POS terminal until itsterminal update record 312 is empty, or until connectivity is broken. - In one embodiment, all of the POS terminals associated with the restaurant are updated by the
terminal update element 306. In an alternative embodiment, POS terminals are selectively updated in accordance with their mapping to the one or more service areas. For example, the delivery POS terminals may only require knowledge of orders that are to be delivered outside the restaurant, and thus they may be mapped to a “delivery” service area so that order updates that correspond to the delivery service area are transmitted to the delivery POS terminals. Similarly, the restaurant or retail establishment may be so large that management dedicates certain POS terminals to designate service areas. Accordingly, all of the POS terminals in a given service area may be employed to update any order placed within the given service area, but they may not be employed to update orders placed outside of the given service area. - Messages received from the
communications circuit 302 may also require additional functions to be performed by thesynchronization server 300. For example, when orders are placed by a browser-based or third-party based terminal, theterminal update element 306 may transmit the order update to theorder initiation element 303 via TBUS. Theorder initiation element 303 may then create an order ID for the order update and may assign the order ID to one or more of the POS terminals within the restaurant. Similarly, when an order update message received over theCOMMS 302 requires processing of transactions outside of the POS terminals' capabilities (e.g., financial transactions with credit card providers, loyalty card discounts, etc.), thepayment processor 304 may generate messages to complete the transactions and the messages are transmitted viaCOMMS 302. Thepayment processor 304 may further generate order updates (e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.) to be transmitted to the POS terminals and may provide these updates to theterminal update element 306 via TBUS. Theterminal update element 306 may then provide those updates to thedurable queue 311 via QBUS, and the updates are transmitted to the POS terminals in due course dependent upon connection status, as is described above. - The present inventor notes that the term “restaurant” is employed to include those fixed and mobile POS terminals within the restaurant along with corresponding delivery POS terminals associated with the restaurant, such as
delivery POS terminals 251 depicted inFIG. 2 . There are noterminal update records 312 corresponding to browser-based or third-party-based terminals since orders placed on these devices are created and assigned to one of the POS terminals within the restaurant for fulfillment, preferably order processing terminals, such as theorder processing terminals 231 inFIG. 2 . - The
synchronization server 300 according to the present invention is configured to perform the functions and operations as discussed above. Theserver 300 may comprise digital and/or analog logic, circuits, devices, or microcode (i.e., micro instructions or native instructions), or a combination of logic, circuits, devices, or microcode, or equivalent elements that are employed to execute the functions and operations according to the present invention as noted. The elements employed to accomplish these operations and functions within theserver 300 may be shared with other circuits, microcode, etc., that are employed to perform other functions and/or operations within theserver 300. According to the scope of the present application, microcode is a term employed to refer to a plurality of micro instructions. A micro instruction (also referred to as a native instruction) is an instruction at the level that a unit executes. For example, micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor. For a complex instruction set computer (CISC) microprocessor such as an x86-compatible microprocessor, x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a unit or units within the CISC microprocessor. - Now referring to
FIG. 4 , a block diagram is presented showing adurable POS terminal 400 according to the present invention, substantially similar to thePOS terminals FIG. 2 . The durable POS terminal 400 may comprise a communications circuit COMMS 402 (e.g., transceivers, modems, message formatter, etc.) that is coupled to one or more wired orwireless communications links 301, examples of which are described above with reference toFIG. 2 . The durable POS terminal 400 may also comprise aconnection monitor 404, anorder processor 410, and apayment processor 406, all of which are coupled toCOMMS 302 via a message bus MSG. The durable POS terminal 400 may also comprise a linkselect element 405 that is coupled to the connection monitor via bus CS and to theCOMMS 402 via bus LNK. Theorder processor 410 is coupled to the connection monitor 404 via bus CBUS and to thepayment processor 406, anorder initiation element 407, and aGPS receiver 408 via bus SBUS. Theorder processor 410 is coupled to order entry anddisplay circuits 403 via bus DATA and toterminal ID logic 409 via bus TID. Theorder processor 410 is also coupled to astate processor 420 via a queue bus QBUS. - The
state processor 420 may include a durableorder update queue 421 that includes order update records 422, each of which are associated with a corresponding order for thedurable POS terminal 400.Individual POS terminals 400 are identified by their corresponding terminal ID, which may be stored within and accessed from theterminal ID element 409. - Each of the
order update records 422 may comprise order state fields 423, which are employed to queue order state changes (i.e., order updates) for transmission to a synchronization server (not shown) as connectivity to the synchronization server permits. State fields 423 nearest to OUT are the oldest order state changes queued for transmission to the synchronization server. State fields 423 nearest to IN are youngest (or most recent) order state changes queued for transmission to the synchronization server.Fields 423 between the oldest state fields 423 and the youngest state fields 423 descend in age from oldest to youngest order state change according to when those state changes are entered byPOS terminal 400. - Values of the order state fields 423 may include, but are not limited to, an order ID along with order details taken by the
POS terminal 400. Accordingly, theorder update record 422 for order 27 O27 depicts a plurality of order state fields 423 to be transmitted to the server when connectivity is reestablished. In decreasing age from oldest to youngest order state change, thefields 423 depict order state changes S1 through SN. As one skilled in the art will appreciate, theorder update record 422 O27 depicts that many more state changes have been entered while connection status of thePOS terminal 400 is down than have been entered for orders 62 O62 throughorder 3 O3. Advantageously, thePOS terminal 400 according to the present invention may be employed for entry of order updates even in the presence of network interruptions, which is characteristic of most Wi-Fi networks. - In operation, order state changes result from two sources: the order entry/
display circuit 403 and messages received overCOMMS 402 from the synchronization server. In the first case, wait staff in possession of thePOS terminal 400 may enter order items as requested by patrons, or in the case of a self-service terminal 400, the patrons may enter the order items themselves. The present invention contemplates provisions within thePOS terminal 400 to display menu selections and payment options to both wait staff and patrons. Order items received from the order entry/display circuit 403 are provided to theorder processor 410 via bus DATA, which generates the state changes. State changes received from the server are provided to theorder processor 410 in messages over bus MSG. - The connection monitor 404 may monitor reception of a first message (e.g., a ping message) from the synchronization server and direct transmission of an acknowledgement message. The connection monitor 404 may update the connectivity status of the
POS terminal 400 accordingly. In one embodiment, acknowledgment may comprise a simple acknowledge message. In other embodiments, acknowledgement may comprise additional data such as received signal strength indication RSSI associated with one or more access points, number of hops between the synchronization server and thePOS terminal 400, or Global Positioning System (GPS) coordinates, as will be described in further detail below. - The link
select element 405 may be employed to direct the COMMS to changelinks 401 over which to communicate with the server, such as switching from Wi-Fi to LTE, for example. In one embodiment, in the absence of connectivity within the restaurant, the linkselect element 405 may direct theCOMMS 402 to tether to a cellular equipped device corresponding to an order ID, such asdevices 206 inFIG. 2 , in order to transmit acknowledgements and order state changes to the synchronization server. - The connection monitor 404 may provide connectivity status of the
POS terminal 400 to theorder processor 410 via bus CBUS. In one embodiment, theorder processor 410 may generate order state change messages from oldest to youngest update for each of the orders in thequeue 421. Connectivity is maintained when thePOS terminal 400 receives acknowledgement of a previously transmitted order state change message from the server. Once acknowledged, theorder processor 410 directs thestate processor 420 to delete the oldest state change update for a corresponding order ID and shift pending updates so that the next oldest state change update becomes the oldest order update. In one embodiment, state change updates are transmitted to the server until its orderstate change record 422 is empty, or until connectivity goes down. - Messages received from the
communications circuit 402 may also require additional functions to be performed by the POS terminal. For example, when orders are placed by a browser-based or third-party based terminal, the synchronization server may transmit the order state change to thePOS terminal 400 and theorder processor 410 may direct thestate processor 420 to create a correspondingorder status record 422 in thequeue 421. Similarly, when processing of transactions outside of the POS terminal's capabilities (e.g., financial transactions with credit card providers, loyalty card discounts, etc.) are required,order processor 410 may direct thepayment processor 406 to generate messages to the server to provide data (e.g., amounts, payment source type, card swipe/chip information, etc.) to complete the transactions. Such messages are transmitted viaCOMMS 302. Thepayment processor 304 may further receive state changes (e.g., “order paid,” “payment source 1 approved,” “discount amount,” etc.) to from the server and may provide these state changes to theorder processor 410 via TBUS. Theterminal update element 306 may then provide those updates to thedurable queue 311 via SBUS. ThePOS terminal 400 may further be employed to create an order, as in the case of a delivery terminal, a fixed terminal, or a host terminal. Accordingly, from order entry data received over DATA, theorder processor 410 may direct the order initiation element to create an order ID and may also direct the state processor to create a correspondingorder state record 422 in thequeue 421. - The POS terminal 400 terminal according to the present invention is employed to maintain a current state of all orders being fulfilled by the restaurant. The current state of each of the orders are stored in order current state fields 412 within the
order processor 410. Theorder processor 410 may also comprise domainspecific rules 411, which define actions required to synchronize conflicting order state changes being received and/or processed by thePOS terminal 400, where the domainspecific rules 411 are unique to all of thePOS terminals 400 employed within the restaurant. For example, suppose that onePOS terminal 400 transmits a state change for a specific order to the server, which is acknowledged by the server. Concurrently, asecond POS terminal 400 sends a state change for the same order. The server may respond to the second POS terminal with a message indicating that the ordercurrent state field 412 for the order ID within thesecond POS terminal 400 state is out of date (due to connection status) and providing the most recent current state of the order. The domainspecific rules 411 are employed by the order processor within thesecond POS terminal 400 to merge the state changes local to thesecond POS terminal 400 and may store the merged state in the correspondingcurrent state field 412. The order processor may then direct theCOMMS 402 to transmit the corresponding (reconciled)state field 412 contents to the synchronization server for distribution to all thePOS terminals 400. - The key component of correct conflict resolution (i.e. merging of state changes to generate a valid current order state is the domain specific rules 411. The rules capture dependencies between individual current state field values and validate state transitions. The domain
specific rules 411 may include, but are not limited, rules corresponding to pricing, tax, discount, refund, inventory calculations, and loyalty accrual logic. For example, consider the following sequence of events: -
- (1) An order with two items totaling $100 is entered via
POS terminal A 400. The order contains items, is initially unpaid, and its status is “Open;” - (2) The order is paid out through
POS terminal A 400. The payment amount matches the total, and the order state is updated to “Closed;” and - (3) However, an additional item priced at $20 is added to the order ID through
POS terminal B 400.
Because of the occasionally-connected nature of the system, the changes (2) and (3) happen to be received concurrently by the server.
- (1) An order with two items totaling $100 is entered via
- A generic conflict resolution framework would merge the updates by adding the new item to the order, resulting in the following a closed order having 3 items with a total of $100. This is undesirable because under such a scheme the restaurant will lose money.
- However, the
order processor 410 according to the present invention may employ the domainspecific rules 411 to detect that the total amount required for the order is greater than the payment amount, to determine that the total needs to be recomputed, to change the state of the order from closed back to open, and to recalculate the total. This new current order state is then transmitted to the server and stored in the corresponding ordercurrent state field 412. Advantageously, the domainspecific rules 411 according to the present invention comprehend that total is dependent upon individual order items, and the status of closed or open is dependent upon the total. Thus, when the additional item is added to the order under (3) above, theorder processor 410 changes the status of the order back to open and recalculates the total. - Advantageously, the present invention provides for improvements in performance of computational resources within the
POS terminals 400 over that which has heretofore been provided because the terminal 400 may be employed to process orders in the absence of network connectivity. In addition, unnecessary communications with the server are precluded due to on-board conflict resolution logic. Moreover, computing performance is increased because the terminal 400 may be employed to process any of the other orders within the restaurant because the current states of all restaurant orders are resident therein. - The POS terminal according to the present invention is configured to perform the functions and operations as discussed above. The terminal 400 may comprise digital and/or analog logic, circuits, devices, or microcode (i.e., micro instructions or native instructions), or a combination of logic, circuits, devices, or microcode, or equivalent elements that are employed to execute the functions and operations according to the present invention as noted. The elements employed to accomplish these operations and functions within the terminal 400 may be shared with other circuits, microcode, etc., that are employed to perform other functions and/or operations within the
terminal 400. According to the scope of the present application, microcode is a term employed to refer to a plurality of micro instructions. A micro instruction (also referred to as a native instruction) is an instruction at the level that a unit executes. For example, micro instructions are directly executed by a reduced instruction set computer (RISC) microprocessor. For a complex instruction set computer (CISC) microprocessor such as an x86-compatible microprocessor, x86 instructions are translated into associated micro instructions, and the associated micro instructions are directly executed by a unit or units within the CISC microprocessor. - Now turning to
FIG. 5 , a block diagram 500 is presented illustrating exemplary update/status messages according to the present invention that flow between a synchronization server and a durable POS terminal. - An
order assignment message 510 transmitted by the server to one or more POS terminals may comprisefields 501 having a specific terminal ID TERMID assigned fora particular order ID ORDERID along with a table number TABLENUM having a given number of seats NUMSEATS. Themessage 510 may further comprise aSPECIAL field 501 via which special requirements (e.g., high chair, wheel chair access) are communicated to the POS terminal. - An order
state change message 520 transmitted from a POS terminal to the server may comprise TERMID andORDERID fields 501 as described above, along with one or more groups of ITEM, MOD, and SEAT# fields 501, where contents of theITEM field 501 indicated a menu item ordered for a given seat number at the table along with any modifications to the item number (e.g., rare, no onions, etc.). - A payment
state change message 530 transmitted from a POS terminal to the server may comprise TERMID and ORDERID fields along with one or more groups of PMTREQ, AMT, andTIP fields 501, where contents of thePMTREQ field 501 indicate a payment type (e.g., cash, MasterCard, etc.), and contents of AMT and TIP indicate amount of payment for the particular payment type along with a tip amount. - An
order closeout message 540 may comprise TERMID and ORDER ID fields 501 as noted above, along with aCLOSED field 501, the contents of which indicate whether the particular order ID is open or closed. - A
time clock message 550 exchanged between a POS terminal and the server may comprise aTERMID field 501 as noted above along with a STAFFID, TIMEIN, andTIMEOUT fields 501, where the contents of TIMEIN and TIMEOUT indicate a duration of time for which a staff member identified by STAFFID has employed a particular POS terminal. The server may employsuch messages 550 to calculate hours worked by the staff member. - An
inventory message 560 may comprise a group of INVITEM andINVAMT fields 501, the contents of which indicate the amount of inventory remaining for a given inventory item as a result of processing current orders in the restaurant. Accordingly, the server may employ the noted amounts to expedite ordering of additional inventory items, or to instruct the POS terminals to remove certain corresponding menu items from their menus that are displayed to wait staff or patrons. - The
messages - Referring now to
FIG. 6 , a flow diagram 600 is presented detailing a POS terminal queuing method according to the present invention, such as may be employed in a POS terminal as described above with reference toFIGS. 2-5 . Flow begins atblock 602 where the POS terminal is assigned to a station or wait staff within the restaurant. Flow then proceeds to block 604. - At
block 604 the POS terminal accesses it terminal identifier TERMID and transmits a message to the synchronization server that it is online. Flow then proceeds todecision block 606. - At
decision block 606, an evaluation is made to determine if order state change data has been entered on or received by the POS terminal. If so, then flow proceeds to block 608. If not, then flow proceeds to block 612. - At
block 608, the POS terminal employs domain specific rules therein to resolve conflicts and update a persistent order state field corresponding to the entered/received data. Flow then proceeds to block 610. - At
block 610, any state changes resulting from the resolution along with the updated state field are entered into the POS terminal's local durable state change queue for transmission to the server. Flow then proceeds to block 612. - At
block 610, the oldest state change for the given order is transmitted to the server. Flow then proceeds todecision block 614. - At
decision block 614, an evaluation is made to determine if an acknowledgement message has been received from the server. If not, then flow proceeds todecision block 606. If so, then flow proceeds to block 616. - At
block 616, the oldest state change is deleted from the local durable state change queue and all the younger state change for the order, if present, are moved up in the queue. Flow then proceeds todecision block 618. - At
decision block 618, an evaluation is made to determine if the local durable state change queue for the particular order is empty. If not, then flow proceeds todecision block 606. If so, then flow proceeds to block 620. - At
block 620, the method completes, whereby the POS terminal may access local queue updates for other orders for which is it assigned. - Now turning to
FIG. 7 , a flow diagram 700 is presented illustrating a synchronization server queuing method according to the present invention, such as may be employed by the server described above with reference toFIGS. 2-5 . Flow begins atblock 702, where the server accesses its durable terminal update queue comprising terminal update records corresponding to all POS terminals employed within a restaurant (or other retail establishment). Flow then proceeds to block 704. - At
block 704, a terminal update record corresponding to a next terminal ID is selected. Flow then proceeds todecision block 706. - At
decision block 706, an evaluation is made to determine if a network connection exists between the server and a corresponding POS terminal. If so, then flow proceeds to block 708. If not, then flow proceeds to block 704. - At
block 708, the server transmits the oldest order update in the terminal update record to the corresponding POS terminal. Flow then proceeds todecision block 710. - At
decision block 710, an evaluation is made to determine if the server has received an acknowledgement message from the corresponding POS terminal. If so, then flow proceeds to block 712. If not, then flow proceeds to block 704. - At
block 712, the oldest order update is deleted from the local durable terminal update record and all the younger order updates for the POS terminal, if present, are moved up in the queue. Flow then proceeds todecision block 714. - At
decision block 714, an evaluation is made to determine if any order updates remain queued for the corresponding POS terminal. If so, then flow proceeds todecision block 706. If not, then flow proceeds todecision block 716. - At
decision block 716, an evaluation is made to determine if all of the terminal update records in the local durable terminal update queue are empty. If not, then flow proceeds to block 704. If so, then flow proceeds to block 718. - At
block 718, then method completes. - Now referring to
FIG. 8 , a block diagram is presented depicting aselective synchronization server 800 according to the present invention that employs received signal strength indication (RSSI) in the selection of POS terminals for update according to geofenced service areas. Theserver 800 is substantially similar to theserver 300 described above with reference toFIG. 3 . Configuration and operation of like numbered elements is identical to those ofFIG. 3 , wherein the hundreds digit is changed from “3” to “8.” - Unlike the server of
FIG. 3 , theselective synchronization server 800 additionally includesRSSI stores 820 that is coupled to the terminal status element 805 via bus R. The RSSI stores 820 includesRSSI records 821 for each of the terminals employed within the restaurant. Each of the RSSI records 821 may compriseRSSI fields 822 that each are associated with a corresponding access point located in the restaurant, where the access points include both Wi-Fi access points within the restaurant and cellular access points that are associate with delivery terminals for the restaurant. Contents of each of the RSSI fields 822 comprise an RSSI value for a particular access point as measure for a particular terminal ID. Contents of theRSSI stores 820 are accessed by the terminal status element 805 and are provided to theterminal update element 806 over bus STS. - As noted above with reference to
FIG. 3 , POS terminals may be selectively updated in accordance with their mapping to the one or more service areas, as indicated by theservice area map 807. In the embodiment ofFIG. 8 , theservice area map 807 defines geofenced service areas associated with the restaurant as a function of RSSI values for each of the access points. For example, POS terminals having an RSSI value above a prescribed threshold for certain access points may be mapped within theservice area map 807 to correspond with a given area of the restaurant (e.g., banquet room A, warehouse, front desk, kitchen, etc.). Accordingly, theselective synchronization server 800 will only update those POS terminals within a given geofenced service area with updates for orders that are associated with the given geofenced service area. -
FIG. 9 is a block diagram featuring a selective synchronization server according to the present invention that employs ping latencies in the selection of POS terminals for update according to geofenced service areas; - Turning now to
FIG. 9 , a block diagram is presented featuring aselective synchronization server 900 according to the present invention that employs ping latencies in the selection of POS terminals for update according to geofenced service areas. Theserver 900 is substantially similar to theserver 300 described above with reference toFIG. 3 . Configuration and operation of like numbered elements is identical to those ofFIG. 3 , wherein the hundreds digit is changed from “3” to “9.” - Unlike the server of
FIG. 3 , theselective synchronization server 900 additionally includeslatency stores 920 that is coupled to the terminal status element 905 via bus R. The latency stores 920 includes alatency field 922 for each of the terminals employed within the restaurant. Contents of each of the latency fields 922 comprise a latency value indicating a number of access point hops for transmission of a message from theserver 900 to a corresponding POS terminal. Contents of thelatency stores 920 are accessed by the terminal status element 905 and are provided to theterminal update element 906 over bus STS. - As noted above with reference to
FIG. 3 , POS terminals may be selectively updated in accordance with their mapping to the one or more service areas, as indicated by theservice area map 907. In the embodiment ofFIG. 9 , theservice area map 907 defines geofenced service areas associated with the restaurant as a function of the number of hops required to transmit a message from theserver 900 to a given POS terminal. For example, POS terminals having latency field values within prescribed ranges may be mapped within theservice area map 907 to correspond to given areas of the restaurant (e.g., banquet room A, warehouse, front desk, kitchen, etc.). Accordingly, theselective synchronization server 900 will only update those POS terminals within a given geofenced service area with updates for orders that are associated with the given geofenced service area. - Now referring to
FIG. 10 , a block diagram is presented showing aselective synchronization server 1000 according to the present invention that employs Global Positioning System (GPS) coordinates in the selection of POS terminals for update according to geofenced service areas. Theserver 1000 is substantially similar to theserver 300 described above with reference toFIG. 3 . Configuration and operation of like numbered elements is identical to those ofFIG. 3 , wherein the hundreds digit is changed from “3” to “10.” - Unlike the server of
FIG. 3 , theselective synchronization server 100 additionally includes coordinatestores 1020 that is coupled to the terminal status element 1005 via bus R. The coordinatestores 1020 includes a GPS coordinatesfield 1022 for each of the terminals employed within the restaurant. Contents of each of the GPS coordinatesfield 1022 comprise GPS coordinates for a corresponding POS terminal. Contents of the coordinatestores 1020 are accessed by the terminal status element 1005 and are provided to theterminal update element 1006 over bus STS. - As noted above with reference to
FIG. 3 , POS terminals may be selectively updated in accordance with their mapping to the one or more service areas, as indicated by theservice area map 1007. In the embodiment ofFIG. 10 , theservice area map 1007 defines geofenced service areas associated with the restaurant as a function of GPS coordinates. For example, POS terminals having GPS coordinate field values within prescribed ranges may be mapped within theservice area map 907 to correspond to given areas of the restaurant (e.g., banquet room A, warehouse, front desk, kitchen, etc.). Accordingly, theselective synchronization server 1000 will only update those POS terminals within a given geofenced service area with updates for orders that are associated with the given geofenced service area. - Finally turning to
FIG. 11 , a block diagram is presented illustrating a multipledomain synchronization system 1100 according to the present invention. Thesynchronization system 1100 may comprise a network operations center 1110 having a plurality ofsynchronization servers 1111 as described above with reference toFIGS. 2-10 . Theservers 1111 are coupled to the internet cloud as is described above. Thesystem 1111 may also comprise a plurality ofretail locations 1131 that are also coupled to thecloud 1120. Subsets of theretail locations 1131 are divided intodomains 1130, where each of thedomains 1130 comprise a unique set of domain specific rules as are described above. Each of theretail locations 1131 may be coupled to one or more of the synchronization severs 1111 to allow for synchronization of order updates for POS terminals (not shown) disposed within the retail locations. For example, POS terminals inretail locations domain 1 1130 and may be served bysynchronization server 1 1111.Synchronization server 1 1111 may utilize the same domain specific rules to synchronize updates between POS terminals inlocations server 1111 may update all POS terminals within both locations, or selectively update terminals inlocation 1 1131 with orders corresponding tolocation 1 1131, and terminals inlocation 2 1131 with orders corresponding tolocation 2. - Accordingly, the present invention contemplates synchronization mechanisms that enable business owners having multiple business locations (e.g., locally, statewide, nationwide, and worldwide) to be uniformly provided with order synchronization services via the one or
more synchronization servers 1111 assigned thereto. Additionally, the present invention envisages a plurality ofservers 1111 disposed within a NOC 1110 that may be assigned to perform order synchronization services for numerous and differing retail establishments (e.g., different restaurants, big box stores, concert halls, etc.) - Portions of the present invention and corresponding detailed description are presented in terms of software, or algorithms and symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the ones by which those of ordinary skill in the art effectively convey the substance of their work to others of ordinary skill in the art. An algorithm, as the term is used here, and as it is used generally, is conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of optical, electrical, or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
- It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise, or as is apparent from the discussion, terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, a microprocessor, a central processing unit, or similar electronic computing device, that manipulates and transforms data represented as physical, electronic quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
- Note also that the software implemented aspects of the invention are typically encoded on some form of program storage medium or implemented over some type of transmission medium. The program storage medium may be electronic (e.g., read only memory, flash read only memory, electrically programmable read only memory), random access memory magnetic (e.g., a floppy disk or a hard drive) or optical (e.g., a compact disk read only memory, or “CD ROM”), and may be read only or random access. Similarly, the transmission medium may be metal traces, twisted wire pairs, coaxial cable, optical fiber, or some other suitable transmission medium known to the art. The storage medium may be non-transitory or transitory. The invention is not limited by these aspects of any given implementation.
- The particular embodiments disclosed above are illustrative only, and those skilled in the art will appreciate that they can readily use the disclosed conception and specific embodiments as a basis for designing or modifying other structures for carrying out the same purposes of the present invention, and that various changes, substitutions and alterations can be made herein without departing from the scope of the invention as set forth by the appended claims.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/941,312 US11321690B2 (en) | 2018-03-30 | 2018-03-30 | Point-of-sale terminal for reconciling order states under non-persistent connection conditions |
US16/833,813 US11321692B2 (en) | 2018-03-30 | 2020-03-30 | Point-of-sale terminal for reconciling order states employing third-party-based ordering |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/941,312 US11321690B2 (en) | 2018-03-30 | 2018-03-30 | Point-of-sale terminal for reconciling order states under non-persistent connection conditions |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/833,813 Continuation US11321692B2 (en) | 2018-03-30 | 2020-03-30 | Point-of-sale terminal for reconciling order states employing third-party-based ordering |
Publications (2)
Publication Number | Publication Date |
---|---|
US20190303896A1 true US20190303896A1 (en) | 2019-10-03 |
US11321690B2 US11321690B2 (en) | 2022-05-03 |
Family
ID=68056431
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/941,312 Active 2039-06-25 US11321690B2 (en) | 2018-03-30 | 2018-03-30 | Point-of-sale terminal for reconciling order states under non-persistent connection conditions |
US16/833,813 Active US11321692B2 (en) | 2018-03-30 | 2020-03-30 | Point-of-sale terminal for reconciling order states employing third-party-based ordering |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/833,813 Active US11321692B2 (en) | 2018-03-30 | 2020-03-30 | Point-of-sale terminal for reconciling order states employing third-party-based ordering |
Country Status (1)
Country | Link |
---|---|
US (2) | US11321690B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922670B2 (en) | 2018-03-30 | 2021-02-16 | Toast, Inc. | Synchronization system for intermittently-connected point-of-sale terminals |
US11042860B2 (en) | 2018-03-30 | 2021-06-22 | Toast, Inc. | Selective order states durable queuing apparatus and method |
US11783310B1 (en) * | 2020-06-16 | 2023-10-10 | Block, Inc. | Point-of-sale authorization |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321690B2 (en) | 2018-03-30 | 2022-05-03 | Toast, Inc. | Point-of-sale terminal for reconciling order states under non-persistent connection conditions |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150206116A1 (en) * | 2014-01-21 | 2015-07-23 | Toshiba Global Commerce Solutions Holdings Corporation | Method for synchronizing orders between remote and central web-base point of sale systems |
US20160125449A1 (en) * | 2014-11-02 | 2016-05-05 | Clover Network, Inc. | Extensible point-of-sale platforms and associated methods |
US20170161851A1 (en) * | 2015-12-08 | 2017-06-08 | Toast, Inc. | Restaurant Notification System |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020082927A1 (en) | 2000-11-22 | 2002-06-27 | Borenstein Nathaniel S. | Intelligent caching routers |
US7043444B2 (en) | 2001-04-13 | 2006-05-09 | I2 Technologies Us, Inc. | Synchronization of planning information in a high availability planning and scheduling architecture |
US7685297B2 (en) | 2005-12-06 | 2010-03-23 | Nokia Corporation | Resource control |
DE202012100620U1 (en) | 2011-11-22 | 2012-06-13 | Square, Inc. | System for processing cardless payment transactions |
US10304276B2 (en) | 2012-06-07 | 2019-05-28 | Universal City Studios Llc | Queue management system and method |
US20140052613A1 (en) | 2012-08-17 | 2014-02-20 | Square, Inc., A Delaware Corporation | Systems and methods for providing gratuities to merchants |
US9741050B2 (en) | 2012-09-04 | 2017-08-22 | Gratuity, Llc | System and method for managing gratuities |
US9665858B1 (en) | 2012-10-11 | 2017-05-30 | Square, Inc. | Cardless payment transactions with multiple users |
WO2014105892A2 (en) | 2012-12-26 | 2014-07-03 | First Data Corporation | Systems and methods for providing a point of sale platform |
US9576287B1 (en) | 2013-01-02 | 2017-02-21 | Square, Inc. | Payment event feed |
US9721314B2 (en) | 2013-10-28 | 2017-08-01 | Square, Inc. | Apportioning shared financial expenses |
US9875469B1 (en) | 2013-12-24 | 2018-01-23 | Square, Inc. | Bill splitting |
US10147102B2 (en) | 2014-03-31 | 2018-12-04 | Paypal, Inc. | Person/group check-in system |
US20150302388A1 (en) | 2014-04-17 | 2015-10-22 | Gratzeez, LLC | Design framework and apparatus for paying gratitudes |
SG11201700909RA (en) * | 2014-08-13 | 2017-03-30 | Foodzaps Technology Pte Ltd | Fail-safe electronic restaurant management system |
US10885542B2 (en) | 2017-10-25 | 2021-01-05 | Toast, Inc. | Multi-restaurant facial recognition system |
US10614438B2 (en) | 2018-03-30 | 2020-04-07 | Toast, Inc. | Selective system for reconciling order states under non-persistent connection conditions |
US10607201B2 (en) | 2018-03-30 | 2020-03-31 | Toast, Inc. | Selective point-of-sale terminal for reconciling order state under non-persistent connection conditions |
US10607202B2 (en) | 2018-03-30 | 2020-03-31 | Toast, Inc. | Synchronization system for intermittently-connected point-of-sale terminals employing ad hoc network |
US11042860B2 (en) | 2018-03-30 | 2021-06-22 | Toast, Inc. | Selective order states durable queuing apparatus and method |
US10607183B2 (en) | 2018-03-30 | 2020-03-31 | Toast, Inc. | Order states durable queuing apparatus and method |
US10607203B2 (en) | 2018-03-30 | 2020-03-31 | Toast, Inc. | Synchronization system for intermittenly-connected point-of-sale terminals employing browser based ordering |
US11321690B2 (en) | 2018-03-30 | 2022-05-03 | Toast, Inc. | Point-of-sale terminal for reconciling order states under non-persistent connection conditions |
US10922670B2 (en) | 2018-03-30 | 2021-02-16 | Toast, Inc. | Synchronization system for intermittently-connected point-of-sale terminals |
-
2018
- 2018-03-30 US US15/941,312 patent/US11321690B2/en active Active
-
2020
- 2020-03-30 US US16/833,813 patent/US11321692B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150206116A1 (en) * | 2014-01-21 | 2015-07-23 | Toshiba Global Commerce Solutions Holdings Corporation | Method for synchronizing orders between remote and central web-base point of sale systems |
US20160125449A1 (en) * | 2014-11-02 | 2016-05-05 | Clover Network, Inc. | Extensible point-of-sale platforms and associated methods |
US20170161851A1 (en) * | 2015-12-08 | 2017-06-08 | Toast, Inc. | Restaurant Notification System |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10922670B2 (en) | 2018-03-30 | 2021-02-16 | Toast, Inc. | Synchronization system for intermittently-connected point-of-sale terminals |
US11042860B2 (en) | 2018-03-30 | 2021-06-22 | Toast, Inc. | Selective order states durable queuing apparatus and method |
US11429946B2 (en) | 2018-03-30 | 2022-08-30 | Toast, Inc. | Selective order states durable queuing apparatus and method |
US11783310B1 (en) * | 2020-06-16 | 2023-10-10 | Block, Inc. | Point-of-sale authorization |
Also Published As
Publication number | Publication date |
---|---|
US20200226570A1 (en) | 2020-07-16 |
US11321690B2 (en) | 2022-05-03 |
US11321692B2 (en) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455609B2 (en) | Point-of-sale terminal for synchronization employing ad hoc network | |
US10607201B2 (en) | Selective point-of-sale terminal for reconciling order state under non-persistent connection conditions | |
US11410148B2 (en) | Synchronization system for intermittently-connected point-of-sale terminals employing third-party-based ordering | |
US11321692B2 (en) | Point-of-sale terminal for reconciling order states employing third-party-based ordering | |
US11429946B2 (en) | Selective order states durable queuing apparatus and method | |
US10922711B2 (en) | Facial recognition system for restaurant customer relationship management | |
US10607183B2 (en) | Order states durable queuing apparatus and method | |
US10614438B2 (en) | Selective system for reconciling order states under non-persistent connection conditions | |
US10922670B2 (en) | Synchronization system for intermittently-connected point-of-sale terminals | |
US20210073768A1 (en) | Multichannel apparatus and method for patron identification | |
US11074567B2 (en) | Dual band mobile point-of-sale terminal | |
US11074568B2 (en) | Adaptive dual band mobile point-of-sale terminal | |
US10878396B2 (en) | Dual band fixed point-of-sale terminal | |
US10956887B2 (en) | Dual band restaurant ordering system | |
US11188891B2 (en) | Modular dual band mobile point-of-sale terminal | |
US10878397B2 (en) | Restaurant ordering system employing television whitespace communication channels | |
US20200160310A1 (en) | Combined band restaurant ordering system | |
US20200160311A1 (en) | Restaurant ordering system employing dual band mesh network | |
US20210073770A1 (en) | Multichannel system for patron identification and retention | |
WO2020106311A1 (en) | Dual band restaurant ordering system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: TOAST, INC., MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOLBERG, OLEG;REEL/FRAME:045395/0661 Effective date: 20180330 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
AS | Assignment |
Owner name: JP MORGAN CHASE BANK, N.A., ILLINOIS Free format text: SECURITY INTEREST;ASSIGNOR:TOAST, INC.;REEL/FRAME:048528/0478 Effective date: 20190305 |
|
FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: ADVISORY ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: TOAST, INC., MASSACHUSETTS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:056542/0901 Effective date: 20210608 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: TOAST, INC., MASSACHUSETTS Free format text: CHANGE OF ADDRESS;ASSIGNOR:TOAST, INC.;REEL/FRAME:067484/0305 Effective date: 20240516 |