_getCheckoutSession()->getLastRealOrder(); if ($order->getId()) { $quote = $this->_getQuote($order->getQuoteId()); if ($quote->getId()) { $quote->setIsActive(1) ->setReservedOrderId(null) ->save(); $this->_getCheckoutSession() ->replaceQuote($quote) ->unsLastRealOrderId(); return true; } } return false; } /** * Cancel last placed order with specified comment message * * @param string $comment Comment appended to order history * @return bool True if order cancelled, false otherwise */ public function cancelCurrentOrder($comment) { $order = $this->_getCheckoutSession()->getLastRealOrder(); if ($order->getId() && $order->getState() != Mage_Sales_Model_Order::STATE_CANCELED) { $order->registerCancellation($comment)->save(); return true; } return false; } /** * Return checkout session instance * * @return Mage_Checkout_Model_Session */ protected function _getCheckoutSession() { return Mage::getSingleton('checkout/session'); } /** * Return sales quote instance for specified ID * * @param int $quoteId Quote identifier * @return Mage_Sales_Model_Quote */ protected function _getQuote($quoteId) { return Mage::getModel('sales/quote')->load($quoteId); } }