If we have different prices for products based upon member type. For example, a non-member pays X, a member pays Y, special member type pays Z. Would the best way to handle this be to create a product variant for the member type or would a pricing tier be preferred?
This scenario isn't supported out of the box and always there are a few different ways to achieve results like this.
One possible solution would be to use the Pricebook functionality. You could create a different Pricebook to contain the each of the tiers of pricing, then dynamically switch the pricebook that is used when the user logs in?