1. They have eaten Korean food before.

2. They ate Korean food before.
3. They had eaten Korean food before.
-----------
Are they all grammatical? Then what is the difference among them?

They are all grammatical.

1 indicates that they are still eating Korean food.
2 means that they ate Korean food in the past.
3 means that they had eaten Korean food at some time up to a time in the past.