Exemplo n.º 1
0
 /**
  * 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;
 }