カテゴリのすべてのフィルター可能な属性を取得する必要があります。私はそのスニペットを使用しています:
$category = Mage::getModel('catalog/category')->load($categoryId);
$layer = Mage::getModel('catalog/layer');
$layer->setCurrentCategory($category);
$attributes = $layer->getFilterableAttributes();//$attributes now is empty array
カテゴリーにはフィルター可能な属性を持つ製品があり、カテゴリーでもオプションのアンカーが有効になりました。このコードはSOAP APIで使用します。
多分誰かが私がどこで間違えたか知っていますか?
あなたはここに同じことを尋ねるかもしれませんstackoverflow.com/questions/3157799/...
—
Sukeshini
var_dumpは、apiのコードであり、wsdl.xmlファイルで定義された値のみを返すため、使用できません。しかし、私はカテゴリをこの値の1つに渡してチェックします。カテゴリモデルはOKで、レイヤーは正しく設定されています。$
—
layer-
追加する前
—
マイケル
Mage::log($collection->getSelect(), Zend_Log::INFO, 'blah.log', true);
にapp/code/core/Mage/Catalog/Model/Layer.php
-> ログに記録されたSQLクエリをデータベースで直接実行したり、サイトからカテゴリを開いたときにログに記録されたSQLクエリと比較したりできます。public function getFilterableAttributes()
return
$ setIds = $ this-> _ getSetIds()は空の配列を返すため、getFilterableAttributes()は空の配列を返します。$ this-> getProductCollection()が空のコレクションを返すために発生します。たぶん、それから製品コレクションを取得するために$ layerに何か他のものが必要ですか?
—
Quickerz、2015年
var_dump($category)
一般的にすべてが大丈夫かどうかを確認してみてください。