10

私には奇妙な問題があり、多くの人がインターネット上で同じ問題を抱えているようです。下の図は私の問題を定義し、私のmagentoバージョンも1.7です

ここに画像の説明を入力

強調したように、LEFT はカテゴリに 16 個の製品があると言っていますが、実際には [カテゴリ製品] タブには 15 個の製品が表示されます。私のカテゴリーはすべてめちゃくちゃです。何が問題なのか教えてください。キャッシュを無効にしてみましたが、うまくいきませんでした。

[編集]

カテゴリから 1 つの製品を削除しようとすると、左側の数字が 15 になり、合計レコード数が 14 になりました。このカテゴリで無効になっている製品ではないかと考えました。しかし、無効な製品を検索したところ、何もありませんでした。

4

3 に答える 3

2

これに対する簡単な解決策は、app/code/core/Mage/Catalog/Model/Category.php に移動することです。

または、magento のアップグレード中に影響を与えないように、ローカル ファイルを作成することをお勧めします。app/code/local/Mage/Catalog/Model/Category.php を作成します。

このモデルでは、getFrontentProductCount() という新しい関数を作成します。

    public function getFrontentProductCount()
{
    $collection = Mage::getResourceModel('catalog/product_collection')
        ->addCategoryFilter($this);
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
return $collection->count();

}

次に、カテゴリの製品カウントを実行するテンプレート phtml ファイルに移動します。一般的には、theme/template/catalog/navigation/left.phtml です。

次のように、必要に応じて上記の関数を呼び出します。

 <ol>
            <?php foreach ($_categories as $_category): ?>
                <?php if($_category->getIsActive()): ?>
                <li>
                    <a href="<?php echo $this->getCategoryUrl($_category) ?>"<?php if ($this->isCategoryActive($_category)): ?> class="current"<?php endif; ?>><?php echo $this->htmlEscape($_category->getName()) ?></a> (<?php echo $_category->getFrontentProductCount() ?>)
                </li>
                <?php endif; ?>
            <?php endforeach ?>
            </ol>
于 2014-02-26T06:58:30.453 に答える