W zdaniu 'He bought a shirt yesterday' słusznie został użyty czas Past Simple. Nie możesz w tym wypadku użyć Present Perfect.
Prawidłowe użycie tych dwóch czasów często jest kłopotliwe, jednak w bardzo prosty sposób można wyjaśnić zasadę, kiedy wybieramy PS a kiedy PP.
Czas Past Simple odnosi się do czynności, które miały miejsce w przeszłości, w pewnym okresie czasu, który już minął, natomiast Present Perfect do czynności, które miały/mają miejsce w okresie czasu, który trwa nadal.
'I did it yesterday' - czynność wykonana wczoraj, więc okres, w którym była wykonana już minął;
'I've done it today' - czynność wykonana dzisiaj, więc okres, w którym była wykonana trwa nadal... i może np. być wykonana ponownie;
'Shakespeare wrote a book' - napisał książkę, ale już więcej nie napisze, bo S. już wśród nas nie ma, okres wykonania czynności - jego życie, niestety, minęło...
'Michał Witkowski has written a book' - napisał i może jeszcze napisze nie jedną... ;-)
Mam nadzieję, że udało mi się wyjaśnić...