Sorry for the late answer and hope it is still relevant to you.
If you look at the implementation of the \XLite\Model\Profile::getName() method you will see its implementation as follows:
public function getName($useDefault = true)
$address = $this->getBillingAddress() ?: $this->getShippingAddress();
return $address && ($address->getFirstname() || $address->getLastname())
? trim($address->getFirstname() . ' ' . $address->getLastname())
: ($useDefault ? $this->getDefaultName() : '');
protected function getDefaultName()
In short words, X-Cart tries to pull either billing or shipping address, but if there are none and $useDefault is not passed or passed as true, it will either return 'Customer' or 'Admin' depending on the user type. If the $useDefault param is passed as 'false', it will return the empty string as you would expect.
So, you should just call it like this
Originally Posted by amarquis
If a vendor removes all addresses from his address book, why does the following function return "Administrator" ??