I have a feeling that Product and ProductTemplate classes are related somehow (e.g. Product extends ProductTemplate). If I'm right, you can just return the base class (ProductTemplate in this case).
Tomas Lycken suggested to use generic method, which is in my opinion quite good idea, but if there's a common interface for Product and productTemplate, you can just return that interface as well instead of Product and ProductTemplate.
Example (by Tomas Lycken):
public static T ConvertTo<T>(this Document doc) where T : SomeBaseClassOrInterface
{
return null;
}
Example (by me):
public static SomeBaseClassOrInterface ConvertTo(this Document doc)
{
return null;
}
And if there's no common interface and you don't want to create a new one, please just change names :)