/** * Customer balance update after save * * @param Varien_Event_Observer $observer */ public function customerSaveAfter($observer) { if (!Mage::helper('enterprise_customerbalance')->isEnabled()) { return; } if ($data = $observer->getCustomer()->getCustomerBalanceData()) { if (!empty($data['amount_delta'])) { $balance = Mage::getModel('enterprise_customerbalance/balance')->setCustomer($observer->getCustomer())->setWebsiteId(isset($data['website_id']) ? $data['website_id'] : $observer->getCustomer()->getWebsiteId())->setAmountDelta($data['amount_delta'])->setComment($data['comment']); if (isset($data['notify_by_email']) && isset($data['store_id'])) { $balance->setNotifyByEmail(true, $data['store_id']); } $balance->save(); } } }
/** * create or update an TYPO3 Frontend User * * @param Varien_Event_Observer $observer */ public function customerSaveAfterEvent($observer) { if (!Mage::getSingleton('Flagbit_Typo3connect/Core')->isEnabled()) { return; } // no TYPO3 db data given -> nothing to do if (!Mage::getStoreConfig('typo3connect/typo3_db/host') || !Mage::getStoreConfig('typo3connect/typo3_db/username') || !Mage::getStoreConfig('typo3connect/typo3_db/password') || !Mage::getStoreConfig('typo3connect/typo3_db/dbname')) { return; } $customer = $observer->getCustomer(); // assign the fields $fields = array('username' => $customer->getData('email'), 'name' => $customer->getData('lastname'), 'firstname' => $customer->getData('firstname'), 'email' => $customer->getData('email'), 'password' => $customer->getData('password'), 'usergroup' => Mage::helper('Flagbit_Typo3connect')->getConfigData('fe_user_group_uid'), 'pid' => Mage::helper('Flagbit_Typo3connect')->getConfigData('fe_user_pid'), 'tx_fbmagento_id' => $customer->getId()); try { // get fe_users Model $feUsers = Mage::getSingleton('Flagbit_Typo3connect/typo3_frontend_user'); $customer->load($customer->getId()); if ($customer->getTypo3Uid()) { $feUsers->setId($customer->getTypo3Uid()); } foreach ($fields as $key => $value) { $feUsers->setData($key, $value); } $feUsers->save(); $customer->setData('typo3_uid', $feUsers->getData('uid')); $customer->getResource()->saveAttribute($customer, 'typo3_uid'); } catch (Exception $e) { Mage::log($e->getMessage()); } }
/** * Capture customer login data * * @param Varien_Event_Observer $observer * @return */ public function login(Varien_Event_Observer $observer) { if ($this->_isEnabled) { try { if ($customer = $observer->getCustomer()) { $response = Mage::getModel('sailthruemail/client_user')->login($customer); return true; } else { return false; } } catch (Exception $e) { Mage::logException($e); } } return $this; }
/** * Retrieve correct tax class - from quote address, if given, otherwise from default shipping address * * @param Varien_Event_Observer $observer */ public function customerLoadAfter(Varien_Event_Observer $observer) { /** @var $customer Mage_Customer_Model_Customer */ $customer = $observer->getCustomer(); if ($shippingAddress = $customer->getDefaultShippingAddress()) { if ($taxClassId = $shippingAddress->getTaxClassId()) { $customer->setTaxClassId($taxClassId); } } if ($quoteId = Mage::getSingleton('checkout/session')->getQuoteId()) { /** @var $quoteShippingAddressCollection Mage_Sales_Model_Resource_Quote_Address_Collection */ $quoteShippingAddressCollection = Mage::getResourceModel('sales/quote_address_collection'); $quoteShippingAddressCollection->addFieldToFilter('quote_id', $quoteId); $quoteShippingAddressCollection->addFieldToFilter('address_type', 'shipping'); $quoteShippingAddress = $quoteShippingAddressCollection->getFirstItem(); if ($quoteShippingAddress->getId()) { if ($taxClassId = $quoteShippingAddress->getTaxClassId()) { $customer->setTaxClassId($taxClassId); } } } }
public function customer_save_after(Varien_Event_Observer $observer) { // Check if customer is not new, only export then if ($observer->getCustomer()->getOrigData()) { $this->_handleEvent($observer, self::EVENT_CUSTOMER_SAVE_AFTER, Xtento_OrderExport_Model_Export::ENTITY_CUSTOMER); } }
/** * When customer is modified change the maker type accordingly to approver * and if maker himself moved to general disable maker. * * @param unknown $observer */ public function makerCustomerChangeAfter(Varien_Event_Observer $observer) { if (self::$_observerExecutionCounter > 1) { return $this; } self::$_observerExecutionCounter++; $customer = $observer->getCustomer(); $request = $observer->getRequest(); $customer_id = $customer->getId(); $is_approver = $customer->getIsApprover(); $has_approver = $customer->getZmyapprover(); $mcActive = (int) $customer->getAttribute('maker_status')->getSource()->getOptionId('active'); $approver_cust_type = (int) $customer->getZiscorporate(); // customer // type $general_cust_type = (int) $customer->getAttribute('ziscorporate')->getSource()->getOptionId('general'); // db connection establishment // $resource = Mage::getSingleton ( 'core/resource' ); // $writeConnection = $resource->getConnection ( 'core_write' ); // $readConnection = $resource->getConnection ( 'core_read' ); // if approver if ($is_approver) { // if the customer is an approver $makers = Mage::getResourceModel('customer/customer_collection')->addAttributeToFilter('zmyapprover', $customer_id)->addAttributeToFilter('maker_status', $mcActive)->addAttributeToSelect('*')->addNameToSelect(); // if bussiness, corporate, credit user if ($approver_cust_type == 816 || $approver_cust_type == 814 || $approver_cust_type == 470 || $approver_cust_type == 815) { foreach ($makers as $maker) { $maker->setData('ziscorporate', $approver_cust_type); try { $maker->getResource()->saveAttribute($maker, 'ziscorporate'); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'mclog.log'); } } } else { foreach ($makers as $maker) { $maker->setData('ziscorporate', $general_cust_type); $maker->setData('maker_status', 0); $maker->setData('zmyapprover', ''); try { $maker->getResource()->saveAttribute($maker, 'maker_status'); $maker->getResource()->saveAttribute($maker, 'ziscorporate'); $maker->getResource()->saveAttribute($maker, 'zmyapprover'); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'mclog.log'); } } } // if approver cutomer type is general send mail to all makers if ($approver_cust_type != 816 && $approver_cust_type != 814 && $approver_cust_type != 470 && $approver_cust_type != 815) { // disabling the approver privileg on customer moved to personel $customer->setData('is_approver', 0); // set approver status // to no try { $customer->getResource()->saveAttribute($customer, 'is_approver'); // save // customer // attribute } catch (Exception $e) { Mage::log($e->getMessage(), null, 'mclog.log'); } $customer->setData('is_approver', 0); // set approver status // to no try { $customer->getResource()->saveAttribute($customer, 'is_approver'); // save // customer // attribute } catch (Exception $e) { Mage::log($e->getMessage(), null, 'mclog.log'); } $email_template = Mage::getModel('core/email_template'); $templateId = Mage::getModel('core/email_template')->loadByCode(self::EMAIL_TEMPLATE_XML_PATH_MC1)->getId(); // get // template // email // id // by // code // $maker_emails // = // array(); foreach ($makers as $maker) { // send mails to all the makers // of the approver $mail_vars = array('approver' => $customer, 'maker' => $maker); // send mail $email_template->sendTransactional($templateId, 'sales', $maker->getEmail(), $maker->getName(), $mail_vars); } } } // if a maker changes his/her customer type. // if the customer have an approver and not a bussiness, // bussiness_unverified, credit or corporate if (!empty($has_approver) && ($approver_cust_type != 816 && $approver_cust_type != 814 && $approver_cust_type != 470 && $approver_cust_type != 815) && $customer->getMakerStatus() != 0) { // set maker status disabled // $customer->setMaker_status ( "" ); // $customer->save (); /* Fix for execution time issue */ $customer->setData('maker_status', 0); $customer->setData('zmyapprover', ''); // remove approver try { $customer->getResource()->saveAttribute($customer, 'maker_status'); $customer->getResource()->saveAttribute($customer, 'zmyapprover'); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'mclog.log'); } // update customer verify table $tbl_name = "customer_verify"; $status = 0; $approver = Mage::getSingleton('customer/customer')->load($has_approver); // load // approver // Send mail to the Approver when the customer moves to Personal $email_template = Mage::getModel('core/email_template'); $templateId = Mage::getModel('core/email_template')->loadByCode(self::EMAIL_TEMPLATE_XML_PATH_MC2)->getId(); // get // template // email // id // by // code $mail_vars = array('approver' => $approver, 'maker' => $customer); // send mail to approver $email_template->sendTransactional($templateId, 'sales', $approver->getEmail(), $approver->getName(), $mail_vars); } }
/** * @param Varien_Event_Observer $observer */ public function markCustomerForReimport(Varien_Event_Observer $observer) { /* @var $customer Mage_Customer_Model_Customer */ $customer = $observer->getCustomer(); /* @var $contactQueue Bronto_Customer_Model_Queue */ Mage::getModel('bronto_customer/queue')->getCustomerRow($customer->getId(), $customer->getStoreId())->setCreatedAt($customer->getCreatedAt())->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate())->setBrontoImported(null)->setBrontoSuppressed(null)->save(); }
public function loginTracking(Varien_Event_Observer $observer) { if (!Mage::getStoreConfigFlag('factfinder/config/personalization')) { return; } $customer = $observer->getCustomer(); if ($customer->getId()) { $customerId = md5('customer_' . $customer->getId()); /** @var $tracking Flagbit_FactFinder_Model_Handler_Tracking */ $tracking = Mage::getModel('factfinder_tracking/handler_tracking'); $tracking->trackLogin(Mage::helper('factfinder_tracking')->getSessionId(), null, $customerId); } }
/** * Used ALWAYS on the save in admin and front end * * @param Varien_Event_Observer $observer */ public function adminhtml_customer_prepare_save(Varien_Event_Observer $observer) { $customer = $observer->getCustomer(); // check if new if ($customer->entity_id) { // update customer if ($customer->group_id != '1') { $this->pmtUpdate($customer); } } else { // new customer try { if ($customer->group_id == "1") { } else { // Note: create and assign own clinician_group_id happens on customer_save_before $this->clinicianCreateClinicianGroup($customer); // register to pmt $pmt_user_id = $this->pmtRegister($customer); // pmt user id $customer->setPmtUserId($pmt_user_id); // send email for account to notify @inmedtech if (Mage::app()->getRequest()->getPost('account_apply_credit')) { $data = ['account_apply_credit' => Mage::app()->getRequest()->getPost('account_apply_credit') ? 'Yes' : 'No', 'account_request_limit' => Mage::app()->getRequest()->getPost('account_request_limit'), 'account_years_in_business' => Mage::app()->getRequest()->getPost('account_years_in_business'), 'account_social_security_ein' => Mage::app()->getRequest()->getPost('account_social_security_ein'), 'account_bankruptcy' => Mage::app()->getRequest()->getPost('account_bankruptcy')]; } $this->adminEmail($customer, null, 3, null, 'admin_new_account_template', $data); // if account credit if (Mage::app()->getRequest()->getPost('account_apply_credit')) { $this->sendRegistrationEmail($customer, 'new_account_clinician_credit_template'); } else { $this->sendRegistrationEmail($customer, 'new_account_clinician_template'); } } } catch (Exception $e) { $this->sendErrorEmail($customer, 'No customer in observer', 1, $e->getMessage()); } } }
public function changeIdentity(Varien_Event_Observer $event) { if (!Mage::getStoreConfig('zendesk/general/customer_sync')) { return; } $user = null; $customer = $event->getCustomer(); $email = $customer->getEmail(); $orig_email = $customer->getOrigData(); $orig_email = $orig_email['email']; //Get Customer Group $group_id = $customer->getGroupId(); $group = Mage::getModel('customer/group')->load($group_id); //Get Customer Last Login Date $log_customer = Mage::getModel('log/customer')->loadByCustomer($customer); if ($log_customer->getLoginAt()) { $logged_in = date("Y-m-d\\TH:i:s\\Z", strtotime($log_customer->getLoginAt())); } else { $logged_in = ""; } //Get Customer Sales Statistics $order_totals = Mage::getResourceModel('sales/order_collection'); $lifetime_sale = 0; $average_sale = 0; if (is_object($order_totals)) { $order_totals->addFieldToSelect('*')->addFieldToFilter('customer_id', $customer->getId())->addFieldToFilter('status', Mage_Sales_Model_Order::STATE_COMPLETE)->addAttributeToSelect('grand_total')->getColumnValues('grand_total'); $sum = 0; foreach ($order_totals as $total) { if (isset($total['grand_total'])) { $sum += (double) $total['grand_total']; } } $lifetime_sale = Mage::helper('core')->currency($sum, true, false); $average_sale = Mage::helper('core')->currency($sum / (count($order_totals) ?: 1), true, false); } $info['user'] = array("name" => $customer->getFirstname() . " " . $customer->getLastname(), "email" => $email, "user_fields" => array("group" => $group->getCode(), "name" => $customer->getFirstname() . " " . $customer->getLastname(), "id" => $customer->getId(), "logged_in" => $logged_in, "average_sale" => $average_sale, "lifetime_sale" => $lifetime_sale)); if ($orig_email && $orig_email !== $email) { $user = Mage::getModel('zendesk/api_users')->find($orig_email); if (isset($user['id'])) { $data['identity'] = array('type' => 'email', 'value' => $email, 'verified' => true); $identity = Mage::getModel('zendesk/api_users')->addIdentity($user['id'], $data); if (isset($identity['id'])) { Mage::getModel('zendesk/api_users')->setPrimaryIdentity($user['id'], $identity['id']); } } } if (!$user) { $user = Mage::getModel('zendesk/api_users')->find($email); } if (isset($user['id'])) { $this->syncData($user['id'], $info); } else { $info['user']['verified'] = true; $this->createAccount($info); } }
public function registerSuccess(Varien_Event_Observer $observer) { if ($this->_getHelper()->isEnabled()) { /* @var Mage_Customer_Model_Customer $customer */ $customer = $observer->getCustomer(); /* * Dados da conta */ $data = $this->_getRequestDataObject(); $data->setEmail($customer->getEmail()); $data->setNome($customer->getName()); $data->setAniversario($customer->getDob()); $data->setGender($this->_getGenderLabel($customer->getGender())); $data->setCpfCnpj($customer->getTaxvat()); $data->setData('store_name', $this->_getStoreDataObject()->getName()); $this->_getApi()->addLeadConversion(self::LEAD_ACCOUNTCREATE, $data); } }
/** * Dummy Function for testing and code * TODO remove the function from config.xml and here * * @param Varien_Event_Observer $observer * @return Zoffio_WmsApi_Model_Observer */ public function customerSaveAfter(Varien_Event_Observer $observer) { if (self::$_observerExecutionCounter > 1) { return $this; } self::$_observerExecutionCounter++; Mage::log(__CLASS__ . "_" . __FUNCTION__, null, 'shebin.log'); // $event = $observer->getEvent(); $customer = $observer->getCustomer(); Mage::log(get_class($customer), null, 'shebin.log'); $customer_id = $customer->getId(); $zoff_domain = 'zoffio.com'; $wms_email_id = $customer_id . "@" . $zoff_domain; Mage::log($wms_email_id, null, 'shebin.log'); $complexFilter = array('complex_filter' => array(array('key' => 'email', 'value' => array('key' => 'eq', 'value' => $wms_email_id)))); // Mage::log($complexFilter, null, 'shebin.log'); // Mage::log(self::$_apiPassword, null, 'shebin.log'); // establish the connection to WMS api $proxy = new SoapClient(self::$_apiUrl); $sessionId = $proxy->login(self::$_apiUser, self::$_apiPassword); try { $customerList = $proxy->customerCustomerList($sessionId, $complexFilter); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'shebin.log'); Mage::log($e->getTraceAsString(), null, 'shebin.log'); } // Mage::log($event->getData(),null,'shebin.log'); // Mage::log($customer->getData(), null, 'shebin.log'); Mage::log($customerList, null, 'shebin.log'); // If Customer doesn't exist in the WMS if (empty($customerList)) { // Add the customer $customer_details = array('email' => $wms_email_id, 'firstname' => $customer->getFirstname(), 'lastname' => $customer->getLastname(), 'website_id' => $customer->getWebsiteId(), 'store_id' => $customer->getStoreId(), 'group_id' => $customer->getGroupId()); Mage::log($customer_details, null, 'shebin.log'); try { $result = $proxy->customerCustomerCreate($sessionId, $customer_details); } catch (Exception $e) { Mage::log($e->getMessage(), null, 'shebin.log'); // Mage::getSingleton('core/session')->addWarning("Zoffio WMS // API : ".$wms_email_id." : ".$e->getMessage()); } Mage::log($result, null, 'shebin.log'); return $this; } $proxy->endSession($sessionId); // closing session return $this; // Mage::log($observer->getData(),null,'shebin.log'); // Mage::dispatchEvent('admin_session_user_login_success', // array('user'=>$user)); // $user = $observer->getEvent()->getUser(); // $user->doSomething(); }
/** * Fired by customer_register_success event * * @param Varien_Event_Observer $observer Magento observer object * * @return $this */ public function setFacebookPixelOnCustomerRegisterSuccess(Varien_Event_Observer $observer) { if (Mage::helper('hevelop_facebookpixel')->isEnabled() === false) { return $this; } $customer = $observer->getCustomer(); Mage::unregister('facebookpixel_customer_registered'); Mage::register('facebookpixel_customer_registered', $customer); return $this; }