проверте сначала в контроллере переменные определены или нет
выше этой строчки
$data['firstname'] = $this->customer->getFirstName();
для верности проверить еще $this->customer->getId()
пропишите
echo $this->customer->isLogged()."-".$this->customer->getId()."-".$this->customer->getFirstName()."-".$this->customer->getLastName(); exit;
больше чем уверена что выдаст пустоту, скорее всего вы проверяете не авторизовавшись как покупатель.
я бы написала в контроллере так для уверенности
if ($this->customer->isLogged()) {
$data['firstname'] = $this->customer->getFirstName();
$data['lastname'] = $this->customer->getLastName();
} else {
$data['firstname'] = '';
$data['lastname'] = '';
}