Magento - продаваемый фильтр - PullRequest
4 голосов
/ 23 ноября 2011
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products); 

устанавливает фильтр и показывает товары, которые есть в наличии, но всегда показывают настраиваемые товары, даже если их нет в наличии (КАК они всегда есть в наличии, но isSaleable становится ложным, когда связанные с ними товары заканчиваются.) Итак, как можно Применить фильтр IsSaleable к коллекции продуктов? (может ли это быть сделано непосредственно в коллекции продуктов без итерации по коллекции. Отсутствие на складе означает, что инвентарь закончился.

Ответы [ 2 ]

4 голосов
/ 17 августа 2012

Это должно дать вам просто каталог видимых простых товаров, которые есть в наличии.

$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('status', 1); // enabled
$products->addAttributeToFilter('type_id', 'simple');
//$products->addAttributeToFilter('sku', array('1234')); //for testing purposes
$products->addAttributeToSelect('*');
Mage::getSingleton('catalog/product_status')->addSaleableFilterToCollection($products);
Mage::getSingleton('cataloginventory/stock')->addInStockFilterToCollection($products);
$prodIds = $products->getAllIds();
0 голосов
/ 24 ноября 2011

* После 1001 *

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

сделать

$products->addAttributeToFilter('is_saleable', TRUE);

Должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...