/** * 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; }