2013-07-24 6 views
4

У меня есть System->Configuration->Catalog->Inventory->Display Out of Stock Products опция установлена ​​в No.Magento скрыть нет на складе товары

Но этот товар в наличии еще не существует в списке категорий. Эта опция конфигурации работает с коллекцией продуктов? Как я могу скрыть внебиржевые продукты из коллекций продуктов категории?

+5

Возможно, вам потребуется перестроить индексы. (System-> Index Management) – Marius

ответ

1

Для осуществления этой работы необходимо перейти по адресу System->Configuration->Catalog->Catalog и установить Use Flat Catalog Product на номер Yes. После этого просто запустите Product Flat Index

1

Выполните следующее.

Перейти к приложению/коду/кержу/Маг/Каталог/Блокировать папку и скопировать Navigation.php. Переопределите Navigation.php в вашем локальном пакете. Open Navigation.php из пакета и вставьте следующий код в этом файле:

if ($category->getIsActive()) { 

$cat = Mage::getModel('catalog/category')->load($category->getId()); 

$products = Mage::getResourceModel('catalog/product_collection')->addCategoryFilter($cat); 

Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products); 

Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products); 

Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products); 

if(count($products)==0) 

return; 

} 

Это скроет из запаса товаров или пустой категории из меню верхнего уровня.