The selection of suppliers and the determination of order quantities to be placed with those suppliers are important decisions in a supply chain. In this research, a non-linear mixed integer programming model is presented to select suppliers and determine the order quantities. The model considers the purchasing cost which takes into account quantity discount, the cost of transportation, the fixed cost for establishing suppliers, the cost for holding inventory, and the cost of receiving poor quality parts. The capacity constraints for suppliers, quality and lead-time requirements for the parts are also taken into account in the model. Since the purchasing cost, which is a decreasing step function of order quantities, introduces discontinuities to the non-linear objective function, it is not easy to employ traditional optimization methods. Thus, a heuristic algorithm, called particle swarm optimization (PSO), is used to find the (near) optimal solution. However, PSO usually generates initial solutions randomly. To improve the PSO solution quality, a heuristic procedure is proposed to find an initial solution based on the average unit cost including transportation, purchasing, inventory, and poor quality part cost. The results show that PSO with the proposed initial solution heuristic provides better solutions than those with PSO algorithm only.