Первое, вы при каждом получении свойства будете лезть в апи, нужно делать подобие кэша
private function getDetail()
{
if (!$this->detailCache) {
// Здесь запрос к API который возвращает JSON с информацией о товаре.
$this->detailCache = $data;
}
return $this->detailCache;
}
Второе, все свойства должны быть приватными или защищенными
Третье, метод который лезет в апи не должен быть публичным