A seed algorithm selects initially a single seed order in the batch. More orders are then added according to a route closeness criterion until no more orders can be added due to a capacity constraint. The capacity constraint can be based on total pick time, number of orders in the batch, or weight .A savings heuristic starts by assigning each order to a separate batch. The algorithm then iteratively selects a pair of batches to be combined based on the savings of combining them until no more batches can be combined due to the capacity constraint.