Si en tu tienda no quieres mostrar solo las categorías, o solo los productos, puedes mostrar una sección por cada categoría. Modifica el atributo limit del shortcode para cambiar la cantidad de productos de cada categoría.

/* Separar productos por categorias */
//1. Ocultamos los productos de la tienda
add_action('pre_get_posts', 'nwp_ocultar_productos_tienda_woo');

function nwp_ocultar_productos_tienda_woo($q) {
    if (!$q - > is_main_query()) return;
    if (!$q - > is_post_type_archive()) return;
    if (!is_admin() && is_shop()) {
        $q - > set('post__in', array(0));
    }
    remove_action('pre_get_posts', 'nwp_ocultar_productos_tienda_woo');
}

//2. Ocultamos el mensaje de error de que no hay productos
remove_action('woocommerce_no_products_found', 'wc_no_products_found');

//3. Agregamos la visualizacion de productos separados por categorias
add_action('woocommerce_no_products_found', 'nwp_4_productos_cat_woo');

function nwp_4_productos_cat_woo() {
    $args = array(
        'parent' => 0,
        'hide_empty' => true,
        'taxonomy' => 'product_cat',
        'fields' => 'slugs',
    );
    $categories = get_categories($args);
    foreach($categories as $category_slug) {
        $term_object = get_term_by('slug', $category_slug, 'product_cat');
        echo '<hr><h2>'.$term_object - > name.
        '</h2>';
        echo do_shortcode('[products limit="4" columns="4" category="'.$category_slug.
            '"]');
        echo '<p><a href="'.get_term_link($category_slug, 'product_cat').
        '">Ver todos los productos en '.$term_object - > name.
        '&rarr;</a>';
    }
}

Herramientas