Magento connect as: se connecter en tant que client depuis l’admin

Ce script est maintenant totalement fonctionnel!
Pour ceux qui souhaitent, dans magento, pouvoir se connecter à la place d’un de leur client depuis l’admin , le code qui suit pourra fortement vous interesser. En effet il va vous permettre depuis l’administration de magento de vous connecter à la place de votre client afin de l’aider à résoudre un problème auquel il est confronté dans sa session, l’admin pourra ainsi l’aider plus efficacement.
public function connectAsAction() {
if (!Mage::getSingleton('admin/session') ->isAllowed('customer/connectas')) {
echo 'You are not allowed to connect as another user'; return;
}
$customerId = $this->getRequest()->getParam('id');
$customer = Mage::getModel('customer/customer') ->load($customerId);
if ($customer->getId() != $customerId) { echo 'User not found.'; return; }
$preferedStoreViewId = $customer->getPreferedStoreViewId();
if (!$preferedStoreViewId > 0) {
$customer->getWebsiteId();
$preferedStoreViewId = Mage::app() ->getWebsite($customer->getWebsiteId())
->getDefaultStore() ->getStoreId();
} session_write_close();
//Suppression du cookie 'frontend'
$params = session_get_cookie_params();
setcookie(
'frontend',
'',
time() - 42000,
$params["path"],
$params["domain"],
$params["secure"],
$params["httponly"]
);
//Here we need to write on the session
//corresponding to the frontend website
session_regenerate_id();
session_name('frontend');
session_start();
$customer->setPreferedStoreViewId($preferedStoreViewId);
//We set the customer and its store view
Mage::app()->setCurrentStore( Mage::getModel('core/store')
->load($preferedStoreViewId) );
Mage::getSingleton('customer/session')
->setCustomerAsLoggedIn($customer);
//We need to write data before continuing
//in the normal magento process session_write_close();
//Redirect to the front on the specific store view
$this->_redirectUrl(Mage::app()
->getStore($preferedStoreViewId)
->getBaseUrl());
}
Merci à Nicolas Bastien, chef de projet PHP à Lyon pour ce code.
Pour finir, si vous aussi vous rencontrez des problèmes de lenteurs sur votre boutique je vous conseil de jeter un oeil à cet article sur l’optimisation de Magento