/** * Re-añade los productos comprados a carrito nuevamente * * @param Mage_Sales_Model_Order $order * @return $this */ protected function _resuscitateCartItems(Mage_Sales_Model_Order $order, Mage_Core_Controller_Front_Action $action = null) { foreach ($order->getItemsCollection() as $orderItem) { try { $this->getCart()->addOrderItem($orderItem); } catch (Mage_Core_Exception $e) { /** @var Mage_Checkout_Model_Session $session */ $session = Mage::getSingleton('checkout/session'); if ($session->getUseNotice(true)) { $session->addNotice($e->getMessage()); } else { $session->addError($e->getMessage()); } if ($action) { $action->setRedirectWithCookieCheck('checkout/cart'); } } catch (Exception $e) { /** @var Mage_Checkout_Model_Session $session */ $session = Mage::getSingleton('checkout/session'); $session->addNotice($e->getMessage()); $session->addException($e, Mage::helper('checkout')->__('Cannot add the item to shopping cart.')); if ($action) { $action->setRedirectWithCookieCheck('checkout/cart'); } } } $this->getCart()->save(); return $this; }