There are several clients (unloading terminals) having given demands for different products. The products are stored at loading terminals. The product transportation is realized by vehicles located at several depots. There are given loading-unloading times, compatibility constraints between vehicles and terminals, and time windows, in which vehicles and terminals are available. Vehicles can include several sections of various capacities. There can be restrictions on the order of changing products carried in the sections. For each vehicle type, the cost of moving a unit of total mass per distance unit is given. Terminals and depots are nodes of a transportation network. The problem is to select vehicles, to determine their feasible routes and feasible loading/unloading plans such that all the demands are satisfied and the total transportation cost is minimized. A route of a vehicle starts and finishes in the depot of this vehicle. The route can include visiting any client or loading terminal several times. We suggest a solution approach that builds partial routes and loading/unloading plans. A complete solution is combined of these parts in an optimal way via solving an Integer Linear Programming problem, or by applying our heuristic approaches.