/**
  * @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());
         }
     }
 }
示例#2
0
 /**
  * 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);
     }
 }