Custom field within shortcode

If you want to put the custom fields inside the shortcode…you actually should put the custom fields inside the shortcode. Be sure that your fields content does not get echoed, according to ACFs resources you have to use get_field($field_name) within the loop. Try:

<?php echo print_wp_cart_button_for_product(get_field('product_name'), get_field('product_price')); ?>