This paper considers a multi-product and two-stage facility location problem with three layers of nodes: plants with limited production capacities, capacitated DCs to be located, and customers with known demands per product. The goal is to minimize a global cost including DC opening costs, transportation costs, and handling costs. The latter are not simply proportional to the amounts of products traversing DCs. They are modeled in a realistic way by associating each cross-docking task occurred at DCs with a limited set of handling modules. Each module for some task is a combination of manpower and equipment with a handling capacity and a handling cost, for instance a set of forklifts with their drivers to accomplish unloading task. The handling cost of a module is incurred as soon as the module is used, even for a fraction of its handling capacity. In order to obtain good lower and upper bounds, an heuristic based on Lagrangean relaxation is designed. The computational results show that our approach provides high quality solutions and outperforms CPLEX. © 2011 IEEE.