"Subtemplates" for entry using routing?
You might check out the routing docs on accessing subpatterns in your templates.

Here is the example given in the docs (which provides the variables 'year' and 'month' to the template that correspond to the matched uri segments — which would match `news/2015/02'): 

'news/(?P&lt;year&gt;\d{4})/(?P&lt;month&gt;\d{2})' =&gt; 'news/_archive',


So I would presume you could do the same using your products (I'm terrible with regular expression though, so please check the match syntax).

'products/(?P&lt;slug&gt;[^/]+)/details' =&gt; 'products/_details',


Fyi, the variable is defined using (?P&lt;name&gt;...), where '...' is the pattern to match. So in this case the variable 'slug' (or whatever you defined it as in your regex pattern) should now be available as a variable in your template, which you can use to retrieve the entry. 

{% set entry = craft.entries.section('mySectionHandle').slug(slug).first() %}
{% if entry %}
    {{ entry.title }}
    ...
{% endif %}


When you create the link to that page you would naturally want to include the slug:

&lt;a href="products/{{ entry.slug }}/details"&gt;View details&lt;/a&gt;


Untested.