(generally Mage/Checkout/controllers/OnepageController.php)
<?php
public function failureAction()
{
$lastQuoteId = $this->getOnepage()->getCheckout()->getLastQuoteId();
$lastOrderId = $this->getOnepage()->getCheckout()->getLastOrderId();
if ($lastQuoteId && $lastOrderId) {
$orderModel = Mage::getModel('sales/order')->load($lastOrderId);
if($orderModel->canCancel()) {
$quote = Mage::getModel('sales/quote')->load($lastQuoteId);
$quote->setIsActive(true)->save();
$orderModel->cancel();
$orderModel->setStatus('canceled');
$orderModel->save();
Mage::getSingleton('core/session')->setFailureMsg('order_failed');
Mage::getSingleton('checkout/session')->setFirstTimeChk('0');
$this->_redirect('kcheckout/index/payment', array("_forced_secure" => true));
return;
}
}
if (!$lastQuoteId || !$lastOrderId) {
$this->_redirect('checkout/cart', array("_forced_secure" => true));
return;
}
$this->loadLayout();
$this->renderLayout();
}
?>
0 Comments