Officials say the officer was on routine patrol around 5:30 a.m. when he pulled up into the store and noticed a vehicle running.
"He ran the tag and didn't stop the vehicle right then. He drove around the parking lot and came back in and the tag came back as a stolen vehicle out of Bristol Rownship," said Chief George McClay, Morrisville Police.
The officer ran the license plates and discovered the car was stolen.
He then tried to approach the vehicle and that's when the suspect allegedly put the car in reverse and hit the officer and his patrol car.
The suspect then took off but the officer was able to fire off two shots, striking the suspect in the chest.
The suspect eventually crashed the car up an embankment with a bullet hole in the back door on the 800 block of West Bridge Street.
He was taken to St. Mary's Hospital in Langhorne, listed in critical but stable condition. He is now facing attempted murder charges.
The officer, who is a six year veteran of the department, was treated at Aria Health Torresdale campus and released.