Esempio n. 1
0
 /**
  * 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;
 }
Esempio n. 2
0
 /**
  * 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();
     }
 }