public function catalogCategoryChangeProducts(Varien_Event_Observer $observer) { try { $changedProductsIds = $observer->getData('product_ids'); if (!is_array($changedProductsIds) || count($changedProductsIds) <= 0) { return; } $addedProducts = array(); $deletedProducts = array(); $postedProductsIds = array_keys($observer->getData('category')->getData('posted_products')); foreach ($changedProductsIds as $productId) { if (in_array($productId, $postedProductsIds)) { $addedProducts[] = $productId; } else { $deletedProducts[] = $productId; } } if (count($addedProducts) <= 0 && count($deletedProducts) <= 0) { return; } self::synchChangesWithListings($observer->getData('category')->getId(), $addedProducts, $deletedProducts); } catch (Exception $exception) { Mage::helper('M2ePro/Exception')->process($exception, true); return; } }
public function addOrderItemConditions(Varien_Event_Observer $observer) { /** @var Aoe_FraudManager_Helper_Data $helper */ $helper = Mage::helper('Aoe_FraudManager/Data'); /** @var Aoe_FraudManager_Model_Rule_Condition_Interface $parent */ $parent = $observer->getData('parent'); if (!$parent instanceof Aoe_FraudManager_Model_Rule_Condition_Interface) { return; } /** @var Varien_Object $container */ $container = $observer->getData('container'); if (!$container instanceof Varien_Object) { return; } $conditions = $container->getData('conditions'); if (!is_array($conditions)) { $conditions = []; } /** @var Aoe_FraudManager_Model_Rule_Condition_Order_Item_Combine $condition */ $condition = Mage::getModel('Aoe_FraudManager/Rule_Condition_Order_Item_Combine'); $conditions[$condition->getType()] = $helper->__($condition->getName()); /** @var Aoe_FraudManager_Model_Rule_Condition_Order_Item_Attribute $condition */ $condition = Mage::getModel('Aoe_FraudManager/Rule_Condition_Order_Item_Attribute'); $conditionName = $helper->__($condition->getName()); foreach ($condition->getAttributeOptions() as $attribute => $label) { $conditions[$conditionName][$condition->getType() . '|' . $attribute] = $label; } $container->setData('conditions', $conditions); }
/** * get params of the event * * @return array */ public function getParams() { $params = array(); foreach ($this->_observer->getData() as $name => $param) { if ($name !== "event") { $params[$name] = $param; } } return $params; }
/** * Daily update catalog to conversionpro server by cron * This method is called from cron process, cron is workink in UTC time and * * @param Varien_Event_Observer $observer * @return Celebros_Conversionpro_Model_Observer */ public function catalogUpdate($observer) { //This data is saved to the registry so that it would persist when isStoreExportEnabled() // is called from within another class (observerLarge). Mage::helper('conversionpro')->setCronJobCode($observer->getData('job_code')); $this->export_celebros(false); return $this; }
public function catalogInventoryStockItemSaveAfter(Varien_Event_Observer $observer) { try { // Get product id $productId = $observer->getData('item')->getData('product_id'); // Get listing where is product $listingsIds = Mage::getResourceModel('M2ePro/Listings')->getListingsWhereIsProduct($productId); if (count($listingsIds) > 0) { // Save global changes //-------------------- Mage::getModel('M2ePro/ProductsChanges')->updateAttribute($productId, 'product_instance', 'any_old', 'any_new', Ess_M2ePro_Model_ProductsChanges::CREATOR_TYPE_OBSERVER); //-------------------- // Save changes for qty //-------------------- $qtyOld = (int) $observer->getData('item')->getOrigData('qty'); $qtyNew = (int) $observer->getData('item')->getData('qty'); $rez = Mage::getModel('M2ePro/ProductsChanges')->updateAttribute($productId, 'qty', $qtyOld, $qtyNew, Ess_M2ePro_Model_ProductsChanges::CREATOR_TYPE_OBSERVER); if ($rez !== false) { foreach ($listingsIds as $listingId) { Mage::getModel('M2ePro/ListingsLogs')->addProductMessage($listingId, $productId, Ess_M2ePro_Model_ListingsLogs::INITIATOR_EXTENSION, NULL, Ess_M2ePro_Model_ListingsLogs::ACTION_CHANGE_PRODUCT_QTY, Mage::getModel('M2ePro/LogsBase')->encodeDescription('From [%from%] to [%to%]', array('!from' => $qtyOld, '!to' => $qtyNew)), Ess_M2ePro_Model_ListingsLogs::TYPE_NOTICE, Ess_M2ePro_Model_ListingsLogs::PRIORITY_LOW); } } //-------------------- // Save changes for stock Availability //-------------------- $stockAvailabilityOld = (bool) $observer->getData('item')->getOrigData('is_in_stock'); $stockAvailabilityNew = (bool) $observer->getData('item')->getData('is_in_stock'); $rez = Mage::getModel('M2ePro/ProductsChanges')->updateAttribute($productId, 'stock_availability', (int) $stockAvailabilityOld, (int) $stockAvailabilityNew, Ess_M2ePro_Model_ProductsChanges::CREATOR_TYPE_OBSERVER); if ($rez !== false) { $stockAvailabilityOld = $stockAvailabilityOld ? 'IN Stock' : 'OUT of Stock'; $stockAvailabilityNew = $stockAvailabilityNew ? 'IN Stock' : 'OUT of Stock'; foreach ($listingsIds as $listingId) { Mage::getModel('M2ePro/ListingsLogs')->addProductMessage($listingId, $productId, Ess_M2ePro_Model_ListingsLogs::INITIATOR_EXTENSION, NULL, Ess_M2ePro_Model_ListingsLogs::ACTION_CHANGE_PRODUCT_STOCK_AVAILABILITY, Mage::getModel('M2ePro/LogsBase')->encodeDescription('From [%from%] to [%to%]', array('from' => $stockAvailabilityOld, 'to' => $stockAvailabilityNew)), Ess_M2ePro_Model_ListingsLogs::TYPE_NOTICE, Ess_M2ePro_Model_ListingsLogs::PRIORITY_LOW); } } //-------------------- } } catch (Exception $exception) { try { Mage::helper('M2ePro/Exception')->process($exception, true); } catch (Exception $exceptionTemp) { } return; } }
public function catalogCategoryCollectionLoadAfter(Varien_Event_Observer $event) { /** @var Mage_Catalog_Model_Resource_Category_Collection $collection */ $collection = $event->getData('category_collection'); foreach ($collection as $category) { if ($url = $category->getData(VinaiKopp_CategoryLink_Helper_Data::ATTR_CODE_LINK)) { $category->setData('url', $url); } } }
public function catalogCategoryChangeProducts(Varien_Event_Observer $observer) { try { // Get category data //--------------------------- $categoryId = $observer->getData('category')->getId(); $storeId = $observer->getData('category')->getData('store_id'); //--------------------------- // Get changes into categories //--------------------------- $changedProductsIds = $observer->getData('product_ids'); if (count($changedProductsIds) == 0) { return; } $tempArray = $observer->getData('category')->getData('posted_products'); $postedProductsIds = array(); foreach ($tempArray as $key => $value) { $postedProductsIds[] = $key; } $addedProducts = array(); $deletedProducts = array(); foreach ($changedProductsIds as $productId) { if (in_array($productId, $postedProductsIds)) { $addedProducts[] = $productId; } else { $deletedProducts[] = $productId; } } if (count($addedProducts) == 0 && count($deletedProducts) == 0) { return; } //--------------------------- // Make changes with listings self::synchChangesWithListings($categoryId, $storeId, $addedProducts, $deletedProducts); } catch (Exception $exception) { try { Mage::helper('M2ePro/Exception')->process($exception, true); } catch (Exception $exceptionTemp) { } return; } }
/** * If an Esendex Account is cached, update the remaining messages to reflect what we just sent * * @param Varien_Event_Observer $observer */ public function updateRemainingMessages(Varien_Event_Observer $observer) { $messagesSent = $observer->getData('message_count'); if ($account = Mage::app()->getCache()->load('esendex_account')) { /** @var Account $account */ $account = unserialize($account); $account->messagesRemaining($account->messagesRemaining() - $messagesSent); //re-save account to cache Mage::app()->getCache()->save(serialize($account), 'esendex_account'); } }
/** * Forward to xcomDenied action * if no full Xcom data and user try to open one of xcom page except Xcom_Xfabric and Xcom_Stub * * @param Varien_Event_Observer $observer * @return Xcom_Initializer_Model_Observer */ public function controllerPreDispatch($observer) { /* @var $controller Mage_Core_Controller_Varien_Action */ $controller = $observer->getData('controller_action'); if ($controller->getRequest()->isDispatched() && !Mage::getSingleton('xcom_initializer/initializer')->isAllowed($controller->getRequest())) { Mage::getSingleton('adminhtml/session')->setIsUrlNotice($controller->getFlag('', Mage_Adminhtml_Controller_Action::FLAG_IS_URLS_CHECKED)); $request = $controller->getRequest(); $request->initForward()->setControllerName('initializer')->setModuleName('admin')->setActionName('xcomDenied')->setDispatched(false); } return $this; }
/** * Extend UI blocks. * @param Varien_Event_Observer $observer */ public function onAdminhtmlBlockHtmlBefore(Varien_Event_Observer $observer) { if (Praxigento_LoginAs_Config::cfgGeneralEnabled()) { $block = $observer->getData('block'); if ($block instanceof Mage_Adminhtml_Block_Customer_Grid) { $this->doCustomerGridActionAdd($block); } elseif ($block instanceof Mage_Adminhtml_Block_Sales_Order_Grid) { $this->doOrderGridColumnAdd($block); } } }
public function catalogCategoryChangeProducts(Varien_Event_Observer $observer) { try { /** @var Mage_Catalog_Model_Category $category */ $category = $observer->getData('category'); $categoryId = (int) $category->getId(); $websiteId = (int) $category->getStore()->getWebsiteId(); $changedProductsIds = $observer->getData('product_ids'); $postedProductsIds = array_keys($observer->getData('category')->getData('posted_products')); if (!is_array($changedProductsIds) || count($changedProductsIds) <= 0) { return; } $websitesProductsIds = array(0 => $changedProductsIds); if ($websiteId == 0) { foreach ($changedProductsIds as $productId) { $productModel = Mage::getModel('M2ePro/Magento_Product')->setProductId($productId); foreach ($productModel->getWebsiteIds() as $websiteId) { $websitesProductsIds[$websiteId][] = $productId; } } } else { $websitesProductsIds[$websiteId] = $changedProductsIds; } /** @var Ess_M2ePro_Model_Observer_Ebay_Category $ebayCategoryObserver */ $ebayCategoryObserver = Mage::getModel('M2ePro/Observer_Ebay_Category'); foreach ($websitesProductsIds as $websiteId => $productIds) { foreach ($productIds as $productId) { if (in_array($productId, $postedProductsIds)) { $this->synchProductWithAddedCategoryId($productId, $categoryId, $websiteId); $ebayCategoryObserver->synchProductWithAddedCategoryId($productId, $categoryId, $websiteId); } else { $this->synchProductWithDeletedCategoryId($productId, $categoryId, $websiteId); $ebayCategoryObserver->synchProductWithDeletedCategoryId($productId, $categoryId, $websiteId); } } } } catch (Exception $exception) { Mage::helper('M2ePro/Module_Exception')->process($exception); return; } }
/** * Hide the catalog navigation to logged out visitors if the feature is configured. * * @param Varien_Event_Observer $observer */ public function pageBlockHtmlTopmenuGethtmlBefore(Varien_Event_Observer $observer) { if (Mage::helper('logincatalog')->shouldHideCategoryNavigation()) { /** @var $menu Varien_Data_Tree_Node */ $menu = $observer->getData('menu'); foreach ($menu->getChildren() as $key => $node) { if (strpos($key, 'category-') === 0) { $menu->removeChild($node); } } } }
/** * @see Mage_Customer_Model_Address_Abstract::validate * * @param Varien_Event_Observer $observer */ public function validateQuoteAddress(Varien_Event_Observer $observer) { /** @var Mage_Sales_Model_Quote_Address $address */ $address = $observer->getData('address'); // If the address property of the observer data is not the correct type, exit early if (!$address instanceof Mage_Sales_Model_Quote_Address) { return; } /** @var Aoe_AvaTax_Helper_AddressValidator $validator */ $validator = Mage::helper('Aoe_AvaTax/AddressValidator'); $validator->validate($address); }
/** * Observer used to record a rule usage and a coupon usage * * NB: This replaces the parent method so that event zero value discounts are recorded properly and to remove race conditions * * @param Varien_Event_Observer $observer * * @return void */ public function sales_order_afterPlace(Varien_Event_Observer $observer) { /** @var Mage_Sales_Model_Order $order */ $order = $observer->getData('order'); if (!$order instanceof Mage_Sales_Model_Order) { return; } // Get the used rule IDs $ruleIds = array_unique(array_filter(array_map('intval', explode(',', $order->getAppliedRuleIds())))); $ruleCustomer = null; $customerId = $order->getCustomerId(); // use each rule (and apply to customer, if applicable) foreach ($ruleIds as $ruleId) { /** @var Mage_SalesRule_Model_Rule $rule */ $rule = Mage::getModel('salesrule/rule'); $rule->load($ruleId); if (!$rule->getId()) { continue; } // Update the rule usage counter - the DB expression is used to prevent race conditions $rule->setDataUsingMethod('times_used', new Zend_Db_Expr('times_used+1')); $rule->save(); if ($customerId) { // If we add a unique index of rule and customer we can use \Varien_Db_Adapter_Interface::insertOnDuplicate to prevent race conditions /** @var Mage_SalesRule_Model_Rule_Customer $ruleCustomer */ $ruleCustomer = Mage::getModel('salesrule/rule_customer'); $ruleCustomer->loadByCustomerRule($customerId, $ruleId); if ($ruleCustomer->getId()) { // Update the usage counter - the DB expression is used to prevent race conditions $ruleCustomer->setDataUsingMethod('times_used', new Zend_Db_Expr('times_used+1')); } else { $ruleCustomer->setCustomerId($customerId)->setRuleId($ruleId)->setTimesUsed(1); } $ruleCustomer->save(); } } // Trim the coupon code to match all the other coupon code processing $couponCode = trim($order->getCouponCode()); if (!empty($couponCode)) { /** @var Mage_SalesRule_Model_Coupon $coupon */ $coupon = Mage::getModel('salesrule/coupon'); $coupon->load($couponCode, 'code'); if ($coupon->getId()) { $coupon->setDataUsingMethod('times_used', new Zend_Db_Expr('times_used+1')); $coupon->save(); if ($customerId) { /** @var Aoe_SalesRule_Model_Resource_Coupon_Usage $couponUsage */ $couponUsage = Mage::getResourceModel('salesrule/coupon_usage'); $couponUsage->updateCustomerCouponTimesUsed($customerId, $coupon->getId()); } } } }
public function updateProductRatingSummary(Varien_Event_Observer $observer) { if (Mage::helper('avisverifies/Data')->isActive()) { $globalVar = Mage::registry('netreview_isProductlist'); if (empty($globalVar)) { Mage::register('netreview_isProductlist', true); } $_productCollection = $observer->getData('collection'); foreach ($_productCollection as $_product) { $_product->setData('rating_summary', true); } } }
public function cleanCache(Varien_Event_Observer $observer) { if ($observer->getData('type') == "joomlart_jmslideshow") { try { //clean by type Mage::app()->getCacheInstance()->cleanType('joomlart_jmslideshow'); } catch (Exception $e) { echo $e->getMessage(); die; } } return $this; }
/** * @param Varien_Event_Observer $observer */ public function addCleverCmsNodes(Varien_Event_Observer $observer) { /** @var Varien_Data_Tree_Node $menu */ $menu = $observer->getData('menu'); $block = $observer->getEvent()->getBlock() ?: Mage::app()->getLayout()->getBlock('top.menu'); if (method_exists($block, 'addCacheTags')) { $block->addCacheTag(Mage_Cms_Model_Page::CACHE_TAG); } if (Mage::getStoreConfigFlag('cms/clever/show_homepage_link')) { $this->_addHomePageToMenu($menu, $block, true); } $this->_addCmsPagesToMenu($this->_getChildren($this->getCmsRootPage()), $menu, $block, true); $this->_addCmsPagesToMenu($this->_getChildren($this->getCmsRootPage(0)), $menu, $block, true); }
public function cleanCache(Varien_Event_Observer $observer) { if ($observer->getData('type') == "wavethemes_jmmegamenu") { try { //clean by type Mage::app()->getCacheInstance()->cleanType('wavethemes_jmmegamenu'); //clean by tags //Mage::app()->cleanCache(array(Wavethemes_Jmmegamenu_Block_Jmmegamenu::CACHE_TAG)); } catch (Exception $e) { echo $e->getMessage(); die; } } return $this; }
public function addSubscriber(Varien_Event_Observer $observer) { //Mage::fireLog("Add Subscriber", "Observer"); $event = $observer->getEvent(); $order_id = $observer->getData('order_ids'); $order = Mage::getModel('sales/order')->load($order_id); $email = $order->getCustomerEmail(); $firstname = $order->getCustomerFirstname(); $lastname = $order->getCustomerLastname(); $config = Mage::getStoreConfig('mailinglist/general'); if ($config['add_default'] == 'auto_add') { $options = array("email" => $email, "first_name" => $firstname, "last_name" => $lastname); Mage::helper('mailinglist')->addSubscriber($options); } return $this; }
/** * @param Varien_Event_Observer $observer */ public function processInvoiceRegister(Varien_Event_Observer $observer) { if (!$this->_autoShootingIsEnabled()) { return; } /** @var Mage_Sales_Model_Order_Invoice $invoice */ $invoice = $observer->getData('invoice'); if (false === $this->_scheduleOnInvoice()) { return; } /** @var Mage_Sales_Model_Order $order */ $order = $invoice->getOrder(); if ($this->_scheduleOnBoth() && !$this->_hasShipments($order)) { return; } $this->_sendAutoShootingRequest($order); }
/** * This is an observer function for the event 'adminhtml_block_html_before'. * If the block is the grid for the "Index Management" we update the description of the "Catalog Search Index" * * @param Varien_Event_Observer $observer */ public function adminhtmlBlockHtmlBefore($observer) { $block = $observer->getData('block'); if (is_a($block, 'Mage_Index_Block_Adminhtml_Process_Grid')) { /** @var Mage_Index_Block_Adminhtml_Process_Grid $block */ $collection = $block->getCollection(); $readAdapter = Mage::getSingleton('core/resource')->getConnection('core_read'); $table = Mage::getResourceModel('core/url_rewrite')->getMainTable(); foreach ($collection as $item) { /** @var Mage_Index_Model_Process $item */ if ('catalog_url' == $item->getIndexerCode()) { $select = $readAdapter->select()->from($table, array('count' => 'COUNT(*)')); $count = number_format($readAdapter->fetchOne($select)); $item->setDescription($item->getDescription() . ' - ' . $block->__('%s records', $count)); } } } }
/** * @param Varien_Event_Observer $observer */ public function addOrderConsultButton(Varien_Event_Observer $observer) { /** @var Mage_Adminhtml_Block_Sales_Order_View $block */ $block = $observer->getData('block'); if (!$block instanceof Mage_Adminhtml_Block_Sales_Order_View) { return; } /** @var Mage_Sales_Model_Order $order */ $order = Mage::registry('current_order'); if (empty($order)) { $orderId = Mage::app()->getRequest()->getParam('order_id'); $order = Mage::getModel('sales/order')->load($orderId); } if (!$order->canCancel()) { return; } $params = array('order_id' => $order->getId()); $url = Mage::helper('adminhtml')->getUrl('*/*/consultOrder', $params); $block->addButton('consult_button', array('label' => $this->_helper()->__('Clickpag Consult'), 'onclick' => 'setLocation(\'' . $url . '\')', 'class' => 'go'), 0, 100); }
/** * Adds join to admin sales order grid collection * * @param Varien_Event_Observer $observer * @return void */ public function beforeCollectionLoad(Varien_Event_Observer $observer) { $collection = $observer->getData('order_grid_collection'); if (!isset($collection)) { return; } /** * Mage_Sales_Model_Mysql4_Order_Grid_Collection (1.5.1.0) || Mage_Sales_Model_Resource_Order_Grid_Collection (1.9.1.0) */ if ($collection instanceof Mage_Sales_Model_Mysql4_Order_Grid_Collection || $collection instanceof Mage_Sales_Model_Resource_Order_Grid_Collection) { /* * The join below causes the customer's order tab to choke in the admin. * The columns are empty when that particular query runs, so this is a * quick method to get around this module's issues. */ if (!empty($collection->getSelect()->getPart('columns'))) { $collection->getSelect()->join(array('order' => 'sales_flat_order'), 'order.entity_id = main_table.entity_id', array('order.customer_note')); } } }
public function afterAddToQuote(Varien_Event_Observer $observer) { /** @var Mage_Sales_Model_Quote_Item[] $items */ $items = $observer->getData('items'); if (count($items) <= 1) { return; } $parent = array_shift($items); if ($parent instanceof Mage_Sales_Model_Quote_Item && $parent->getProductType() === OpenMage_KittedProduct_Model_Product_Type::TYPE_CODE) { $priceModel = $parent->getProduct()->getPriceModel(); foreach ($items as $item) { if ($item->getParentItem() !== $parent) { continue; } $originalPrice = $item->getProduct()->getPriceModel()->getFinalPrice($item->getQty(), $item->getProduct()); $finalPrice = $priceModel->getChildFinalPrice($parent->getProduct(), $parent->getQty(), $item->getProduct(), $item->getQty()); $item->setPrice($finalPrice); $item->setBaseOriginalPrice($originalPrice); } } }
public function collectParameters(Varien_Event_Observer $observer) { // Check if amasty shopby is installed. if (!Mage::helper('core')->isModuleEnabled('Amasty_Shopby')) { return; } // Get the attributes (that were remove from URL) $amastyAttributes = Mage::helper('amshopby/attributes'); $additionalParameters = $amastyAttributes->getRequestedFilterCodes(); if (empty($amastyAttributes)) { return; } // Get the parameters, that lesti collected so far. /** @var Varien_Object $parametersObject */ $parametersObject = $observer->getData('parameters'); $parameters = $parametersObject->getData('value'); // Add all selected amasty filters to the parameter list foreach ($additionalParameters as $key => $value) { $parameters['amasty_' . $key] = $value; } $parametersObject->setValue($parameters); }
public function contactPost(Varien_Event_Observer $observer) { if ($this->_getHelper()->isEnabled()) { $data = $observer->getData(); $post = $data['controller_action']->getRequest()->getPost(); $data = $this->_getRequestDataObject(); if (array_key_exists('email', $post)) { $data->setEmail($post['email']); } if (array_key_exists('name', $post)) { $data->setNome($post['name']); } if (array_key_exists('telephone', $post)) { $data->setTelefone($post['telephone']); } if (array_key_exists('comment', $post)) { $data->setMensagem($post['comment']); } $data->setData('store_name', $this->_getStoreDataObject()->getName()); $this->_getApi()->addLeadConversion(self::LEAD_CONTACTFORM, $data); } }
public function catalogInventoryStockItemSaveAfter(Varien_Event_Observer $observer) { try { // Get product id $productId = $observer->getData('item')->getData('product_id'); // skip qty changes when it was reserved $reservationTempKey = Ess_M2ePro_Helper_Data::CUSTOM_IDENTIFIER . '_order_reservation'; $reservationTempValue = $observer->getData('item')->getData($reservationTempKey); if (!is_null($reservationTempValue)) { return; } // Get listings, other listings where is product $listingsProductsArray = Mage::getResourceModel('M2ePro/Listing_Product')->getItemsWhereIsProduct($productId); $otherListingsArray = Mage::getResourceModel('M2ePro/Listing_Other')->getItemsWhereIsProduct($productId); if (count($listingsProductsArray) > 0 || count($otherListingsArray) > 0) { // Save global changes //-------------------- Mage::getModel('M2ePro/ProductChange')->addUpdateAction($productId, Ess_M2ePro_Model_ProductChange::CREATOR_TYPE_OBSERVER); //-------------------- // Save changes for qty //-------------------- $qtyOld = (int) $observer->getData('item')->getOrigData('qty'); $qtyNew = (int) $observer->getData('item')->getData('qty'); $rez = Mage::getModel('M2ePro/ProductChange')->updateAttribute($productId, 'qty', $qtyOld, $qtyNew, Ess_M2ePro_Model_ProductChange::CREATOR_TYPE_OBSERVER); if ($rez !== false) { foreach ($listingsProductsArray as $listingProductArray) { $tempLog = Mage::getModel('M2ePro/Listing_Log'); $tempLog->setComponentMode($listingProductArray['component_mode']); $tempLog->addProductMessage($listingProductArray['object']->getListingId(), $productId, $listingProductArray['id'], Ess_M2ePro_Model_Log_Abstract::INITIATOR_EXTENSION, NULL, Ess_M2ePro_Model_Listing_Log::ACTION_CHANGE_PRODUCT_QTY, Mage::getModel('M2ePro/Log_Abstract')->encodeDescription('From [%from%] to [%to%]', array('!from' => $qtyOld, '!to' => $qtyNew)), Ess_M2ePro_Model_Log_Abstract::TYPE_NOTICE, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW); } foreach ($otherListingsArray as $otherListingTemp) { $tempLog = Mage::getModel('M2ePro/Listing_Other_Log'); $tempLog->setComponentMode($otherListingTemp['component_mode']); $tempLog->addProductMessage($otherListingTemp['id'], Ess_M2ePro_Model_Log_Abstract::INITIATOR_EXTENSION, NULL, Ess_M2ePro_Model_Listing_Other_Log::ACTION_CHANGE_PRODUCT_QTY, Mage::getModel('M2ePro/Log_Abstract')->encodeDescription('From [%from%] to [%to%]', array('!from' => $qtyOld, '!to' => $qtyNew)), Ess_M2ePro_Model_Log_Abstract::TYPE_NOTICE, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW); } } //-------------------- // Save changes for stock Availability //-------------------- $stockAvailabilityOld = (bool) $observer->getData('item')->getOrigData('is_in_stock'); $stockAvailabilityNew = (bool) $observer->getData('item')->getData('is_in_stock'); $rez = Mage::getModel('M2ePro/ProductChange')->updateAttribute($productId, 'stock_availability', (int) $stockAvailabilityOld, (int) $stockAvailabilityNew, Ess_M2ePro_Model_ProductChange::CREATOR_TYPE_OBSERVER); if ($rez !== false) { $stockAvailabilityOld = $stockAvailabilityOld ? 'IN Stock' : 'OUT of Stock'; $stockAvailabilityNew = $stockAvailabilityNew ? 'IN Stock' : 'OUT of Stock'; foreach ($listingsProductsArray as $listingProductArray) { $tempLog = Mage::getModel('M2ePro/Listing_Log'); $tempLog->setComponentMode($listingProductArray['component_mode']); $tempLog->addProductMessage($listingProductArray['object']->getListingId(), $productId, $listingProductArray['id'], Ess_M2ePro_Model_Log_Abstract::INITIATOR_EXTENSION, NULL, Ess_M2ePro_Model_Listing_Log::ACTION_CHANGE_PRODUCT_STOCK_AVAILABILITY, Mage::getModel('M2ePro/Log_Abstract')->encodeDescription('From [%from%] to [%to%]', array('from' => $stockAvailabilityOld, 'to' => $stockAvailabilityNew)), Ess_M2ePro_Model_Log_Abstract::TYPE_NOTICE, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW); } foreach ($otherListingsArray as $otherListingTemp) { $tempLog = Mage::getModel('M2ePro/Listing_Other_Log'); $tempLog->setComponentMode($otherListingTemp['component_mode']); $tempLog->addProductMessage($otherListingTemp['id'], Ess_M2ePro_Model_Log_Abstract::INITIATOR_EXTENSION, NULL, Ess_M2ePro_Model_Listing_Other_Log::ACTION_CHANGE_PRODUCT_STOCK_AVAILABILITY, Mage::getModel('M2ePro/Log_Abstract')->encodeDescription('From [%from%] to [%to%]', array('from' => $stockAvailabilityOld, 'to' => $stockAvailabilityNew)), Ess_M2ePro_Model_Log_Abstract::TYPE_NOTICE, Ess_M2ePro_Model_Log_Abstract::PRIORITY_LOW); } } //-------------------- } } catch (Exception $exception) { Mage::helper('M2ePro/Module_Exception')->process($exception); return; } }
/** * make prodcuts for update when category change products */ public function setCategoryProductsToSync(Varien_Event_Observer $observer) { try { $updatedProductsIds = $observer->getData('product_ids'); if (count($updatedProductsIds) == 0) { return; } Mage::getModel("klevu_search/product_sync")->updateSpecificProductIds($updatedProductsIds); } catch (Exception $e) { Mage::helper('klevu_search')->log(Zend_Log::CRIT, sprintf("Exception thrown in %s::%s - %s", __CLASS__, __METHOD__, $e->getMessage())); } }
public function logEvent(Varien_Event_Observer $event) { $eventName = $event->getEvent()->getName(); if ($this->getConfigSetting(self::CONFIG_EVENT_IGNORE_BLOCKS) && (strpos($eventName, 'block_html') !== false || strpos($eventName, 'to_html') !== false)) { return; } else { if ($this->getConfigSetting(self::CONFIG_EVENT_IGNORE_MODELS) && strpos($eventName, 'model_') === 0) { return; } } $areas = array('global'); $layout = Mage::getSingleton('core/layout'); /* @var $layout Mage_Core_Model_Layout */ $currentArea = $layout->getArea(); if ($currentArea) { $areas[] = $currentArea; } $observers = array(); foreach ($areas as $area) { $node = Mage::getConfig()->getNode("{$area}/events/{$eventName}/observers"); if ($node) { foreach ($node->children() as $observer => $config) { if ($observer == 'pubsub_logger_hook') { continue; } if (!isset($observers[$observer])) { $observers[$observer] = array('callbacks' => array(), 'data' => array()); foreach ($event->getData() as $key => $value) { if ($key == 'event') { continue; } $observers[$observer]['data'][$key] = $this->_renderLoggedEvent($value); } } $observers[$observer]['callbacks'][] = array('class' => (string) $config->class, 'method' => (string) $config->method); } } } $observers[self::EVENT_ELAPSED] = microtime(true) - $this->_lastEventTimestamp; $this->publish(Mage::getStoreConfig(self::SYSTEM_CONFIG_ENDPOINT) . '_events_' . $eventName, json_encode($observers)); $this->_lastEventTimestamp = microtime(true); }
public function saveOrderPrescriptionExemption(Varien_Event_Observer $observer) { $exemption = Mage::getSingleton("core/session")->getPrescriptionExemptionCheck(); if ($exemption > 0) { $exemptions = Mage::getResourceModel('prescriptioncheckout/prescription_collection'); foreach ($exemptions as $ex) { if ($ex->getID() == $exemption) { $exemptionText = '<b>' . $ex->getTitle() . '</b>: ' . $ex->getDescriptions(); } } $orderIds = $observer->getData('order_ids'); foreach ($orderIds as $orderId) { $order = new Mage_Sales_Model_Order(); $order->load($orderId); $order->setData('prescription_exemption', $exemptionText); $order->save(); } Mage::getSingleton('core/session')->getPrescriptionExemptionCheck(''); } }