Example #1
0
 /**
  * Convert order item to quote item(for re-order action New method is created)
  *
  * @param Mage_Sales_Model_Order_Item $orderItem
  * @param mixed $qtyFlag if is null set product qty like in order
  * @return Mage_Checkout_Model_Cart
  */
 public function addOrderItemReorder($orderItem, $action = null, $qtyFlag = null)
 {
     /* @var $orderItem Mage_Sales_Model_Order_Item */
     if (is_null($orderItem->getParentItem())) {
         $product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($orderItem->getProductId());
         if (!$product->getId()) {
             return $this;
         }
         $info = $orderItem->getProductOptionByCode('info_buyRequest');
         $info = new Varien_Object($info);
         if (is_null($qtyFlag)) {
             $info->setQty($orderItem->getQtyOrdered());
         } else {
             $info->setQty(1);
         }
         if ($orderItem->getPckOption()) {
             $info->setPckOption($orderItem->getPckOption());
         }
         if ($orderItem->getPckSku()) {
             $info->setPckSku($orderItem->getPckSku());
         }
         if ($orderItem->getPckQty()) {
             $info->setPckQty($orderItem->getPckQty());
         }
         if ($action == 'reorder') {
             $info->setActionType($action);
         }
         $this->addProduct($product, $info);
     }
     return $this;
 }