/** * Retrieve * * @param Mage_Sales_Model_Order_Item $item * @return unknown */ public function itemToQuoteItem(Mage_Sales_Model_Order_Item $item) { $quoteItem = Mage::getModel('sales/quote_item')->setStoreId($item->getStoreId())->setQuoteItemId($item->getId())->setProductId($item->getProductId())->setSuperProductId($item->getSuperProductId())->setParentProductId($item->getParentProductId())->setSku($item->getSku())->setName($item->getName())->setDescription($item->getDescription())->setWeight($item->getWeight())->setCustomPrice($item->getPrice())->setDiscountPercent($item->getDiscountPercent())->setDiscountAmount($item->getDiscountAmount())->setTaxPercent($item->getTaxPercent())->setTaxAmount($item->getTaxAmount())->setRowWeight($item->getRowWeight())->setRowTotal($item->getRowTotal())->setAppliedRuleIds($item->getAppliedRuleIds())->setBaseDiscountAmount($item->getBaseDiscountAmount())->setBaseTaxAmount($item->getBaseTaxAmount())->setBaseRowTotal($item->getBaseRowTotal()); return $quoteItem; }
/** * 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(); } }
/** * load option data for $item * * @param Mage_Sales_Model_Order_Item * @return Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection */ protected function loadOrderItemOptions(Mage_Sales_Model_Order_Item $item) { $buyRequest = $item->getProductOptionByCode('info_buyRequest'); $attrs = isset($buyRequest['super_attribute']) ? $buyRequest['super_attribute'] : []; $attrTable = ['attribute_table' => Mage::getSingleton('core/resource')->getTableName('eav/attribute')]; $options = Mage::getResourceModel('eav/entity_attribute_option_collection'); // join with the attribute table to get the attribute code. $options->getSelect()->join($attrTable, 'main_table.attribute_id=attribute_table.attribute_id', ['attribute_code']); $options->setStoreFilter($item->getStoreId()); $options->addFieldToFilter('main_table.attribute_id', ['in' => array_keys($attrs)]); $options->addFieldToFilter('main_table.option_id', ['in' => array_values($attrs)]); return $options; }
/** * Tries to load Google shopping info related to order item * * @param Mage_Sales_Model_Order_Item $item * @return array|null Null if cannot load; array if can */ protected function _getGoogleShoppingItemInfo(Mage_Sales_Model_Order_Item $item) { $helper = Mage::getSingleton('googletrustedstore/googleShoppingAdapter'); if ($helper->isActive()) { $product = Mage::getModel('catalog/product')->load($item->getProductId()); if ($product->getId()) { $storeId = $item->getStoreId(); $gsItemId = $helper->getItemId($product, $storeId); if ($gsItemId) { return array('id' => $this->escapeHtml($gsItemId), 'account_id' => $this->escapeHtml($helper->getAccountId($storeId)), 'country' => $helper->getTargetCountry($storeId), 'language' => $helper->getTargetLanguage($storeId)); } } } }
/** * Returns SimpleOrderLineData record * * @param Mage_Sales_Model_Order_Item $item * @return array */ protected function _createSimpleOrderLineData(Mage_Sales_Model_Order_Item $item) { /** @var $product Mage_Catalog_Model_Product */ $product = Mage::getModel('catalog/product')->setStoreId($item->getStoreId())->load($item->getProductId()); $data = array('orderLineId' => null, 'itemId' => (string) $item->getId(), 'orderNumber' => (string) $this->getOrderNumber(), 'quantity' => (double) $item->getQtyOrdered(), 'productSku' => (string) $item->getSku(), 'itemDescription' => (string) ($product->getShortDescription() ? $product->getShortDescription() : $product->getDescription()), 'unitPrice' => $this->_createOrderLinePrice($item, $item->getQtyOrdered()), 'totalTaxAmount' => $this->_createCurrencyAmount($item->getTaxAmount()), 'status' => $this->_createOrderItemStatus($item), 'price' => $this->_createCurrencyAmount($item->getBaseRowTotal()), 'allDiscounts' => null, 'dateCancelled' => null, 'dateDelivered' => null, 'dateShipped' => null, 'dateReturned' => null, 'dateInvoiced' => null, 'destination' => $this->_createShipTo($item->getOrder()->getShippingAddress()), 'shipmentId' => null, 'offerId' => null, 'offerUrl' => null); return $data; }
/** * @param Mage_Sales_Model_Order_Item $item * @return array|bool|string */ protected function _getTaxClassId(Mage_Sales_Model_Order_Item $item) { return Mage::getResourceModel('catalog/product')->getAttributeRawValue($item->getProductId(), 'tax_class_id', $item->getStoreId()); }
/** * @param Mage_Sales_Model_Order_Item $orderItem * * @return string */ public function getFrontendProductUrlForOrderItem(Mage_Sales_Model_Order_Item $orderItem) { $productId = $orderItem->getProductId(); if ($orderItem->getParentItemId()) { $parentItem = Mage::getModel('sales/order_item')->load($orderItem->getParentItemId()); $productId = $parentItem->getProductId(); } $product = Mage::getModel('catalog/product')->setStoreId($orderItem->getStoreId())->load($productId); if (null === $product->getId()) { return '#'; } return $product->getProductUrl(); }