I'm sorry you were out of line. It would be best to take care of the customer and make sure they got unexpired yogurt and apologize they had to see there was expired yogurt out there, and assure them that the mistake would not happen again. I bet the customer would have been just as happy, and went on with their day and gave it no more thought.
After the customer has left....THEN speak with the the person in charge, or the "acting person in charge" immediately in private to get the situation resolved. There really is no reason to be yelling at anybody. If you had taken a bit more of a professional approach, that Asst Mgr would have looked into it, and somebody would have been reprimanded. It is not your place to yell at somebody you report to. (on the other hand, your supervisor had yelled at you in front a customer, that would have been equally inappropriate). That behavior is completely unacceptable, and you are probably lucky you still have a job.