An Optimization Model for Multi-Echelon Multi-Commodity Supply Chain Design with Side Constraints. (August 2019)