/** * Prepare item data to process refund * * @param Varien_Object $dataObject * @param Mage_Sales_Model_Order_Item $orderItem * @return array */ public function prepareCreditMemoItemData($dataObject, $orderItem) { $data = array(); $itemId = $orderItem->getId(); if (!$dataObject->getData("creditmemo/items/{$itemId}/qty")) { $itemId = $orderItem->getParentItemId() ? $orderItem->getParentItemId() : $orderItem->getId(); } $data['back_to_stock'] = $dataObject->getData("creditmemo/items/{$itemId}/back_to_stock"); $data['refund_qty'] = $dataObject->getData("creditmemo/items/{$itemId}/qty"); $data['return_type'] = $dataObject->getData("creditmemo/select-warehouse-supplier/{$itemId}"); $data['warehouse_id'] = $dataObject->getData("creditmemo/warehouse-select/{$itemId}"); $data['warehouse_id'] = $data['warehouse_id'] ? $data['warehouse_id'] : $dataObject->getData('warehouse_id'); if (!$data['warehouse_id']) { /* load warehouse_id from order_id */ $data['warehouse_id'] = Mage::getModel('inventoryplus/warehouse')->getIdFromOrderId($orderItem->getOrderId()); $dataObject->setData('warehouse_id', $data['warehouse_id']); } $data['warehouse'] = $this->_getWarehouse($data['warehouse_id']); $data['order_item'] = $orderItem; $data['order'] = $dataObject->getOrder(); $data['creditmemo'] = $dataObject->getCreditmemoObject(); $refundQtys = $this->_calculateRefundedQty($dataObject, $orderItem); $data['refund_qty'] = $refundQtys; /* get original warehouse of order */ $orgWarehouse = $this->_getOrgWarehouse($orderItem->getOrderId()); $data['org_warehouse'] = $orgWarehouse; /* prepare data */ $this->_prepareWarehouseRefundData($data); $this->_prepareWarehouseOrderData($data); $this->_prepareWarehouseProductData($data); return $data; }
/** * Sync the given order item to Klevu. Returns true on successful sync and * the error message otherwise. * * @param Mage_Sales_Model_Order_Item $item * * @return bool|string */ protected function sync($item) { if (!$this->getApiKey($item->getStoreId())) { return "Klevu Search is not configured for this store."; } $parent = null; if ($item->getParentItemId()) { $parent = Mage::getModel("sales/order_item")->load($item->getParentItemId()); } $response = Mage::getModel("klevu_search/api_action_producttracking")->execute(array("klevu_apiKey" => $this->getApiKey($item->getStoreId()), "klevu_type" => "checkout", "klevu_productId" => Mage::helper("klevu_search")->getKlevuProductId($item->getProductId(), $parent ? $parent->getProductId() : 0), "klevu_unit" => $item->getQtyOrdered() ? $item->getQtyOrdered() : ($parent ? $parent->getQtyOrdered() : null), "klevu_salePrice" => $item->getPriceInclTax() ? $item->getPriceInclTax() : ($parent ? $parent->getPriceInclTax() : null), "klevu_currency" => $this->getStoreCurrency($item->getStoreId()), "klevu_shopperIP" => $this->getOrderIP($item->getOrderId()))); if ($response->isSuccessful()) { return true; } else { return $response->getMessage(); } }