Part of their problem is that the strategy of skimping on labor costs is starting to catch up to them. Every time I go into a Walmart, I see pallets of product still shrink-wrapped sitting in the middle of aisles. I see empty shelves or misplaced items. That's what happens when you run a massive store on a skeleton crew.
I've noticed this too. Remember that lots of people (especially over 40) still don't shop online. In another 10 years this trend will be even stronger, as people will be less willing to leave their houses for cheap products/crappy service.