observer magento

Magento : lister les méthodes exécutées par un évènement

Une petite astuce pour ceux qui veulent avoir la liste des méthodes qui vont être exécutées par un évènement magento.
Dans mon cas je souhaitais savoir les méthodes exécutées pour l’evènement « sales_order_save_after »

Voici le code a copier dans le controlleur de votre choix :

Zend_debug::dump(Mage::app()->getConfig()->getEventConfig('global', 'sales_order_save_after'));

Et voici le résultat :

object(Mage_Core_Model_Config_Element)#119 (1) {
  ["observers"] => object(Mage_Core_Model_Config_Element)#118 (3) {
    ["tax"] => object(Mage_Core_Model_Config_Element)#15 (2) {
      ["class"] => string(12) "tax/observer"
      ["method"] => string(24) "salesEventOrderAfterSave"
    }
    ["foomanjirafe_salesOrderSaveAfter"] => object(Mage_Core_Model_Config_Element)#108 (3) {
      ["type"] => string(9) "singleton"
      ["class"] => string(33) "Fooman_Jirafe_Model_OrderObserver"
      ["method"] => string(19) "salesOrderSaveAfter"
    }
    ["giftvoucher_order_save_after"] => object(Mage_Core_Model_Config_Element)#124 (3) {
      ["type"] => string(9) "singleton"
      ["class"] => string(20) "giftvoucher/observer"
      ["method"] => string(14) "orderSaveAfter"
    }
  }
}

Magento : lister les méthodes exécutées par un évènement Lire la suite »

Magento : Possibilité de s’identifier comme n’importe quel client sur le front office.

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.…

Magento : Possibilité de s’identifier comme n’importe quel client sur le front office. Lire la suite »