/** * Adds new items to order * @param TinyBrick_OrderEdit_Model_Order $order * @param array $data * @return boolean */ public function edit(TinyBrick_OrderEdit_Model_Order $order, $data = array()) { $comment = ""; if ($data['simplesku']) { $producttype = 'simplesku'; } else { $producttype = 'sku'; } foreach ($data[$producttype] as $key => $sku) { $qty = $data['qty'][$key]; $product = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('sku', $sku)->addAttributeToSelect('*')->getFirstItem(); $stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product); $stockItem->subtractQty($qty); $stockItem->save(); $quoteItem = Mage::getModel('sales/quote_item')->setProduct($product)->setQuote(Mage::getModel('sales/quote')->load($order->getQuoteId())); //$quoteItem->setOptions(array(501=>36, 502=>41)); $orderItem = Mage::getModel('sales/convert_quote')->itemToOrderItem($quoteItem)->setProduct($product); $productPrice = $data['price'][$key]; //$options = array(501=>36, 502=>41); //$orderItem->setProductOptions($options); //$orderItem->addAttribute($options); $orderItem->setPrice($productPrice); $orderItem->setBasePrice($productPrice); $orderItem->setBaseOriginalPrice($productPrice); $orderItem->setOriginalPrice($productPrice); $orderItem->setQtyOrdered($qty); if ($data['discount'][$key]) { $orderItem->setDiscountAmount($data['discount'][$key]); } else { $orderItem->setDiscountAmount(0); } $orderItem->setOrderId($order->getId()); $orderItem->setOrder($order); $orderItem->save(); $order->addItem($orderItem); $order->save(); $comment .= "Added item(SKU): " . $sku . "<br />"; } if ($comment != "") { $comment = "Added new items:<br />" . $comment; return $comment; } return true; }
/** * Declare quote model instance * * @param Mage_Sales_Model_Quote $quote * @return Mage_Sales_Model_Quote_Payment */ public function setOrder(TinyBrick_OrderEdit_Model_Order $order) { $this->_order = $order; $this->setOrderId($order->getId()); return $this; }