Beispiel #1
0
 public function SendSmsOrderStatusChange(Varien_Event_Observer $observer)
 {
     $orderID = $observer->getOrder()->getIncrementId();
     $msisdn = $observer->getOrder()->getBillingAddress()->getTelephone();
     // Customer Mobile No
     $status = $observer->getEvent()->getOrder()->getStatus();
     $state = $observer->getEvent()->getOrder()->getState();
     $paymethod = $observer->getEvent()->getOrder()->getPayment()->getMethodInstance()->getCode();
     //START check status & generated SMS Code here your code
     $sms = '';
     if (!empty($status)) {
         if ($status == 'pending' && ($paymethod == 'cashondelivery' || $paymethod == 'checkmo')) {
             $sms = 'Your submitted order (#' . $orderID . ') is now in Pending status. Thank You.@SSLW';
         } else {
             if ($status == 'processing') {
                 $sms = 'Your invoice is generated. We are processing your order (#' . $orderID . '). Please keep patience.@SSLW';
             } else {
                 if ($status == 'complete') {
                     $sms = 'Your order (#' . $orderID . ') is now on Delivery process. Soon you will receive your order.@SSLW';
                 } else {
                     exit;
                 }
             }
         }
         // ALL Other status condition will be here..
         //START SMS API Code here your code
         //$msisdn2='0171767xxxx'; // Store Admin Mobile No
         //$sms = 'Congrats! You have successfully Register. Thank You.@SSLW';	//May Change SMS Body here
         if (!empty($sms)) {
             $user = "******";
             $pass = "******";
             //if change login password isms.sslwireless.com then change new here
             $sid = "StakeHolderName";
             //Stake Holder Name here
             $url = "http://sms.sslwireless.com/pushapi/dynamic/server.php";
             $unique_id_1 = uniqid();
             $unique_id_2 = uniqid();
             $param = "user={$user}&pass={$pass}&sid={$sid}&";
             $sms = "sms[0][0]={$msisdn}&sms[0][1]=" . urlencode($sms) . "&sms[0][2]=" . $unique_id_1 . "&sms[1][0]={$msisdn2}&sms[1][1]=" . urlencode($sms) . "&sms[1][2]=" . $unique_id_2 . "";
             $data = $param . $sms . $sid;
             $crl = curl_init();
             curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, FALSE);
             curl_setopt($crl, CURLOPT_SSL_VERIFYHOST, 2);
             curl_setopt($crl, CURLOPT_URL, $url);
             curl_setopt($crl, CURLOPT_HEADER, 0);
             curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
             curl_setopt($crl, CURLOPT_POST, 1);
             curl_setopt($crl, CURLOPT_POSTFIELDS, $data);
             $response = curl_exec($crl);
             curl_close($crl);
             //echo $response;
         }
         //end sms body check
         //END SMS API Code here your code
     }
     //End  status Code here your code
     /*		else {
     			$sms = 'Dear customer, thank you for shopping online. Your Order ID is #'.$orderID.'. @PURNAVA.';
     		}*/
 }
