It's usually not the store that does it (alone). I worked data storage for a company that pulls customer buying information from grocery stores, retail outlets, large financial institutions, well, just about from everyone. Major banks foward them your credit card sweeps about the same time it shows up on your online statement.
Last I was there, roughly three years ago, they had 87 ASSUMED data fields on over 30 million consumers, which were extrememly accurate. 12 employees to support a 7 TB oracle RAC.