Stocking retail assortments under dynamic consumer substitution