Стоит задача, сделать страницу на которой будут отображаться продукты отсутствующие на складе.
Внешний вид такой же как при просмотре категории продуктов (пейджинация, сортировка и т.д.)
Сделал CMS страницу для этих целей вот теперь думаю как реализовать?
Возникла идея отталкиваться от модуля поиска, но правильно ли это?
Или надо создать свой блок + вьюхи и плясать от них...
Буду признателен за наводки и советы, а может уже где есть реализация...
Как программно перечислить отсутствующие на складе товары?
22.06.2011 17:33
1)
Сделайте класс-блок.
Класс-блок должен предоставлять шаблону коллекцию товаров.
Шаблон должен выводить эти товары.
Формировать коллекцию товаров можно как в самом классе-блоке, так и вынести бизнес-логику в модель.
2)
Для постраничной навигации используйте стандартный блок.
Для упорядочивания (сортировки) используйте стандартный блок.
3)
В целом делайте по примеру catalog/product_list.
Сделайте класс-блок.
Класс-блок должен предоставлять шаблону коллекцию товаров.
Шаблон должен выводить эти товары.
Формировать коллекцию товаров можно как в самом классе-блоке, так и вынести бизнес-логику в модель.
2)
Для постраничной навигации используйте стандартный блок.
Для упорядочивания (сортировки) используйте стандартный блок.
3)
В целом делайте по примеру catalog/product_list.
23.06.2011 17:11
Вроде все получилось, но возникла проблема с фильтрацией по наличию на складе.
За наличие отвечает параметр qty в таблице cataloginventory_stock_item, во вьюхах обычно идет такая проверка
Пробовал добавить коллекции
пробовал
тоже ноль
Затем пробовал
Ошибка
Не пойму как правильно добавить нужное мне условие.
Прошу помочь.
Спасибо
За наличие отвечает параметр qty в таблице cataloginventory_stock_item, во вьюхах обычно идет такая проверка
$_product->getStockItem()->getQty() > 0
Пробовал добавить коллекции
$this->_productCollection->addFieldToFilter('qty', array('eq' => 0));эффекта нет
пробовал
$this->_productCollection->joinField('qty', 'cataloginventory/stock_item', 'qty', 'product_id=entity_id', null, 'left');
тоже ноль
Затем пробовал
$this->_productCollection->joinField('qty', 'cataloginventory/stock_item', 'qty', null, 'left');
Ошибка
Цитата
Notice: Undefined offset: 1 in G:\Projects\iResourses\PetitFute\app\code\core\Mage\Eav\Model\Entity\Collection\Abstract.php on line 635
Не пойму как правильно добавить нужное мне условие.
Прошу помочь.
Спасибо
23.06.2011 18:18
А нужно обратно, вывести как раз отсутствующие товары. Наверно есть метод и для этого, завтра с утра гляну.
Спасибо!
Спасибо!
24.06.2011 11:56
Решил задачу.
Вчера я был близок к цели, но не правильно заюзал метод.
Вчера я был близок к цели, но не правильно заюзал метод.
$this->_productCollection->joinField( 'qty', 'cataloginventory/stock_item', 'qty', 'product_id=entity_id', '{{table}}.qty = 0 AND {{table}}.is_in_stock = 0' );