Posts Tagged ‘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"
    }
  }
}
Pas de commentaires

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

Pas de commentaires


Archives

Compte Github