2011-12-19 5 views
0

Я использую тему, которая включает meganavigation и имеет выпадающее меню в навигации, где он показывает быстрый просмотр продуктов в категории, чтобы добавить в корзину.Magento meganavigation module не показывать на складе позиции

Эта функция, похоже, не работает, поэтому мы хотели бы прекратить отправку meganavigation из показа товара на складе. Я разыскал этот код: приложения/код/​​местный/Jextn/Meganavigation/Block/Meganavigation.php

public function cateProducts($cateId) { 
    $products = Mage::getModel('catalog/product')->getCollection() 

    ->addCategoryFilter(Mage::getModel('catalog/category')->load($cateId)) 
    ->setOrder('created_at', 'asc') 
    ->addAttributeToFilter('visibility', 4) 
    ->getFirstItem() 
    ->load(); 

    return $products; 
} 

Я думаю, что мы можем использовать вызов addAttributeToFilter, чтобы сделать это, но не имею никакой удачи. Может ли кто-нибудь помочь или отправить мне несколько указателей, пожалуйста?

Система находится на Magento ver. 1.4.1.1

ответ

0

Попробуйте это:

$stockCollection = Mage::getModel('cataloginventory/stock_item')->getCollection() 
     ->addFieldToFilter('is_in_stock', 1); 
$productIds = array(); 
foreach ($stockCollection as $item) { 
    $productIds[] = $item->getOrigData('product_id'); 
} 
$products = Mage::getModel('catalog/product')->getCollection() 
     ->addIdFilter($productIds) 
     ... 

source

+0

Я попытался с измененным кодом, к сожалению, теперь он дает мне страницу ошибки на переднем конце - «Неверное имя атрибута:. Is_in_stock» с большим следом внизу. – LukeKM7

+0

Извините, я внимательно смотрел коды. – vicch

+0

Спасибо, vicch, я использовал ваш код в нескольких вариантах, но без большой удачи. Итак, на данный момент я собираюсь попробовать альтернативное решение; Я попытаюсь просто скрыть кнопку «добавить в корзину» на упомянутых элементах, вместо этого появится сообщение «нет на складе». Это то, что решил мой клиент. – LukeKM7

Смежные вопросы