Angry protesters threw stones at police, set fire to tyres and chanted anti-India slogans during the march in Kashmir’s summer capital on Saturday.
The authorities said six policemen were injured during the clashes.
“Allah is great! We want freedom!” the crowd shouted. Shops and businesses in many parts of the city closed as nearly 4,000 people took to the streets.
A witness of the death, Abdul Qadir, said: “Ailing Inayat Ulalh was on a routine stroll when the … [police] shot him dead yesterday evening.”
A police spokesman said they were investigating but early information showed the shopkeeper ignored a call by police to stop.
Syed Ali Shah Geelani, a Kashmiri separatist leader, led a funeral prayer for the shopkeeper.
“Under the pretext of the peace process, Indian forces have let loose reign of terror,” he told mourners.
Meanwhile, at least three suspected separatists were killed in a gun battle in a southern district of the Indian-controlled portion of Kashmir, police office SP Pani said.
The men were hiding in the village of Mirhama, 65km (40 miles) south of Srinagar, Pani said.
Indian authorities deny any systemic violation of human rights in Kashmir. They say all reports are investigated and any wrongdoers are punished.
More than 45,000 people have been killed in the state, which is India’s only Muslim majority province, since a revolt against New Delhi broke out in 1989.