A computer-implemented method for distributing at least one warehouse task from a warehouse management hub to one of a plurality of programmable logic controllers in a distributed warehouse system, comprising: receiving the warehouse task at the warehouse management hub, the warehouse task including attributes for physically transferring at least one product into a warehouse, out of the warehouse or within the warehouse; determining, by the warehouse management hub and based on the attributes of the warehouse task, one of a plurality of warehouse management devices for processing the warehouse task, wherein the warehouse management hub is communicably connected to each of the warehouse management devices via a wide area network, sending, by the warehouse management hub, the warehouse task to the determined warehouse management device; and identifying, by the determined warehouse management device and based on the attributes of the warehouse task, a first one of the plurality of programmable logic controllers, wherein the determined warehouse management device is communicably connected to each of the programmable logic controllers via a local area network, wherein the first one of the plurality of programmable logic controllers is on a primary route of the determined warehouse management device; receiving, by the determined warehouse management device from the first one of the programable logic controllers, an error message; determining, by the determined warehouse management device, a second one of the programmable logic controllers based on the error message, wherein the determined warehouse management device has an alternate route including the second programmable logic controller and uses the alternate route upon receipt of the error message; and sending, by the determined warehouse management device, a message including information for carrying out the warehouse task to the second one of the programmable logic controllers based on the determination of the second one of the programmable logic controllers. receiving the warehouse task at the warehouse management hub, the warehouse task including attributes for physically transferring at least one product into a warehouse, out of the warehouse or within the warehouse; determining, by the warehouse management hub and based on the attributes of the warehouse task, one of a plurality of warehouse management devices for processing the warehouse task, wherein the warehouse management hub is communicably connected to each of the warehouse management devices via a wide area network, sending, by the warehouse management hub, the warehouse task to the determined warehouse management device; and identifying, by the determined warehouse management device and based on the attributes of the warehouse task, a first one of the plurality of programmable logic controllers, wherein the determined warehouse management device is communicably connected to each of the programmable logic controllers via a local area network, wherein the first one of the plurality of programmable logic controllers is on a primary route of the determined warehouse management device; wherein the determined warehouse management device is communicably connected to each of the programmable logic controllers via a local area network, wherein the first one of the plurality of programmable logic controllers is on a primary route of the determined warehouse management device; receiving, by the determined warehouse management device from the first one of the programable logic controllers, an error message; determining, by the determined warehouse management device, a second one of the programmable logic controllers based on the error message, wherein the determined warehouse management device has an alternate route including the second programmable logic controller and uses the alternate route upon receipt of the error message; and sending, by the determined warehouse management device, a message including information for carrying out the warehouse task to the second one of the programmable logic controllers based on the determination of the second one of the programmable logic controllers.