The 50-year-old was working at the Best One Food Store in Dundee when a man entered the shop and attacked him.
The assailant fled in Cleghorn Street. Police said a man aged 33 has been arrested and charged in connection with the incident at around 6.15pm on Saturday.
The shopkeeper suffered a neck and chest injury and has undergone surgery at the city's Ninewells Hospital. His condition is described as serious but stable.
Detective Inspector Brian Smith said: "This was a particularly brutal assault on the shopkeeper and I would urge anyone who witnessed the incident who has not yet spoken to police to get in touch."
Meanwhile, police in Dundee are also continuing to investigate an armed robbery at the Super City News convenience store on Lochee Road on Friday afternoon.
At around 1.30pm a man entered the shop and threatened a female assistant with a knife before stealing a three-figure sum.
The man is described as 20 to 30 years old, slim, and was wearing a dark-coloured hooded jacket, jeans and white trainers.