A shopkeeper fought off a gunman by throwing drink cans at him, during a robbery at his off licence.