/**
  * 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;
 }