It happened around noon Saturday at the Walmart on North West End Boulevard in Quakertown.
Richland Township police release surveillance video from the store on Tuesday.
"As of right now, we're not certain if somebody said something, or whether or not somebody perceived somebody to be looking at somebody," said police Chief Richard Ficco.
The video shows the suspect walking in the store with a woman who was pushing a cart with a child.
The suspect then punches the 16-year-old victim in the face.
"At this point in time we'd like to speak to the person that actually struck the child so we can figure out what actually happened," Ficco added.
Police said the suspect then immediately left the store and fled in a white SUV.
Authorities released a photo of the man leaving the store.
Shoppers at the store were horrified by the video.
"No, there's no justification for something like that, like even if it's a grown person mouthing off, there's no reason to be physical with anybody like that," said resident Andrew Patton.
"No one should strike each other. It just should not be that way. There's other ways to express that you're upset about something other than striking someone," added Janet Huffer from Bechtelsville.
Anyone with information is asked to contact Officer Michael Colahan at 215-536-9500.