Beispiel #2
0
 public function SendSmsOrderStatusChange(Varien_Event_Observer $observer)
 {
     $orderID = $observer->getOrder()->getIncrementId();
     $msisdn = $observer->getOrder()->getBillingAddress()->getTelephone();
     // Customer Mobile No
     $status = $observer->getEvent()->getOrder()->getStatus();
     $state = $observer->getEvent()->getOrder()->getState();
     //START SMS API Code here your code
     //$msisdn2='0171767xxxx'; // Store Admin Mobile No
     $sms = 'The status of your OrderID #' . $orderID . ' changed to In ' . $status . '. Thank You @SSLW';
     //May Change SMS Body here
     $user = "******";
     $pass = "******";
     //if change login password isms.sslwireless.com then change new here
     $sid = "StakeHolderName";
     //Stake Holder Name here
     $url = "http://sms.sslwireless.com/pushapi/dynamic/server.php";
     $unique_id_1 = uniqid();
     $unique_id_2 = uniqid();
     $param = "user={$user}&pass={$pass}&sid={$sid}&";
     $sms = "sms[0][0]={$msisdn}&sms[0][1]=" . urlencode($sms) . "&sms[0][2]=" . $unique_id_1 . "&sms[1][0]={$msisdn2}&sms[1][1]=" . urlencode($sms) . "&sms[1][2]=" . $unique_id_2 . "";
     $data = $param . $sms . $sid;
     $crl = curl_init();
     curl_setopt($crl, CURLOPT_SSL_VERIFYPEER, FALSE);
     curl_setopt($crl, CURLOPT_SSL_VERIFYHOST, 2);
     curl_setopt($crl, CURLOPT_URL, $url);
     curl_setopt($crl, CURLOPT_HEADER, 0);
     curl_setopt($crl, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($crl, CURLOPT_POST, 1);
     curl_setopt($crl, CURLOPT_POSTFIELDS, $data);
     $response = curl_exec($crl);
     curl_close($crl);
     //echo $response;
     //ENd SMS API Code here your code
 }
 /**
  * Notify Sailthru that a purchase has been made. This automatically cancels
  * any scheduled abandoned cart email.
  *
  * @param Varien_Event_Observer $observer
  * @return
  */
 public function placeOrder(Varien_Event_Observer $observer)
 {
     if ($this->_isEnabled && $observer->getOrder()->getCustomerEmail()) {
         try {
             $response = Mage::getModel('sailthruemail/client_purchase')->sendOrder($observer->getOrder());
         } catch (Exception $e) {
             Mage::logException($e);
         }
     }
     return $this;
 }
 /**
  * Monitor order change event, sending order status to Touch Retail API system
  *
  * @param Varien_Event_Observer $observer
  */
 public function sendOrderStatus(Varien_Event_Observer $observer)
 {
     if (Mage::helper('orderstatus')->isTouchRetailOrderStatusEnabled()) {
         $order = $observer->getOrder();
         $orderStatus = $observer->getOrder()->getStatus();
         //var_dump($orderStatus);
         $orderStatuses = in_array($orderStatus, explode(",", Mage::helper('orderstatus')->getOrderStatuses()));
         if ($orderStatuses) {
             $this->executeApiCall($order, $orderStatus);
         }
     }
 }
Beispiel #5
0
 /**
  * Scans order for product based post purchases
  *
  * @param Varien_Event_Observer $observer
  * @return boolean
  */
 public function processPostOrders($observer)
 {
     if ($observer->getOrder()) {
         $appEmulation = Mage::getSingleton('core/app_emulation');
         $emulatedInfo = $appEmulation->startEnvironmentEmulation($observer->getOrder()->getStoreId());
         try {
             $this->_processOrder($observer->getOrder());
         } catch (Exception $e) {
             $this->_helper->writeError("Failed to examine order: {$e->getMessage()}");
         }
         $appEmulation->stopEnvironmentEmulation($emulatedInfo);
     }
 }
 /**
  * event: sales_model_service_quote_submit_success
  */
 public function decrementQuantities(Varien_Event_Observer $observer)
 {
     /** @var Mage_Sales_Model_Order $order */
     $order = $observer->getOrder();
     /** @var Mage_Sales_Model_Order_Item $item */
     foreach ($order->getAllItems() as $item) {
         $additionalData = array();
         $serializedAdditionalData = $item->getAdditionalData();
         if (!empty($serializedAdditionalData)) {
             $additionalData = unserialize($serializedAdditionalData);
         }
         $orderedQty = $item->getQtyOrdered();
         /** @var Webgriffe_Multiwarehouse_Model_Resource_Warehouse_Product_Collection $warehouseProducts */
         $warehouseProducts = Mage::getModel('wgmulti/warehouse_product')->getCollection()->addProductIdFilter($item->getProductId())->addWarehousePositionOrder();
         foreach ($warehouseProducts as $warehouseProduct) {
             if ($warehouseProduct->getQty() >= $orderedQty) {
                 $warehouseProduct->setQty($warehouseProduct->getQty() - $orderedQty);
                 $additionalData[$warehouseProduct->getWarehouseId()] = $orderedQty;
                 break;
             }
             $additionalData[$warehouseProduct->getWarehouseId()] = $warehouseProduct->getQty();
             $orderedQty -= $warehouseProduct->getQty();
             $warehouseProduct->setQty(0);
         }
         $item->setAdditionalData(serialize($additionalData))->save();
         $warehouseProducts->save();
     }
 }
 public function salesOrderSaveAfter(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     $storeId = Mage::app()->getStore()->getStoreId();
     // Check if the order status has changed
     $originalOrderStatus = $order->getOrigData('status');
     $orderStatus = $order->getStatus();
     if ($originalOrderStatus !== $orderStatus) {
         Mage::helper('canceledordernotification')->log('Order status has changed: ' . print_r($orderStatus, true));
         $notificationStatuses = Mage::getStoreConfig('sales_email/order/order_status_notification_statuses');
         $notificationStatuses = $notificationStatuses ? explode(',', $notificationStatuses) : array();
         // Check if the new order status should trigger a notification
         if (in_array($orderStatus, $notificationStatuses)) {
             Mage::helper('canceledordernotification')->log('Order status is in list of notification statuses: ' . print_r(array($orderStatus, $notificationStatuses), true));
             // Check if a recipient has been defined
             if ($recipients = Mage::getStoreConfig('sales_email/order/copy_to', $storeId)) {
                 // Trigger the email(s)
                 foreach (explode(',', $recipients) as $recipient) {
                     Mage::helper('canceledordernotification/notification')->send($order, $recipient);
                 }
             } else {
                 Mage::helper('canceledordernotification')->log('No order email copy recipient defined, not sending a notification email');
             }
         } else {
             Mage::helper('canceledordernotification')->log('Order status is not in list of notification statuses: ' . print_r(array($orderStatus, $notificationStatuses), true));
         }
     }
     return $observer;
 }
Beispiel #8
0
 /**
  * Method used for canceling a Aplazame invoice when a Magento order is canceled
  *
  * @param Varien_Event_Observer $observer
  */
 public function salesOrderPaymentCancel($observer)
 {
     /** @var Mage_Sales_Model_Order|null $order */
     $order = $observer->getOrder();
     $orderId = explode("-", $order->getIncrementId());
     if (isset($orderId[1])) {
         /** @var Mage_Sales_Model_Order $nextOrder */
         $nextOrder = Mage::getModel('sales/order')->loadByIncrementId($orderId[0] . '-' . ((int) $orderId[1] + 1));
         if ($nextOrder->getId()) {
             return $this;
         }
     }
     if (!$this->is_aplazame_payment($order)) {
         return $this;
     }
     /** @var Aplazame_Aplazame_Model_Api_Client $client */
     $client = Mage::getModel('aplazame/api_client');
     try {
         $client->cancelOrder($order);
     } catch (Aplazame_Sdk_Api_ApiClientException $e) {
         if ($e->getStatusCode() == 404) {
             return $this;
         }
         throw $e;
     }
     return $this;
 }
Beispiel #9
0
 /**
  * Add invoice PDF to order confirmation email;
  * Listen to 'sales_order_send_new_email_before' event
  *
  * @param Varien_Event_Observer $observer
  */
 public function addInvoicePdf(Varien_Event_Observer $observer)
 {
     //get mailer instance
     $mailer = $observer->getMailer();
     //get order instance
     /** @var $order Mage_Sales_Model_Order */
     $order = $observer->getOrder();
     $storeId = $order->getStoreId();
     //generating array of invoices from collection
     $invoicesCollection = $order->getInvoiceCollection();
     $invoicesArray = array();
     foreach ($invoicesCollection as $_invoice) {
         $invoicesArray[] = $_invoice;
     }
     if (count($invoicesArray) > 0) {
         if (!Mage::getStoreConfig(RC_Extsales_Helper_Data::XML_PATH_EMAIL_ATTACHED_USE_DEFAULT_PDF_TEMPLATE, $storeId)) {
             //Generating invoice by predefined template
             $pdf = Mage::helper('extsales/pdf')->htmlToPdf(Mage::helper('extsales')->getInvoiceHtmlForPdf($order, $invoicesArray));
         } else {
             // Generating pdf from all invoices and put them to mailer object
             $pdf = Mage::getModel('sales/order_pdf_invoice')->getPdf($invoicesArray)->render();
         }
         $pdfAttachment = Mage::helper('extsales')->createAttachment($pdf);
         // Appending attachment to mailer object
         $attachments = is_array($mailer->getData('attachments')) ? $mailer->getData('attachments') : array();
         $attachments[] = $pdfAttachment;
         $mailer->setAttachments($attachments);
     }
 }
Beispiel #10
0
 /**
  * Applies the special price percentage discount
  * @param   Varien_Event_Observer $observer
  * @return  Xyz_Catalog_Model_Price_Observer
  */
 public function send_transaction_email($observer)
 {
     $order = $observer->getOrder();
     if (Mage::app()->getStore()->isAdmin() && $order->getPayment()->getMethodInstance()->getCode() == 'iwbank_cc') {
         Mage::getModel('emergento_iwbank/iwbank')->setPayment($order->getIncrementId())->sendTransactionEmail();
     }
 }
 /**
  * Track orders based on their statuses
  *
  * @param Varien_Event_Observer $observer
  * @return null
  */
 public function trackOrderStatus(Varien_Event_Observer $observer)
 {
     $helper = Mage::helper('totango');
     // Current order state
     $orderState = $observer->getOrder()->getState();
     // List of order states and their data
     $orderStates = array(Mage_Sales_Model_Order::STATE_COMPLETE => array('tracker-name' => 'complete_orders', 'attribute-name' => 'Complete Orders'), Mage_Sales_Model_Order::STATE_CANCELED => array('tracker-name' => 'canceled_orders', 'attribute-name' => 'Canceled Orders'));
     $helper->log(sprintf('Track %s order', $orderState));
     if (!$helper->isEnabled()) {
         return;
     }
     if (!isset($orderStates[$orderState])) {
         $helper->log(array('message' => sprintf('%s orders are not trackable', ucfirst($orderState)), 'level' => 5));
         return;
     }
     foreach ($orderStates as $state => $data) {
         if ($helper->isTrackerEnabled($data['tracker-name'])) {
             // The following line which is used inside
             // a for loop is a bit expensive!
             // I might look for a possible workaround later.
             $orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('status', array('eq' => $state))->getSize();
             $helper->track(array('account-attribute' => array($data['attribute-name'] => $orders)));
         }
     }
 }
 /**
  * Disable order cancel, invoice and reorder actions for orders placed via Rakuten Checkout
  * Observes "sales_order_load_after" event
  *
  * @param  Varien_Event_Observer $observer
  * @return void
  */
 public function disableOrderActions($observer)
 {
     try {
         /** @var $order Mage_Sales_Model_Order */
         $order = $observer->getOrder();
         if ($order->getRakutenOrder()) {
             /**
              * Full list of Order Action flags:
              * - ACTION_FLAG_CANCEL
              * - ACTION_FLAG_HOLD
              * - ACTION_FLAG_UNHOLD
              * - ACTION_FLAG_EDIT
              * - ACTION_FLAG_CREDITMEMO
              * - ACTION_FLAG_INVOICE
              * - ACTION_FLAG_REORDER
              * - ACTION_FLAG_SHIP
              * - ACTION_FLAG_COMMENT
              */
             $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CANCEL, false);
             $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_EDIT, false);
             $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_CREDITMEMO, false);
             $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_INVOICE, false);
             $order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_REORDER, false);
             //$order->setActionFlag(Mage_Sales_Model_Order::ACTION_FLAG_SHIP,     false);
         }
     } catch (Exception $e) {
     }
 }
 /**
  *  Disables sending email after the order creation
  *
  *  @return	  updated order
  */
 public function disableEmailForMultishipping(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     if (!(strpos($order->getPayment()->getMethod(), 'cybermut') === false)) {
         $order->setCanSendNewEmailFlag(false)->save();
     }
     return $this;
 }
 /**
  * Stores current order in registry
  *
  * @param Varien_Event_Observer $observer
  * @return Datatrans_Hiddenmode_Model_Observer
  */
 public function saveOrderInRegistry(Varien_Event_Observer $observer)
 {
     if (Mage::registry('datatrans_hm_current_order')) {
         Mage::unregister('datatrans_hm_current_order');
     }
     Mage::register('datatrans_hm_current_order', $observer->getOrder());
     return $this;
 }
 public function completeSms(Varien_Event_Observer $observer)
 {
     $incrementId = $observer->getOrder()->getIncrementId();
     $order = $observer->getOrder();
     if ($order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE) {
         if ($order->getStatus() == 'complete') {
             $mobile = $order->getShippingAddress()->getData('telephone');
             $param['username'] = Mage::getStoreConfig('bhsms/api/username');
             $param['password'] = Mage::getStoreConfig('bhsms/api/password');
             $param['to'] = $mobile;
             $param['udh'] = Mage::getStoreConfig('bhsms/api/udh');
             $param['from'] = Mage::getStoreConfig('bhsms/api/from');
             $param['text'] = "Your shipment (Order#" . $incrementId . ") has been delivered. For any further queries write to us at info@mysite.com or call us at +91 99 99999999.";
             // Your shipment (Order#100000001) has been delivered. For any further queries write to us at info@mysite.com or call us at +91 99 99999999."
             $this->sendSms($param);
         }
     }
 }
