Real life distribution problems present high degree of complexity mostly derived by the need to respect a variety of constraints. Moreover they are not considered by the classical models of the vehicle routing literature. In this paper we consider a vehicle routing problem with heterogeneous vehicle fleet with different capacity, multi-dimensional capacity constraints, order/vehicle, item/vehicle, and item/item compatibility constraints, different start and end locations for vehicles, and multiple time windows restrictions. We propose an evolutionary algorithm based on the combination of a genetic algorithm and local search heuristics. We investigated the performance of the implemented algorithm in the large-scale retail and in the waste collection industries.