2

私はこれを理解しようと少し時間を費やしましたが、役に立ちませんでした。メーカーによってフィルタリングされた製品のコレクションを表示する一連のページがあり、たとえば、現在のメーカーの製品を含むカテゴリのリストを含む、これらの各ページの左側の列にナビゲーションが必要な場合は、どうすればよいでしょうか。ひどく遅いコードに頼ることなく、これを実装しようとしていますか?(数千の製品があります)。

これに似たものをループに入れて、各カテゴリを繰り返し、各カテゴリに対して返されるメーカーの結果があるかどうかを確認することもできますが、数百のカテゴリがあることを考えると、これはかなり遅くなります。

$category           = $currentCategory;
$layer              = Mage::getSingleton('catalog/layer');
$layer->setCurrentCategory($category);
$attributes = $layer->getFilterableAttributes();
$manufacturers = array();
foreach ($attributes as $attribute) {
    if ($attribute->getAttributeCode() == 'manufacturer') {
        $filterBlockName = 'catalog/layer_filter_attribute';
        $result = Mage::app()->getLayout()->createBlock($filterBlockName)->setLayer($layer)->setAttributeModel($attribute)->init();
        foreach($result->getItems() as $option) {
            $manufacturers[$option->getValue()] = $option->getLabel();
        }
    }
}

誰かもっと良いアイデアがあれば、私はとても感謝しています。

4

1 に答える 1

0
  1. カスタムカテゴリ属性allmanufacturers(http://inchoo.net/ecommerce/magento/how-to-add-new-custom-category-attribute-in-magento/)を追加します。

  2. 各カテゴリのすべての製品を調べるcronを実行して、その製造元を確認します。このallmanufacturersの顧客属性に、(、)で区切られた製造元の値を入力します。

これで、コードで特定のメーカーの「カスタムカテゴリ属性-allmanufacturers」の値を確認し、左側の列に入力する必要があります。

于 2013-01-19T18:24:05.587 に答える