The use of locker arrays to distribute products to customers has increased as demand for self-service shopping has increased. A locker array is a group of lockers that are grouped together in various configurations. Many merchants station locker arrays at strategic locations in various geographic areas so that customers can pick up previously ordered products. Typically, a customer is provided with a code (e.g. bar code, QR code, etc.), which they scan at the locker array. When the code is scanned, a locker door opens, which contains a purchased product. To load the locker with a purchased product, a courier takes the product to the location of the locker and selects a locker. The courier then inserts the product in the locker through the same door that the customer or some other entity (courier, robot, etc.) will use to pick up the product.
The use of such locker arrays could be advantageous in the restaurant setting, particularly in a self-service setting, such as cafeterias and food courts. A problem exists, however, in that the single-sided lockers used for online products are not practical for delivery of restaurant orders. Loading restaurant orders into locker arrays poses a host of logistical challenges. For example, it would be undesirable to have restaurant employees and customers simultaneously converge on a locker array to load and retrieve orders due to the congestion that would result. Accordingly, a locker array is needed that is appropriate for restaurant orders, and systems and methods for managing such a locker array.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not constrained to limitations that solve any or all disadvantages noted in any part of this disclosure.
In one embodiment, a method of operating a locker array including a plurality of merchant doors a plurality of customer doors is provided. A customer order, in the form of an electronic message, is received. In one embodiment, electronic customer order messages contains parameters defining a plurality of aspects of the order, e.g., quantity, price, time of order placement, target time for order fulfillment, etc. A merchant code is created. A customer code is created. A notification is received from a merchant that preparation of the customer order is complete. A locker is selected from the locker array for fulfillment of the customer order in response to receipt of notification that the customer order is complete. The merchant code is rendered operable to open a merchant door of the locker selected from the locker array and the customer code is rendered operable to open a customer door of the locker selected from the locker array.
In one embodiment, the merchant code is received from a controller of the locker array. The merchant code is validated. A controller of the locker array is instructed to open the merchant door. In one embodiment, the customer code is received from the controller. The customer code is validated. The controller is instructed to open the customer door. In one embodiment, the merchant door and the customer door are on opposing sides of the locker selected from the locker array. In one embodiment, the customer code and the merchant code are created when the customer order is created. In one embodiment, a plurality of factors is utilized to determine an optimal location of the selected locker. In one embodiment, the plurality of factors includes at least two of the time of day, a location of an ordering point from which the customer order originated, and a location of the customer at completion of the customer order. In one embodiment, a plurality of lockers is selected and the merchant code and customer code are associated with the plurality of lockers.
In one embodiment a system is provided. The system operates a locker array having a merchant side having a plurality of merchant doors and a customer side having a plurality of customer doors. The system includes a memory and at least one module stored in the memory. The module is configured to receive a customer order, create a merchant code, create a customer code, receive notification from the merchant that preparation of the customer order is complete, select a locker from the locker array for fulfillment of the customer order in response to notification that the customer order is complete, and make the merchant code operable to open a merchant door of the locker and make the customer code operable to open a customer door of the locker.
In one embodiment, the at least one module is further configured to receive the merchant code from a controller of the locker array, validate the merchant code, and instruct the controller to open the merchant door. In one embodiment, the at least one module is configured to receive the customer code from the controller, validate the customer code, and instruct the controller to open the customer door. In one embodiment, the merchant door and the customer door are on opposing sides of the locker selected from the locker array. In one embodiment, the customer code and the merchant code are created when the customer order is created. In one embodiment, selection of the locker comprises utilization of a plurality of factors to determine an optimal location of the selected locker. In one embodiment, the plurality of factors includes at least two of the time of day, a location of an ordering point from which the customer order originated, and a location of the customer at completion of the customer order. In one embodiment, selection of the locker comprises selection of a plurality of lockers and association of the merchant code and customer code comprises association of the merchant code and the customer code with the plurality of lockers.
In one embodiment, a locker array is provided. The locker array includes a merchant side including a plurality of merchant doors and a customer side including a plurality of customer doors. The merchant doors and the customer doors are on opposing sides of the locker array. A controller is operable to open the merchant doors and the customer doors. In one embodiment, the system includes a management module that is configured to receive a customer order, create a merchant code and a customer code. In this embodiment the management module preferably receives a notification from the merchant that preparation of the customer order is complete. A plurality of lockers is selected from the locker array for fulfillment of the customer order in response to notification that the customer order is complete. The merchant code and the customer code are associated with the plurality of lockers. The system is constructed such that merchant doors of the plurality of lockers open in response to the merchant code. The customer code is made operable to open customer doors of the plurality of lockers.
In one embodiment, the merchant code is received from the controller and the merchant code is validated. The controller of the locker array is instructed to cause a first door of the plurality of lockers to open in response to receipt of the merchant code. The controller of the locker array is instructed to cause a second door of the plurality of lockers to open when the controller detects that the first door is closed. In one embodiment, a management module is configured to receive the customer code from the controller, validate the customer code, instruct the controller of the locker array to open a third door of the plurality of lockers in response to receipt of the customer code, and instruct the controller of the locker array to open a fourth door of the plurality of lockers when the controller detects that the third door is closed. In one embodiment, the management module selects the plurality of lockers based on at least one of time of day, a location of an ordering point from which the customer order originated, and a location of the customer at completion of the customer order.
A more detailed understanding may be had from the following description, given by way of example in conjunction with the accompanying drawings wherein:
Referring to
In one example, ordering point 102 is a self-service kiosk. In another example, ordering point 102 may be a point-of-sale (POS) system, an ordering app operating on a computer or mobile device (on premises or off premises), an employee operating such devices, and combinations thereof. The ordering point 102 is where a user places an order into system 100 for eventual delivery to a customer through locker array 106. Ordering point 102, will generally have one or more input/output devices that allow a customer to interact with system and place orders. Ordering point 102 will also generally have one or more communication interfaces that allow ordering point 102 to connect to and integrate with KDS 104, locker 106, and to one or more networks, such as the internet. Customers in some implementations may connect to system 100 over a network and place orders. An exemplary embodiment of a device that could function as ordering point is shown in
Referring further to
Referring to
Referring further to
Referring further to
Referring to
Referring now to
Referring further to
In another embodiment, LMDA 120 may execute load balancing to ensure that orders are being spread out over the available lockers 110, rather than concentrated in a few. LMDA 120 in one example may use data reflecting historic usage patterns to prevent unnecessary congestion at certain locations or at certain times. For instance, during a busy time, like lunch, LMDA 120 may load balance, but at less busy times, may elect to not load balance. In another example, LMDA 120 may coordinate the access of multiple lockers 110 for a single order. For instance, a customer may have a large order that requires multiple lockers 110 for fulfillment. Accordingly, to fulfill the order, LMDA 120 would have to identify multiple available lockers 110 and control the access to the multiple lockers 110 as set forth herein. Exemplar load balancing methods are described in U.S. patent application Ser. No. 17/943,011, which is hereby incorporated by reference in its entirety.
Referring to
Referring further to
KDS 104 receives the order and outputs the order on its input/output devices for fulfillment by the merchant. One or more employees of the merchant fulfill the order. When the order is fulfilled, the employees interact with KDS 104 and indicates that the order is fulfilled. KDS 104 then interacts with LMDA 120, which then assigns a locker 110 for fulfillment of the order. LMDA 120 sends a code to KDS 104 that is operable to open a particular locker door 110. KDS 104 receives the code and outputs it to an employee. The employee may receive the code on a printed receipt or electronically on a computing device. The code may be a numerical code or a bar code or QR code. The employee inputs the code through UI 113 and a merchant door 116 will open, and the employee can then insert the order into the corresponding locker 110.
In one embodiment, the customer code and the merchant code may be created at the beginning of a order process and assigned to a locker 110 later. For example, LMDA 120 may provide the codes to the customer and merchant but wait until after the order is fulfilled to assign the codes to a particular locker 110. In this way, LMDA 120 assigns lockers at the time of order fulfillment, which increases efficiency of the system 100 because not all orders take the same amount of time to prepare. Therefore, LMDA 120 assigns lockers 110 on a “just in time” basis rather than reserving lockers 110 at the beginning of an order.
Referring to
In step 407, the merchant prepares the order. When the merchant is done preparing the order the merchant sends the merchant code to controller 120 in step 409. In one example, the merchant may provide the merchant code to controller through UI 113. For example, the merchant may have a paper ticket, with the code printed on it, and the merchant may scan the code on a bar code reader. In one example, the merchant may provide the code to controller through another device, such as a mobile device, or through KDS 104. In step 411, controller 120 sends the merchant code to LMDA 120, which then validates the code. In one example, LMDA 120 validates the merchant code by comparing it to the merchant code that it created in step 303. If the merchant code is not validated, then an error message is output and then the process returns to step 309, and the merchant can reenter the merchant code. If the merchant code is validated, then the process proceeds to step 413. In step 413 LMDA 120 determines a locker 110 for the order. As was discussed earlier herein, determining the locker number may depend on a number of factors.
For example, LMDA 120, as a first step, may determine what lockers 110 are available. Then LMDA 120 may determine, of the available lockers 110, which lockers 110 are closest to the ordering point 102 at which the order originated. In one embodiment, LMDA 120 may determine the location of the consumer and select a locker 110 close to the consumer. In one embodiment, LMDA 120 may determine where the customer is likely to be at the time the order is ready. Such a determination may be made based on the customer's historical usage patterns or from historical data related to the site at which system 100 resides or from site map data indicating where the crowded areas are within the site, and where the less crowded areas are within the site. In step 415, LMDA 120 sends the locker number to controller 112. In step 417, controller 112 causes the merchant door 116, corresponding to the selected locker 110, to open.
In step 419, the merchant inserts the order into the selected locker 110 and closes the merchant door 116. In step 421, controller 112 notifies LDMA 120 that the order is ready for pickup. It should be noted that the notification that the order is ready for pick-up is not based on an explicit notification. For instance, the notification could be an inference from a signal confirming that the merchant door opened and then closed in step 419. In step 423, LMDA 120 notifies the customer that the order is ready for pick-up. In step 425, the customer inputs the customer code to controller 120. In one example, the customer may provide the code by scanning a bar code at UI 122. In one example, the customer may provide the code by entering it into a keypad. In another example, the customer may send the code to controller from a computing device, such as a mobile device, through a near field communication (NFC) technology. In step 427, controller 120 sends the inputted customer code to LMDA 120 for validation. In one example, controller 120 validates the customer code by comparing it to the customer code it created in step 403. If the code is not valid, the process returns to step 425 so the customer can reenter the code. If the code is valid, then, in step 429, LDMA sends the locker number, corresponding to code, to controller 112. In step 431, the controller 112 causes customer door 114 to open. In step 433, the user removes the item from the corresponding locker 110 and shuts the door. The process then terminates.
It should be noted that the preceding steps are provided to depict illustrative operation of system 100. The preceding steps may be combined, divided, or rearranged without departing from the scope of the present application.
The computer 920 may further include a hard disk drive 927 for reading from and writing to a hard disk (not shown), a magnetic disk drive 928 for reading from or writing to a removable magnetic disk 929, and an optical disk drive 930 for reading from or writing to a removable optical disk 931 such as a CD-ROM or other optical media. The hard disk drive 927, magnetic disk drive 928, and optical disk drive 930 are connected to the system bus 923 by a hard disk drive interface 932, a magnetic disk drive interface 933, and an optical drive interface 934, respectively. The drives, and their associated computer-readable media, provide nonvolatile storage of computer readable instructions, data structures, program modules and other data for the computer 920. As described herein, computer-readable media is a tangible, physical, and concrete article of manufacture and thus, not a signal, per se.
Although the exemplary environment described herein employs a hard disk, a removable magnetic disk 929, and a removable optical disk 931, it should be appreciated that other types of computer readable media, which can store data, that is accessible by a computer may also be used in the exemplary operating environment. Such other types of media include, but are not limited to, a magnetic cassette, a flash memory card, a digital video or versatile disk, a Bernoulli cartridge, a random access memory (RAM), a read-only memory (ROM), cloud implemented memory, and the like.
A number of program modules may be stored on the hard disk, magnetic disk 929, optical disk 931, ROM 924 or RAM 925, including an operating system 935, one or more application programs 936, other program modules 937 and program data 938. A user may enter commands and information into the computer 920 through input devices such as a keyboard 940 and pointing device 942. Other input devices (not shown) may include a microphone, joystick, game pad, satellite disk, scanner, or the like. These and other input devices are often connected to the processing unit 921 through a serial port interface 946 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or universal serial bus (USB). A monitor 947 or other type of display device is also connected to the system bus 923 via an interface, such as a video adapter 948. In addition to the monitor 947, a computer may include other peripheral output devices (not shown), such as speakers and printers. The exemplary system of
The computer 920 may operate in a networked environment using logical connections to one or more remote computers such as a remote computer 949. The remote computer 949 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and may include many or all of the elements described above relative to the computer 920, although only a memory storage device 950 has been illustrated in
When used in a LAN networking environment, the computer 920 is connected to the LAN 951 through a network interface or adapter 953. When used in a WAN networking environment, the computer 920 may include a modem 954 or other means for establishing communications over the wide area network 952, such as the Internet. The modem 954, which may be internal or external, is connected to the system bus 923 via the serial port interface 946. In a networked environment, program modules depicted relative to the computer 920, or portions thereof, may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used, such as Bluetooth and Wi-Fi.
Computer 920 may include a variety of computer readable storage media. Computer readable storage media can be any available media that can be accessed by computer 920 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media include both volatile and nonvolatile, removable and non-removable media, implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 920. Combinations of any of the above should also be included within the scope of computer readable media that may be used to store source code for implementing the methods and systems described herein. Any combination of the features or elements disclosed herein may be used in one or more examples.
In describing preferred examples of the subject matter of the present disclosure, as illustrated in the Figures, specific terminology is employed for the sake of clarity. The claimed subject matter, however, is not intended to be limited to the specific terminology so selected, and it is to be understood that each specific element includes all technical equivalents that operate in a similar manner to accomplish a similar purpose.
This written description uses examples to disclose the invention, including the best mode, and also to enable any person skilled in the art to practice the invention, including making and using any devices or systems and performing any incorporated methods. The patentable scope of the invention is defined by the claims, and may include other examples that occur to those skilled in the art. Such other examples are intended to be within the scope of the claims if they have structural elements that do not differ from the literal language of the claims, or if they include equivalent structural elements with insubstantial differences from the literal languages of the claims.