Beispiel #1
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();
     }
 }
 /**
  * Set correct item prices ((original price / new qty) * old qty)
  *
  * @param Mage_Sales_Model_Order_Item $orderItem
  * @param int $oldQty
  * @param int $newQty
  * @return Mage_Sales_Model_Order_Item
  */
 protected function _correctPrices($orderItem, $oldQty, $newQty)
 {
     $orderItem->setPrice($orderItem->getPrice() / $newQty * $oldQty);
     $orderItem->setBasePrice($orderItem->getBasePrice() / $newQty * $oldQty);
     $orderItem->setOriginalPrice($orderItem->getOriginalPrice() / $newQty * $oldQty);
     $orderItem->setBaseOriginalPrice($orderItem->getBaseOriginalPrice() / $newQty * $oldQty);
     $orderItem->setPriceInclTax($orderItem->getPriceInclTax() / $newQty * $oldQty);
     $orderItem->setBasePriceInclTax($orderItem->getBasePriceInclTax() / $newQty * $oldQty);
     return $orderItem;
 }