First of all, you need to know that we do not have future tense. In Japanese, present tense is used as future tense. That means if you say ‘行きます。’, that will be ‘I will go’ in English. Grammatically, it is called present tense, though.
Firstly, 行く(to go)
We use the verb 行く (いく・to go) before we leave where you usually are, or live.
Firstly, you need to know the chronological order of this verb. Please see the picture below. The left side is casual form and the right side is formal form.
As you can see in the picture, depending on the tense, the translation into English changed. This is how we (Japanese native speakers) see the scene with this verb.
Chronological order #2 is only for a second. Once someone left the place, the status that he is gone, which is #3, has already started and is continuing. We see continuation and duration when we hear/use て form + いる.
What about this one?
We omit Subject if it is clear. When we see the verb chronologically, the subject will change as in the picture above and natural translation into English will be like that.
However, if you want to say, for example, ‘I went to Japan’, you can say ‘日本（にほん）に行きました。’. With this sentence, you mention simply the fact that you went to Japan for a short period (not to live, to travel).
You can say this, or in this situation, I would use the phrase for talking about special experience (we do not use this form when we talk about usual experience, such as I have eaten bread, etc.), which is ‘日本に行ったことがあります。‘. This phrase means ‘I have been to Japan’.
We do not say 来る to say ‘I am coming.’. Because when you say I am coming, it is before you leave the place you currently are.
Next, 来る(to come)
Basically, we will use 来る when we are talking about somebody will come towards me.
This verb is also change the subject depending on the tense. Let’s see the chronological chart below.
Third person as a subject works in every tense. However, first person does not work if it is in the present tense.
a perspective of the 1st person and his/her movements
The chart above is a perspective of the 1st person and his/her movements. #3. ‘I am in a supermarket.’ is using the verb 来るwith the form 来ているwhich is て form + いる, sounds like you know Japanese well because this is not the basic phrase Japanese learners can make. スーパーにいる。, which is an exact transaction of ‘I am in a supermarket.’, is totally correct and we use it in daily conversation.