The single.php
template is loaded when you visit a post. The archive.php
page is a generic archive template, loaded in case a grouping of posts (a year, a month, a category, a tag, etc.) does not have it’s own template.
Please read this about template hierarchy.
If you want to create a custom post template for a specific post_type
you have to create a dedicated template and call if single-post_type.php
(replace post_type
with your post type, i.e. product
).