blog sur le développement web, jquery,css3, Magento, Symphony, php et bien d'autres choses

Articles tagués ‘Nicolas Bastien’

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

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 295 autres abonnés