we should load all products and pass them in somehow make sure this doesn't hit couch redundantly across product / supply point pairs