Magento-1 – Fix Fatal Error: Call to a Member Function getSize() on a Non-Object

magento-1product-view

i am using following code in view.phtml :

$sellerProductInfo = $this->getSellerProductInfo($productowner['userid']);

if ($sellerProductInfo->getSize() == 0) {
$rowsocial= Mage::getModel('marketplace/userprofile')->getPartnerProfileById($productowner['userid']);
} else {
 $sellersProductInfo = $this->getSellerProductInfo();
 if ($sellersProductInfo->getSize() > 0) {
   $sellerId = $sellersProductInfo->getFirstItem()->getSellerId();
   $rowsocial = Mage::getModel('marketplace/userprofile')->getPartnerProfileById($sellerId);
 }
}

but i am getting error : Fatal error: Call to a member function getSize() on a non-object in line : if ($sellerProductInfo->getSize() == 0)

Best Answer

This means your $sellerProductInfo is not an object and you are calling the function getSize() in non-object.

I am not sure what $this->getSellerProductInfo($productowner['userid']) function does, but to get rid of your error you can add this condition:

$sellerProductInfo = $this->getSellerProductInfo($productowner['userid']);

if($sellerProductInfo){ //check if this returns true
  if ($sellerProductInfo->getSize() == 0) {
  $rowsocial= Mage::getModel('marketplace/userprofile')->getPartnerProfileById($productowner['userid']);
  } else {
   $sellersProductInfo = $this->getSellerProductInfo();
   if ($sellersProductInfo->getSize() > 0) {
     $sellerId = $sellersProductInfo->getFirstItem()->getSellerId();
     $rowsocial = Mage::getModel('marketplace/userprofile')->getPartnerProfileById($sellerId);
   }
  }
}

Remember

Your above script will never get called if $this->getSellerProductInfo($productowner['userid']) doesn't return anything.