Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }
Ejemplo n.º 4
0
 /**
  * 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;
 }
Ejemplo n.º 5
0
 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;
     }
 }
Ejemplo n.º 6
0
 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);
         }
     }
 }
Ejemplo n.º 7
0
 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');
     }
 }
Ejemplo n.º 9
0
 /**
  * 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;
 }
Ejemplo n.º 10
0
 /**
  * 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);
         }
     }
 }
Ejemplo n.º 11
0
 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;
     }
 }
Ejemplo n.º 12
0
 /**
  * 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);
             }
         }
     }
 }
Ejemplo n.º 13
0
 /**
  * @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);
 }
Ejemplo n.º 14
0
 /**
  * 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());
             }
         }
     }
 }
Ejemplo n.º 15
0
 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);
         }
     }
 }
Ejemplo n.º 16
0
 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;
 }
Ejemplo n.º 17
0
 /**
  * @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);
 }
Ejemplo n.º 18
0
 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;
 }
Ejemplo n.º 19
0
 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;
 }
Ejemplo n.º 20
0
 /**
  * @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);
 }
Ejemplo n.º 21
0
 /**
  * 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));
             }
         }
     }
 }
Ejemplo n.º 22
0
 /**
  * @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);
 }
Ejemplo n.º 23
0
 /**
  * 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'));
         }
     }
 }
Ejemplo n.º 24
0
 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);
         }
     }
 }
Ejemplo n.º 25
0
 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);
     }
 }
Ejemplo n.º 27
0
 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;
     }
 }
Ejemplo n.º 28
0
 /**
  * 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);
 }
Ejemplo n.º 30
0
 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('');
     }
 }