Url to archive page for custom post type

First of all, before you do anything, make sure that you have flushed your permalinks, a 404 usually is a hint that you did not flush your permalinks after you created your custom post type the first time around.

get_post_type_archive_link() will return the URL to the post type archive page, so you would do the following

echo get_post_type_archive_link( 'products' );

to get the correct URL

As for a custom template, you can create an archive template called archive-products.php to display your products on. WordPress will automatically pick that template up and use it when you visit the products archive page