Для заполнения пропуска необходимо выбрать один из вариантов: has gone или has been. Так как Джон еще не вернулся из супермаркета, нужно использовать конструкцию has gone.
Ответ: has gone