Retailers raise over £500m for good causes