/** * @param Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus */ public function execute(Payone_Core_Model_Domain_Protocol_TransactionStatus $transactionStatus) { $storeId = $transactionStatus->getStoreId(); $storeBefore = $this->getApp()->getStore(); $areaBefore = $this->getDesign()->getArea(); // Set Store $store = $this->getApp()->getStore($storeId); $this->getApp()->setCurrentStore($store); // Load Area to get Translation $this->getApp()->loadAreaPart(Mage_Core_Model_App_Area::AREA_FRONTEND, Mage_Core_Model_App_Area::PART_TRANSLATE); $this->getApp()->loadAreaPart(Mage_Core_Model_App_Area::AREA_FRONTEND, Mage_Core_Model_App_Area::PART_DESIGN); $transactionStatus->setStatusRunning(); $transactionStatus->save(); try { $this->getServiceProcess()->execute($transactionStatus); $transactionStatus->setStatusOk(); } catch (Exception $e) { $transactionStatus->setStatusError(); $transactionStatus->setProcessingError($e->getMessage()); } $transactionStatus->setProcessedAt(date('Y-m-d H:i:s')); $transactionStatus->save(); // Reset Store $this->getApp()->setCurrentStore($storeBefore); // Reset Area to old Area $this->getDesign()->setArea($areaBefore); $this->getApp()->loadArea($areaBefore); }