WalMart employs over a million American workers and provides prices that can't be met by products produced by union shops. Don't blame WalMart for your beefs - it goes a lot deeper than that. The words "Buy American" should have the addendum "Pay More - a message from your friendly union shop".
I don't have any illusions about the problem. You are right that it goes much deeper. Your point about it being an issue between Wal-Mart and unions, though, is very simplistic and wildly uninformed.
Again, you are correct the issue goes much deeper. Let's take that as a opener and try applying some critical thinking.