Beispiel #16
0
 public function salesOrderAfterSave(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     if ($res = $order->getFraudDataTemp()) {
         if ($order->getId()) {
             Mage::helper('frauddetection')->saveFraudData($res, $order);
             $order->unsFraudDataTemp();
         }
     }
 }
Beispiel #17
0
 public function order_cancel_after(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     $transactionid = Mage::helper('dibspw')->getTransactionId($order->getRealOrderId());
     if ($transactionid) {
         $dibspw = Mage::getModel('dibspw/dibspw');
         $dibspw->cancel($order->getPayment());
     }
     return $this;
 }
 public function setPaymentInfo(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     $payment = $order->getPayment();
     $code = $payment->getMethod();
     if (in_array($code, array('paypal_standard'))) {
         $payment->setAdditionalInformation('payment_currency', Mage::helper('ppfix')->getToCurrency());
         $payment->setAdditionalInformation('due_amount', Mage::helper('ppfix')->convertAmount($order->getGrandTotal()));
         $payment->setAdditionalInformation('exchange_rate', Mage::helper('ppfix')->getCurrentExchangeRate());
     }
     $payment->save();
 }
Beispiel #19
0
 function onSalesOrderPlaceBefore(Varien_Event_Observer $observer)
 {
     $customer = $observer->getOrder()->getCustomer();
     //$checkoutMethod =  $observer->getOrder()->getQuote()->getData('checkout_method');
     $checkoutMethod = $observer->getQuote()->getData('checkout_method');
     $password = $customer->getPassword();
     if ($checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER || $checkoutMethod == 'register') {
         if ($password === NULL || $password == '') {
             Mage::throwException(Mage::helper('aitcheckout')->__('The password cannot be empty.'));
         }
     }
 }
