Respostas:
Os produtos no WooCommerce são um tipo de postagem personalizado, portanto, isso deve funcionar:
$url = get_permalink( $product_id );
Você pode tratar isso $product_id
como um postID (é isso que é), para poder usá-lo com outras funções normais do WP, como:
echo '<a href="'.get_permalink($product_id).'">'.get_the_title($product_id).'</a>';
add_to_cart_url()
faz o que pedi acima.