Mam następujący kod:
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();
}
Chcę dodać filtr zapasów do filtrowania produktów, próbowałem:
$products = Mage::getModel('catalog/product')->getCollection()
->addAttributeToSelect('*');
**->addAttributeToFilter('qty', array("gt" => 0));**
Ale bez powodzenia, jakieś pomysły?
$coll = Mage::getResourceModel('catalog/product_collection')
i używam twojego pola iaddAttributeToFilter
. Kolekcja ładuje się dobrze. Ale filtr nie działa:->addAttributeToFilter('qty', array("gt" => 0))
. Patrząc$coll->getSelect()
, nie ma odniesieniaqty
wWHERE
klauzuli. Masz pomysł, dlaczego?JEDNOKIERUNKOWA:
DRUGI SPOSÓB:
źródło
„PIERWSZA DROGA” w odpowiedzi @TBI Infotech nie zadziała, ponieważ
->getAllIds()
metoda zwraca identyfikator towaru, a nie identyfikator produktu. Zamiast tego musisz to dodać;źródło
$stock->getProductId()
?Najbardziej elegancki sposób:
źródło
Późno przybywająca odpowiedź musiała jednak popracować nad tym kodem, więc proszę bardzo. Wymaga tylko kilku złączeń, działa z konfigurowalnymi i prostymi produktami, nie testowałem z pakietami.
źródło