Я получаю коллекцию продуктов,выбираю из них некоторые по особым критериям и вывожу их на 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
Если не получается сделать по готовому программному коду - значит, надо обратиться к качественному программисту и оплатить его труд. Тема закрыта.

Вход
Регистрация
Помощь
Тема закрыта

