Ich muss alle filterbaren Attribute für die Kategorie abrufen. Ich benutze dieses Snippet:
$category = Mage::getModel('catalog/category')->load($categoryId);
$layer = Mage::getModel('catalog/layer');
$layer->setCurrentCategory($category);
$attributes = $layer->getFilterableAttributes();//$attributes now is empty array
Kategorie hat Produkt mit filterbaren Attributen, auch in Kategorienoptionen wurde der Anker aktiviert. Dieser Code wird in der SOAP-API verwendet.
Vielleicht weiß jemand, wo ich Fehler gemacht habe?
var_dump($category)
ob im Allgemeinen alles in Ordnung ist.Mage::log($collection->getSelect(), Zend_Log::INFO, 'blah.log', true);
inapp/code/core/Mage/Catalog/Model/Layer.php
->public function getFilterableAttributes()
vorreturn
und protokollierten SQL - Abfrage direkt in der Datenbank zu laufen oder mit der SQL - Abfrage zu vergleichen , die protokollieren, wenn Sie die Kategorie über die Website zu öffnen.Antworten:
Höchstwahrscheinlich haben Sie die Store-ID nicht festgelegt. Wir müssen dies tun, da sie in der API implementiert ist:
quelle
Der folgende Code wird verwendet, um filterbare Attribute und deren Optionen abzurufen
quelle