You would use a child theme along with custom page templates: https://developer.wordpress.org/themes/template-files-section/page-template-files/page-templates/
For products/post types, you would do the same but the file name needs to be specific to the post type: https://codex.wordpress.org/Post_Type_Templates
The starting point is to grab a GP template (page.php for example), copy it to your child theme and change the file name/add the page template tag at the top.
Then you’re free to build your template.
Let me know if you need more info 🙂