Я получаю коллекцию продуктов,выбираю из них некоторые по особым критериям и вывожу их на frontend. Так вот если в настройках продукта стоит статус Disabled и я его вывожу на frontend с сылкой на него то при переходе происходит зацикливание.. так вот мне надо как то добавить фильтры на этот Status, на Visibility (individ,catalog...), на Out Of stock , ну вообщем проверить можно ли отображать этот продукт на frontend, что бы было правильно по логике и не было косяков...
$entity_ids = Mage::getModel('catalog/product')
->getCollection()
->addStoreFilter($storeId)
->addFieldToFilter('attribute_set_id', $attributeSetId);
Как исключить из коллекции невыставленные на витрине товары?
08.06.2012 22:53
/** @var Mage_Catalog_Model_Resource_Product_Collection|Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection $collection */ $collection = Mage::getResourceModel ( 'catalog/product_collection' ) ; /** * Для примера указываем системе загружать все свойства товаров */ $collection->addAttributeToSelect ("*"); /** * Оставляем в коллекции только те товары, * для которых администратор указал, что они должны быть видны в списке товаров на витрине */ /** @var Mage_Catalog_Model_Product_Visibility $productVisibility */ $productVisibility = Mage::getSingleton ( 'catalog/product_visibility' ) ; $collection ->setVisibility ( $productVisibility->getVisibleInSiteIds() ) ; /** * Удаляем из коллекции те товары, * которые администратор пометил как неподлежащие продаже */ /** @var Mage_Catalog_Model_Product_Status $productStatus */ $productStatus = Mage::getSingleton ( 'catalog/product_status' ) ; $productStatus ->addSaleableFilterToCollection ( $collection ) ; /** * Удаляем из коллекции отсутствующие на складе товары */ /** @var Mage_CatalogInventory_Model_Stock $stock */ $stock = Mage::getSingleton( 'cataloginventory/stock' ) ; $stock ->addInStockFilterToCollection ( $collection ) ;
11.06.2012 12:36
странно, но у меня $productVisibility,$productStatus,$stock пустые объекты и соответсвенно ничего не меняется когда я применяю их к колекции....
11.06.2012 13:53
Если не получается сделать по готовому программному коду - значит, надо обратиться к качественному программисту и оплатить его труд. Тема закрыта.