WP_Query for products always returns empty

Your arguments should look like this :

$args = array(
  'post_type' => 'product', // No need for an array since you only query one post type
  'posts_per_page' => 3,
  'tax_query'=>array(      // The taxonomy query
      array(
        'taxonomy'  => 'product_cat',
        'field'     => 'term_id', // Can be omitted, default parameter, can also be 'slug' or 'name' (name should be avoided as @Pieter Goosen says)
        'terms'     => 280       // You can use an array to include multiples terms i.e. array(280,281)
      )
  )
);

It doesn’t work because wordpress only handle native taxonomy (category), for custom taxonomies, you must use a tax_query.