edit product function and add two abstract method in abstract mapper