refine and sort products, only perform one shutl call