Beispiel #20
0
 /**
  * Adds a history entry to orders placed using AU direct deposit or BPay.
  *
  * @listen checkout_type_onepage_save_order
  * @param Varien_Event_Observer $event
  */
 public function addHistory($event)
 {
     /** @var $order Mage_Sales_Model_Order */
     $order = $event->getOrder();
     if ($order && $order->getPayment()) {
         if ($order->getPayment()->getMethod() == Fontis_Australia_Model_Payment_Directdeposit::CODE) {
             $order->addStatusHistoryComment('Order placed with Direct Deposit')->setIsCustomerNotified(false);
         } elseif ($order->getPayment()->getMethod() == Fontis_Australia_Model_Payment_Bpay::CODE) {
             $order->addStatusHistoryComment('Order placed with BPay')->setIsCustomerNotified(false);
         }
     }
 }
 /**
  * @see checkout_type_onepage_save_order_after
  * @param Varien_Event_Observer $observer
  */
 public function copyNewOrderEmail($observer)
 {
     $order = $observer->getOrder();
     $store = Mage::app()->getStore();
     $storeId = $store->getId();
     $copyToEmails = Mage::getStoreConfig($order::XML_PATH_EMAIL_COPY_TO, $storeId);
     $copyTo = explode(',', $copyToEmails);
     $copyMethod = Mage::getStoreConfig($order::XML_PATH_EMAIL_COPY_METHOD, $storeId);
     if ($copyTo && $copyMethod == 'copy') {
         //disable copy to
         $store->setConfig($order::XML_PATH_EMAIL_COPY_TO, null);
         // Start store emulation process
         $appEmulation = Mage::getSingleton('core/app_emulation');
         $initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
         try {
             // Retrieve specified view block from appropriate design package (depends on emulated store)
             $paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true);
             $paymentBlock->getMethod()->setStore($storeId);
             $paymentBlockHtml = $paymentBlock->toHtml();
         } catch (Exception $exception) {
             // Stop store emulation process
             $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
             throw $exception;
         }
         // Stop store emulation process
         $appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
         // Retrieve corresponding email template id and customer name
         $templateId = Mage::getStoreConfig('sales_email/order/copy_template', $storeId);
         $mailer = Mage::getModel('core/email_template_mailer');
         // Email copies are sent as separated emails if their copy method is 'copy'
         foreach ($copyTo as $email) {
             $emailInfo = Mage::getModel('core/email_info');
             $emailInfo->addTo($email);
             $mailer->addEmailInfo($emailInfo);
         }
         // Set all required params and send emails
         $mailer->setSender(Mage::getStoreConfig($order::XML_PATH_EMAIL_IDENTITY, $storeId));
         $mailer->setStoreId($storeId);
         $mailer->setTemplateId($templateId);
         $templateParamsObj = new Varien_Object();
         $templateParamsObj->setData(array('order' => $order, 'billing' => $order->getBillingAddress(), 'payment_html' => $paymentBlockHtml));
         //additional template params
         Mage::dispatchEvent('aydus_orderemailcopy_copyneworderemail', array('template_params' => $templateParamsObj));
         $templateParams = $templateParamsObj->getData();
         $mailer->setTemplateParams($templateParams);
         /** @var $emailQueue Mage_Core_Model_Email_Queue */
         $emailQueue = Mage::getModel('core/email_queue');
         $emailQueue->setEntityId($order->getId())->setEntityType($order::ENTITY)->setEventType($order::EMAIL_EVENT_NAME_NEW_ORDER);
         $mailer->setQueue($emailQueue)->send();
     }
     return $observer;
 }
 public function salesModelServiceQuoteSubmitAfter(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     $quote = $observer->getQuote();
     $paymentMethod = $quote->getPayment();
     if ($paymentMethod->getMethod() == 'creditcard' && $quote->getPayment()->getOrderPlaceRedirectUrl()) {
         $state = Mage_Sales_Model_Order::STATE_PENDING_PAYMENT;
         $order->setState($state);
         $order->setStatus('pending_payment');
         $order->setIsNotified(false);
         $order->save();
     }
 }
 /**
  * 
  * @param Varien_Event_Observer $observer
  */
 public function addCommentToOrder($observer)
 {
     if ($this->getRequest()->isPost()) {
         $comment = $this->getRequest()->getPost('ordercomment', false);
         if ($comment && strlen(trim($comment)) > 0) {
             $order = $observer->getOrder();
             /* @var Mage_Sale_Model_Order $order */
             $comment = nl2br(Mage::helper('core')->escapeHtml(trim($comment)));
             $order->setCustomerComment($comment);
             $order->setCustomerNoteNotify(true);
             $order->setCustomerNote($comment);
         }
     }
 }
 /**
  * Track orders based on their statuses
  *
  * @param Varien_Event_Observer $observer
  * @return null
  */
 public function trackOrderStatus(Varien_Event_Observer $observer)
 {
     $helper = Mage::helper('totango');
     // Current order state
     $orderState = $observer->getOrder()->getState();
     // List of order states and their data
     $orderStates = array(Mage_Sales_Model_Order::STATE_COMPLETE => array('tracker-name' => 'complete_orders', 'attribute-name' => 'CompleteOrders'), Mage_Sales_Model_Order::STATE_CANCELED => array('tracker-name' => 'canceled_orders', 'attribute-name' => 'CanceledOrders'));
     foreach ($orderStates as $state => $data) {
         if ($helper->isTrackerEnabled($data['tracker-name']) && $orderState == $state) {
             $orders = Mage::getModel('sales/order')->getCollection()->addAttributeToFilter('status', array('eq' => $state))->getSize();
             $helper->track('account-attribute', array($data['attribute-name'] => $orders));
         }
     }
 }
 /**
  * Método para verificar alteração de status do pedido
  *
  * @param Varien_Event_Observer $observer
  */
 public function checkOrderState(Varien_Event_Observer $observer)
 {
     $origOrderData = $observer->getEvent()->getData('data_object')->getOrigData();
     $newOrderData = $observer->getEvent()->getData('data_object')->getData();
     if ($origOrderData['state'] !== $newOrderData['state'] && $newOrderData['state'] == Mage_Sales_Model_Order::STATE_CANCELED) {
         // Verifica se pedido possui transação Bcash relacionada
         $order = $observer->getOrder()->getData();
         if (!empty($order['transaction_id_bcash']) && !is_null($order['transaction_id_bcash'])) {
             $orderId = $order['entity_id'];
             $order = Mage::getModel('sales/order')->load($orderId);
             $order->addStatusHistoryComment('Pedido não cancelado através do cancelamento Bcash. A transação ' . $order['transaction_id_bcash'] . ' não foi alterada.');
             $order->save();
         }
     }
 }
