US 11,783,403 B2
Systems, non-transitory computer readable mediums, and methods for grocery order batching and customer experience
Pratosh Deepak Rajkhowa, Sunnyvale, CA (US); Sneha Narahalli Balasubramanya, San Jose, CA (US); Manish Gupta, Sunnyvale, CA (US); Deepak Deshpande, San Jose, CA (US); Hagit Katzenelson, Palo Alto, CA (US); and Rohit Jain, Sunnyvale, CA (US)
Assigned to Walmart Apollo, LLC, Bentonville, AR (US)
Filed by Wal-Mart Apollo, LLC, Bentonville, AR (US)
Filed on Apr. 24, 2019, as Appl. No. 16/393,880.
Prior Publication US 2020/0342517 A1, Oct. 29, 2020
Int. Cl. G06Q 30/00 (2023.01); G06Q 30/0601 (2023.01); G06Q 10/0836 (2023.01); G06F 16/29 (2019.01)
CPC G06Q 30/0635 (2013.01) [G06F 16/29 (2019.01); G06Q 10/0836 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A batch order delivery management system comprising:
one or more memories;
a transceiver communicatively coupled with the one or more memories, the transceiver configured to receive order data identifying at least a first order and a second order, wherein the first order and the second order each include at least one item for delivery to a delivery address, and wherein the order data is stored in the one or more memories; and
one or more processors coupled to the one or more memories, the one or more processors configured to:
obtain, from the one or more memories, the order data identifying at least a first order and a second order;
process the order data to determine that the first order can be delivered to a first delivery address and the second order can be delivered to a second delivery address within a requested delivery time window, the determination comprising:
determining a first travel time from a storage facility to the first delivery address based at least in part on a first distance between the storage facility and the first delivery address;
determining a second travel time from the first delivery address to the second delivery address based at least in part on a second distance between the first delivery address and the second delivery address;
determining an estimated total travel time of a delivery vehicle based on the first travel time and the second travel time; and
comparing the estimated total travel time to the requested delivery time window;
obtain, from the one or more memories, delivery vehicle data identifying a storage capacity for the delivery vehicle;
determine that the delivery vehicle can store the items for the first order and the second order based on the storage capacity for the delivery vehicle;
batch the first order and the second order to generate a batched order based on determining that the first order can be delivered to the first delivery address and the second order can be delivered to the second delivery address within the requested delivery time window and that the delivery vehicle can store the items for the first order and the second order;
generate assignment data identifying an assignment of the batched order to the delivery vehicle;
store the assignment data in the one or more memories;
transmit the assignment data to a computing device associated with the delivery vehicle;
implement a state machine including a first state element associated with the first order and a second state element associated with the second order, wherein a state of the first state element is partially dependent on a state of the second state element, and wherein the state of the second state element is partially dependent on the state of the first state element, wherein the state machine is configured to receive location data from the computing device associated with the delivery vehicle, and wherein the state machine is configured to:
implement each of the first state element and the second state element in an enroute to pick up state;
determining, based on the location data, when the delivery vehicle is at the storage facility;
in response to determining the delivery vehicle is at the storage facility, updating each of the first state element and the second state element to a pickup location state;
in response to receiving a loading input, updating each of the first state element and the second state element to an order pickup state;
determining, based on the location data, when the delivery vehicle is leaving the storage facility;
in response to determining the delivery vehicle is leaving the storage facility, update the first state element to an enroute to drop off state and transmit a communication to a user device indicating the delivery vehicle is enroute to deliver the first order;
in response to receiving a skip order input for the first order:
update the first state element to a skip order state;
transmit skip data to the computing device associated with the delivery vehicle; and
in response to updating the first state element to the skip order state, update the second state element to the enroute to drop off state;
in response to receiving a delivered input for the first order, updating the first state element to a delivered state;
in response to receiving a rejected input for the first order, updating the first state element to a rejected state;
in response to updating the first state element to the delivered state or the rejected state, updating the second state element to the enroute to drop off state;
in response to receiving a delivered input for the second order, updating the second state element to the delivered state;
in response to receiving a rejected input for the second order, updating the second state element to the rejected state;
in response to updating the first state element to the rejected state and the second state element to one of the rejected state or the delivered state, updating the first state element to an enroute to return state;
determining, based on the location data, when the delivery vehicle is at the storage facility; and
in response to determining the delivery vehicle is at the storage facility, updating the first state element to a returned state.