We consider two multi-product dynamic lot size models with one-way substitution, where the products can be indexed such that a lower-index product may be used to substitute the demand of a higher-index product. In the first model, the product used to meet the demand of another product must be physically transformed into the latter and incur a conversion cost. In the second model, a product can be directly used to satisfy the demand of another product without requiring any physical conversion. Both problems are computationally intractable in general. We develop dynamic programming algorithms that solve the problems in polynomial time when the number of products is fixed. A heuristic is also developed, and computational experiments are conducted to test the effectiveness of the heuristic and the efficiency of the optimal algorithm.