Beispiel #26
0
 function onSalesOrderPlaceBefore(Varien_Event_Observer $observer)
 {
     $customer = $observer->getOrder()->getCustomer();
     $password = $customer->getPassword();
     $quote = $observer->getQuote();
     $checkoutMethod = $quote->getData('checkout_method');
     if ($checkoutMethod == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER || $checkoutMethod == 'register') {
         // Magento does not create a customer account during checkout via PayPal prior to v 1.6.1
         // thus in that case we should disable the following check to prevent unnecessary error
         if (!(version_compare(Mage::getVersion(), '1.6.1', 'lt') && $quote->getPayment()->getMethod() == Mage_Paypal_Model_Config::METHOD_WPP_EXPRESS && !$customer->getEmail())) {
             if (!$password === NULL || $password == '') {
                 Mage::throwException(Mage::helper('aitcheckout')->__('The password cannot be empty.'));
             }
         }
     }
 }
Beispiel #27
0
 public function addWishlist(Varien_Event_Observer $observer)
 {
     if (Mage::helper('autowishlist')->isEnabled()) {
         $order = $observer->getOrder();
         $items = $order->getAllVisibleItems();
         $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer($order->getCustomerId(), true);
         foreach ($items as $item) {
             $option = $item->getProductOptions();
             $product = Mage::getModel('catalog/product')->load($item->getProductId());
             $params = array('product' => $productId, 'qty' => 1, 'store_id' => $storeId, 'options' => $option['info_buyRequest']['options']);
             $request = new Varien_Object();
             $request->setData($params);
             $result = $wishlist->addNewItem($product, $request, true);
         }
         $wishlist->save();
     }
 }
