J’ai récemment été confronté à la problématique d’afficher des informations de clients non visibles depuis le back office.
Pour les voir il était donc nécessaire de se connecter comme ce client sur le front office du site avec la restriction de ne pas disposer du mot de passe client.

Après quelques recherche dans les classes Magento, j’ai trouvé une fonction qui correspondait parfaitement à mon besoin dans le fichier app/code/core/Mage/Customer/Model/Session.php
Cette fonction est la suivante :

/**
* Authorization customer by identifier
*
* @param   int $customerId
* @return  bool
*/
public function loginById($customerId)
{
$customer = Mage::getModel('customer/customer')->load($customerId);
if ($customer->getId()) {
$this->setCustomerAsLoggedIn($customer);
return true;
}
return false;
}

Elle permets de se connecter en tant que client en disposant uniquement de l’id client.…