У меня есть следующий код:
umask(0);
Mage::app();
$category =new Mage_Catalog_Model_Category();
$category->load($cid);
if ($status == "2") {
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*')
->addFieldToFilter('status',Mage_Catalog_Model_Product_Status::STATUS_DISABLED);
$products->load();
}
if ($status == "1") {
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
$products->load();
}
Я хочу добавить фильтр акций кол-во для фильтрации продуктов, я попробовал:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
**->addAttributeToFilter('qty', array("gt" => 0));**
Но не удачно, есть идеи?
$coll = Mage::getResourceModel('catalog/product_collection')
и использую ваше поле соединения иaddAttributeToFilter
. Коллекция загружается просто отлично. Но фильтр не работает->addAttributeToFilter('qty', array("gt" => 0))
. Глядя на это$coll->getSelect()
, нет никаких ссылок наqty
вWHERE
пункте. Есть идеи почему?В ОДНУ СТОРОНУ:
ВТОРОЙ ПУТЬ:
источник
«ПЕРВЫЙ ПУТЬ» в ответе @TBI Infotech не сработает, так как
->getAllIds()
метод возвращает идентификатор запаса, а не идентификатор продукта. Вместо этого вам нужно добавить это;источник
$stock->getProductId()
?Самый элегантный способ:
источник
Поздно прибывающий ответ, нам нужно было поработать над этим кодом, так что вот, пожалуйста. Это займет всего несколько объединений, работает для настраиваемых и простых продуктов, не проверялось на связках.
источник