Show products based on the location (country) of the visiting user
According to the countries module page:


  Views Integration 
  
  The 2.x branch supports View operations. The views filter is supported via 'select list' in the following way:
  
  
  Create a Relationship (under 'Advanced') to 'Field: Country (field-country)' ('Country' being the field label, 'field_country' the field name).
  
  
  The field is shown twice in the list
  
  Field: Country
  
  Field: Country (field-country)
  
  The first one is not working. This broken relationship has been removed in the latest dev version. 
  
  
  Add a Field/Filter/Sort of type 'Countries: xyz' with the new relationship.
  


Also, you might consider Nick's answer for hiding the product "Add to cart" based on country.