/** * @param Varien_Event_Observer $observer */ public function catalogProductCollectionApplyLimitationsBefore(Varien_Event_Observer $observer) { $filters = $observer->getCategoryId(); if (isset($filters['visibility']) && !Mage::getStoreConfig('cataloginventory/options/show_out_of_stock')) { $storeId = Mage::app()->getStore()->getId(); $observer->getCollection(); $selectFrom = $observer->getCollection()->getSelect()->getPart(Zend_Db_Select::FROM); if (!isset($selectFrom['stock_status_index'])) { $observer->getCollection()->getSelect()->join(array('stock_status_index' => Mage::getSingleton('core/resource')->getTableName('demac_multilocationinventory/stock_status_index')), 'e.entity_id = stock_status_index.product_id' . ' AND stock_status_index.qty > 0' . ' AND stock_status_index.is_in_stock = 1' . ' AND stock_status_index.store_id = ' . $storeId, array()); } } }
/** * Clear request path cache by tag * (used for redirects invalidation) * * @param Varien_Event_Observer $observer * @return $this */ public function fixInvalidCategoryCookie(Varien_Event_Observer $observer) { $categoryId = $observer->getCategoryId(); if (Enterprise_PageCache_Model_Cookie::getCategoryCookieValue() != $categoryId) { Enterprise_PageCache_Model_Cookie::setCategoryViewedCookieValue($categoryId); Enterprise_PageCache_Model_Cookie::setCurrentCategoryCookieValue($categoryId); } }