price must greater than 0