I've had many days like this, and they make me feel like a bad mom... I know how you feel. It usually seems to happen when you're shopping on a busy day in a store, and your kid just goes wild. And when I go shopping, I always see at least one or two other families struggling with strong-willed kids screaming for a toy, or running away. It's pretty normal... not fun, but normal.
That being said, your older son needs to know there are consequences for running away and for hitting you. It is not safe to run away from you, nor is it safe for him to hit you. Maybe you should talk to your son and remind him about how it is not safe to run away from an adult he knows, and that when he hits you, it hurts. He should apologize for the hitting, and maybe you can also apologize for hitting him (just my opinion, as I think it shouldn't happen either way).
Sounds like your boys were tired, as they put themselves down for a nap, too. Back to school shopping can be a challenge - don't worry - you're not the only one! Sorry you had such a rough time. Follow through with consequences for your son's behavior, and be consistent. When this kind of behavior happens with my son, I will get down to eye-level with him, and talk to him, right then and there, immediately after whatever it is he did. Once, I did this when he ran away from me at a Target, and I spoke very sternly to him. An old lady was watching me, and followed me out of the store. I thought she was going to reprimand me for being mean to my son, but instead she complimented me on my parenting, and said that more parents need to be so on top of things. I was definitely surprised, but I think it is best when you are firm, but loving with your child. They do need boundaries, and in the end, they do appreciate it.