/** * Return the last placed order meta data for the customer. * * @return Nosto_Tagging_Model_Meta_Order the order meta data model. */ public function getLastOrder() { $orderId = Mage::getSingleton('checkout/session')->getLastOrderId(); /** @var Mage_Sales_Model_Order $order */ $order = Mage::getModel('sales/order')->load($orderId); $meta = new Nosto_Tagging_Model_Meta_Order(); if ($order instanceof Mage_Sales_Model_Order) { $meta->loadData($order); } return $meta; }
/** * Exports completed orders from the current store. * Result can be limited by the `limit` and `offset` GET parameters. */ public function orderAction() { if (Mage::helper('nosto_tagging')->isModuleEnabled()) { $pageSize = (int) $this->getRequest()->getParam('limit', 100); $currentOffset = (int) $this->getRequest()->getParam('offset', 0); $currentPage = $currentOffset / $pageSize + 1; $orders = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('store_id', Mage::app()->getStore()->getId())->setPageSize($pageSize)->setCurPage($currentPage); if ($currentPage > $orders->getLastPageNumber()) { $orders = array(); } $collection = new NostoExportOrderCollection(); foreach ($orders as $order) { $meta = new Nosto_Tagging_Model_Meta_Order(); // We don't need special items like shipping cost and discounts. $meta->includeSpecialItems = false; $meta->loadData($order); $collection[] = $meta; } $this->export($collection); } }
/** * Sends an order confirmation API request to Nosto if the order is completed. * * Event 'sales_order_save_commit_after'. * * @param Varien_Event_Observer $observer the event observer. * * @return Nosto_Tagging_Model_Observer */ public function sendOrderConfirmation(Varien_Event_Observer $observer) { if (Mage::helper('nosto_tagging')->isModuleEnabled()) { try { /** @var Mage_Sales_Model_Order $mageOrder */ $mageOrder = $observer->getEvent()->getOrder(); $order = new Nosto_Tagging_Model_Meta_Order(); $order->loadData($mageOrder); /** @var NostoAccount $account */ $account = Mage::helper('nosto_tagging/account')->find($mageOrder->getStore()); $customerId = Mage::helper('nosto_tagging/customer')->getNostoId($mageOrder); if ($account !== null && $account->isConnectedToNosto()) { NostoOrderConfirmation::send($order, $account, $customerId); } } catch (NostoException $e) { Mage::log("\n" . $e->__toString(), Zend_Log::ERR, 'nostotagging.log'); } } return $this; }