Beispiel #28
0
 /**
  * @param Varien_Event_Observer $observer
  * @return bool
  */
 public function sendOrder(Varien_Event_Observer $observer)
 {
     /* @var ShopgateOrder $shopgateOrder */
     /* @var Mage_Sales_Model_Order $magentoOrder */
     $shopgateOrder = $observer->getShopgateOrder();
     $magentoOrder = $observer->getOrder();
     if (class_exists("DreamRobot_Checkout_Model_Observer", false) && !$shopgateOrder->getIsShippingBlocked()) {
         $msg = "Start to send order to DreamRobot\n";
         $msg .= "\tOrderID: {$magentoOrder->getId()}\n";
         $msg .= "\tOrderNumber: {$magentoOrder->getIncrementId()}\n";
         $msg .= "\tShopgateOrderNumber: {$shopgateOrder->getOrderNumber()}\n";
         ShopgateLogger::getInstance()->log($msg, ShopgateLogger::LOGTYPE_REQUEST);
         Mage::getSingleton('checkout/type_onepage')->getCheckout()->setLastOrderId($magentoOrder->getId());
         $c = new DreamRobot_Checkout_Model_Observer();
         $c->getSaleOrder();
     }
     return true;
 }
Beispiel #29
0
 /**
  * If an Order's status is changing,
  * just reset the flag anyways...
  *
  * @param Varien_Event_Observer $observer
  */
 public function markOrderForReimport(Varien_Event_Observer $observer)
 {
     /* @var $order Mage_Sales_Model_Order */
     $order = $observer->getOrder();
     /* @var $contactQueue Bronto_Order_Model_Queue */
     $orderRow = Mage::getModel('bronto_order/queue')->getOrderRow($order->getId(), $order->getQuoteId(), $order->getStoreId());
     $managedKey = Mage::helper('bronto_order')->getTidKey();
     foreach (Mage::getModel('core/cookie')->get() as $key => $value) {
         // If managed key was found, use it; otherwise
         // If an original key was found, use that instead
         if ($key == 'tid_' . $managedKey) {
             $orderRow->setBrontoTid($value);
             break;
         } else {
             if (preg_match('/^tid_/', $key)) {
                 $orderRow->setBrontoTid($value);
             }
         }
     }
     $orderRow->setCreatedAt($order->getCreatedAt())->setUpdatedAt($order->getUpdatedAt())->setBrontoImported(null)->save();
 }
 public function checkout_submit_all_after(Varien_Event_Observer $observer)
 {
     $order = $observer->getOrder();
     $method = $order->getPayment()->getMethod();
     if (strpos($method, 'buckaroo3extended') === false) {
         return $this;
     }
     try {
         $request = Mage::getModel('buckaroo3extended/request_abstract');
         $request->setOrder($order)->setOrderBillingInfo();
         $request->sendRequest();
     } catch (Exception $e) {
         Mage::throwException($e->getMessage());
     }
     // Now set our custom pending status
     $newStates = Mage::helper('buckaroo3extended')->getNewStates('BUCKAROO_PENDING_PAYMENT', $order, $method);
     if ($newStates[1] !== null) {
         $order->setStatus($newStates[1]);
         $order->save();
     }
     return $this;
 }