Em um método Observer, como você diz ao Magento para não processar o código após o evento despachado
Tenho algum código no check-out em que defino uma chave na sessão, se essa chave estiver definida como false em qualquer lugar do check-out, preciso enviá-los de volta à página de cobrança. Eu tenho o código para ele, mas também não posso ter nenhum código que normalmente é executado após o observador, porque ele chama um serviço de terceiros e volta errado por causa dessa chave que está faltando na sessão
Aqui está meu código, tenho tudo o que quero, mas preciso que a resposta ocorra imediatamente e para que nada após a linha de evento despachada seja acionada apenas a resposta enviada de volta ao navegado
public function checkForOrdKey(Varien_Event_Observer $observer)
{
$controllerAction = $observer->getControllerAction();
$request = $controllerAction->getRequest();
$controllerName = $request->getControllerName();
$stepData = $this->_getCheckoutSession()->getStepData();
$ordKeyRemoved = $this->_getCheckoutSession()->getOrdKeyRemoved();
// if it is the checkout onepage controller or inventory controller don't do anything
if (isset($controllerName) && $controllerName === "onepage" && $stepData['shipping']['complete'] && $ordKeyRemoved) {
$this->_getCheckoutSession()->setStepData('shipping', 'complete', false);
$result['goto_section'] = 'billing';
Mage::app()->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
$this->_getCheckoutSession()->setOrdKeyRemoved(false);
}
}