Status 400 for AJAX POST Request with admin-ajax.php

You declared this:

wp_ajax_variation_add_to_cart_product

But then used this:

action: 'vl_ajax_add_to_cart',

Revealing the problem:

variation_add_to_cart_product != vl_ajax_add_to_cart

These 2 must match, and they do not.