creating a custom shop page display on archive woocommerce

First of all, yes, and there are many ways to achieve this. The first thing you will want to do is create a child theme or plugin. One of those two is where you will be adding your code…

This can be done by using wp action pre_get_posts there is a great post that Remi Corson has here to explain more about modifying if only on the archive page:

from on of his examples (with a little mod):

// Load our function when hook is set
add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {

    // Check if on frontend and main query is modified
    if( ! is_admin() && $query->is_main_query() && is_post_type_archive( 'product' ) ) {

        $query->set( 'cat', '20' ); // whatever your category id is here

    }

}

something like the above (very much untested in your environment), but I think you can get the idea here…