add product sort func